diff --git a/effects/CMakeLists.txt b/effects/CMakeLists.txt index 3a90b20c21..b8d6f61de8 100644 --- a/effects/CMakeLists.txt +++ b/effects/CMakeLists.txt @@ -1,5 +1,5 @@ # KI18N Translation Domain for this library -add_definitions(-DTRANSLATION_DOMAIN=\"kwin_effects\") +add_definitions(-DTRANSLATION_DOMAIN=\"kwin_effects\" -DEFFECT_BUILTINS) include_directories(${KWIN_SOURCE_DIR}) # for xcbutils.h diff --git a/effects/effect_builtins.cpp b/effects/effect_builtins.cpp index 7dcf79f07c..be508e6fea 100644 --- a/effects/effect_builtins.cpp +++ b/effects/effect_builtins.cpp @@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . *********************************************************************/ #include "effect_builtins.h" +#ifdef EFFECT_BUILTINS // common effects #include "backgroundcontrast/contrast.h" #include "blur/blur.h" @@ -60,6 +61,16 @@ along with this program. If not, see . #include "startupfeedback/startupfeedback.h" #include "trackmouse/trackmouse.h" #include "wobblywindows/wobblywindows.h" +#endif + +#include +#include + +#ifndef EFFECT_BUILTINS +#define EFFECT_FALLBACK nullptr, nullptr, nullptr +#else +#define EFFECT_FALLBACK +#endif namespace KWin { @@ -88,472 +99,589 @@ static const QVector s_effectData = { nullptr }, { QStringLiteral("blur"), - i18nc("Name of a KWin Effect", "Blur"), - i18nc("Comment describing the KWin Effect", "Blurs the background behind semi-transparent windows"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Blur"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Blurs the background behind semi-transparent windows"), QStringLiteral("Appearance"), QString(), QUrl(), true, false, +#ifdef EFFECT_BUILTINS &createHelper, &BlurEffect::supported, &BlurEffect::enabledByDefault +#endif +EFFECT_FALLBACK }, { QStringLiteral("contrast"), - i18nc("Name of a KWin Effect", "Background contrast"), - i18nc("Comment describing the KWin Effect", "Improve contrast and readability behind semi-transparent windows"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Background contrast"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Improve contrast and readability behind semi-transparent windows"), QStringLiteral("Appearance"), QString(), QUrl(), true, false, +#ifdef EFFECT_BUILTINS &createHelper, &ContrastEffect::supported, &ContrastEffect::enabledByDefault +#endif +EFFECT_FALLBACK }, { QStringLiteral("coverswitch"), - i18nc("Name of a KWin Effect", "Cover Switch"), - i18nc("Comment describing the KWin Effect", "Display a Cover Flow effect for the alt+tab window switcher"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Cover Switch"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Display a Cover Flow effect for the alt+tab window switcher"), QStringLiteral("Window Management"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/cover_switch.mp4")), false, true, +#ifdef EFFECT_BUILTINS &createHelper, &CoverSwitchEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("cube"), - i18nc("Name of a KWin Effect", "Desktop Cube"), - i18nc("Comment describing the KWin Effect", "Display each virtual desktop on a side of a cube"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Desktop Cube"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Display each virtual desktop on a side of a cube"), QStringLiteral("Window Management"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/desktop_cube.ogv")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &CubeEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("cubeslide"), - i18nc("Name of a KWin Effect", "Desktop Cube Animation"), - i18nc("Comment describing the KWin Effect", "Animate desktop switching with a cube"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Desktop Cube Animation"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Animate desktop switching with a cube"), QStringLiteral("Virtual Desktop Switching Animation"), QStringLiteral("desktop-animations"), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/desktop_cube_animation.ogv")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &CubeSlideEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("dashboard"), - i18nc("Name of a KWin Effect", "Dashboard"), - i18nc("Comment describing the KWin Effect", "Desaturate the desktop when displaying the Plasma dashboard"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Dashboard"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Desaturate the desktop when displaying the Plasma dashboard"), QStringLiteral("Appearance"), QString(), QUrl(), true, true, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("desktopgrid"), - i18nc("Name of a KWin Effect", "Desktop Grid"), - i18nc("Comment describing the KWin Effect", "Zoom out so all desktops are displayed side-by-side in a grid"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Desktop Grid"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Zoom out so all desktops are displayed side-by-side in a grid"), QStringLiteral("Window Management"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/desktop_grid.mp4")), true, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("diminactive"), - i18nc("Name of a KWin Effect", "Dim Inactive"), - i18nc("Comment describing the KWin Effect", "Darken inactive windows"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Dim Inactive"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Darken inactive windows"), QStringLiteral("Focus"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/dim_inactive.mp4")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("dimscreen"), - i18nc("Name of a KWin Effect", "Dim Screen for Administrator Mode"), - i18nc("Comment describing the KWin Effect", "Darkens the entire screen when requesting root privileges"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Dim Screen for Administrator Mode"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Darkens the entire screen when requesting root privileges"), QStringLiteral("Focus"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/dim_administration.mp4")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("fallapart"), - i18nc("Name of a KWin Effect", "Fall Apart"), - i18nc("Comment describing the KWin Effect", "Closed windows fall into pieces"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Fall Apart"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Closed windows fall into pieces"), QStringLiteral("Appearance"), QString(), QUrl(), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &FallApartEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("flipswitch"), - i18nc("Name of a KWin Effect", "Flip Switch"), - i18nc("Comment describing the KWin Effect", "Flip through windows that are in a stack for the alt+tab window switcher"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Flip Switch"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Flip through windows that are in a stack for the alt+tab window switcher"), QStringLiteral("Window Management"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/flip_switch.mp4")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &FlipSwitchEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("glide"), - i18nc("Name of a KWin Effect", "Glide"), - i18nc("Comment describing the KWin Effect", "Windows Glide Effect as they are open and closed"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Glide"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Windows Glide Effect as they are open and closed"), QStringLiteral("Appearance"), QString(), QUrl(), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &GlideEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("highlightwindow"), - i18nc("Name of a KWin Effect", "Highlight Window"), - i18nc("Comment describing the KWin Effect", "Highlight the appropriate window when hovering over taskbar entries"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Highlight Window"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Highlight the appropriate window when hovering over taskbar entries"), QStringLiteral("Appearance"), QString(), QUrl(), true, true, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("invert"), - i18nc("Name of a KWin Effect", "Invert"), - i18nc("Comment describing the KWin Effect", "Inverts the color of the desktop and windows"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Invert"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Inverts the color of the desktop and windows"), QStringLiteral("Accessibility"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/invert.mp4")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &InvertEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("kscreen"), - i18nc("Name of a KWin Effect", "Kscreen"), - i18nc("Comment describing the KWin Effect", "Helper Effect for KScreen"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Kscreen"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Helper Effect for KScreen"), QStringLiteral("Appearance"), QString(), QUrl(), true, true, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("logout"), - i18nc("Name of a KWin Effect", "Logout"), - i18nc("Comment describing the KWin Effect", "Desaturate the desktop when displaying the logout dialog"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Logout"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Desaturate the desktop when displaying the logout dialog"), QStringLiteral("Appearance"), QString(), QUrl(), true, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("lookingglass"), - i18nc("Name of a KWin Effect", "Looking Glass"), - i18nc("Comment describing the KWin Effect", "A screen magnifier that looks like a fisheye lens"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Looking Glass"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "A screen magnifier that looks like a fisheye lens"), QStringLiteral("Accessibility"), QStringLiteral("magnifiers"), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/looking_glass.ogv")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &LookingGlassEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("magiclamp"), - i18nc("Name of a KWin Effect", "Magic Lamp"), - i18nc("Comment describing the KWin Effect", "Simulate a magic lamp when minimizing windows"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Magic Lamp"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Simulate a magic lamp when minimizing windows"), QStringLiteral("Appearance"), QStringLiteral("minimize"), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/magic_lamp.ogv")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &MagicLampEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("magnifier"), - i18nc("Name of a KWin Effect", "Magnifier"), - i18nc("Comment describing the KWin Effect", "Magnify the section of the screen that is near the mouse cursor"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Magnifier"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Magnify the section of the screen that is near the mouse cursor"), QStringLiteral("Accessibility"), QStringLiteral("magnifiers"), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/magnifier.ogv")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &MagnifierEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("minimizeanimation"), - i18nc("Name of a KWin Effect", "Minimize Animation"), - i18nc("Comment describing the KWin Effect", "Animate the minimizing of windows"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Minimize Animation"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Animate the minimizing of windows"), QStringLiteral("Appearance"), QStringLiteral("minimize"), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/minimize.ogv")), true, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("mouseclick"), - i18nc("Name of a KWin Effect", "Mouse Click Animation"), - i18nc("Comment describing the KWin Effect", "Creates an animation whenever a mouse button is clicked. This is useful for screenrecordings/presentations"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Mouse Click Animation"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Creates an animation whenever a mouse button is clicked. This is useful for screenrecordings/presentations"), QStringLiteral("Accessibility"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/mouse_click.mp4")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("mousemark"), - i18nc("Name of a KWin Effect", "Mouse Mark"), - i18nc("Comment describing the KWin Effect", "Allows you to draw lines on the desktop"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Mouse Mark"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Allows you to draw lines on the desktop"), QStringLiteral("Appearance"), QString(), QUrl(), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("presentwindows"), - i18nc("Name of a KWin Effect", "Present Windows"), - i18nc("Comment describing the KWin Effect", "Zoom out until all opened windows can be displayed side-by-side"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Present Windows"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Zoom out until all opened windows can be displayed side-by-side"), QStringLiteral("Window Management"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/present_windows.mp4")), true, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("resize"), - i18nc("Name of a KWin Effect", "Resize Window"), - i18nc("Comment describing the KWin Effect", "Resizes windows with a fast texture scale instead of updating contents"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Resize Window"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Resizes windows with a fast texture scale instead of updating contents"), QStringLiteral("Window Management"), QString(), QUrl(), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("screenedge"), - i18nc("Name of a KWin Effect", "Screen Edge"), - i18nc("Comment describing the KWin Effect", "Highlights a screen edge when approaching"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Screen Edge"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Highlights a screen edge when approaching"), QStringLiteral("Appearance"), QString(), QUrl(), true, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("screenshot"), - i18nc("Name of a KWin Effect", "Screenshot"), - i18nc("Comment describing the KWin Effect", "Helper effect for KSnapshot"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Screenshot"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Helper effect for KSnapshot"), QStringLiteral("Appearance"), QString(), QUrl(), true, true, +#ifdef EFFECT_BUILTINS &createHelper, &ScreenShotEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("sheet"), - i18nc("Name of a KWin Effect", "Sheet"), - i18nc("Comment describing the KWin Effect", "Make modal dialogs smoothly fly in and out when they are shown or hidden"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Sheet"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Make modal dialogs smoothly fly in and out when they are shown or hidden"), QStringLiteral("Appearance"), QString(), QUrl(), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &SheetEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("showfps"), - i18nc("Name of a KWin Effect", "Show FPS"), - i18nc("Comment describing the KWin Effect", "Display KWin's performance in the corner of the screen"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Show FPS"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Display KWin's performance in the corner of the screen"), QStringLiteral("Tools"), QString(), QUrl(), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("showpaint"), - i18nc("Name of a KWin Effect", "Show Paint"), - i18nc("Comment describing the KWin Effect", "Highlight areas of the desktop that have been recently updated"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Show Paint"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Highlight areas of the desktop that have been recently updated"), QStringLiteral("Tools"), QString(), QUrl(), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("slide"), - i18nc("Name of a KWin Effect", "Slide"), - i18nc("Comment describing the KWin Effect", "Slide windows across the screen when switching virtual desktops"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Slide"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Slide windows across the screen when switching virtual desktops"), QStringLiteral("Virtual Desktop Switching Animation"), QStringLiteral("desktop-animations"), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/slide.ogv")), true, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("slideback"), - i18nc("Name of a KWin Effect", "Slide Back"), - i18nc("Comment describing the KWin Effect", "Slide back windows when another window is raised"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Slide Back"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Slide back windows when another window is raised"), QStringLiteral("Focus"), QString(), QUrl(), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("slidingpopups"), - i18nc("Name of a KWin Effect", "Sliding popups"), - i18nc("Comment describing the KWin Effect", "Sliding animation for Plasma popups"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Sliding popups"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Sliding animation for Plasma popups"), QStringLiteral("Appearance"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/sliding_popups.mp4")), true, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("snaphelper"), - i18nc("Name of a KWin Effect", "Snap Helper"), - i18nc("Comment describing the KWin Effect", "Help you locate the center of the screen when moving a window"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Snap Helper"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Help you locate the center of the screen when moving a window"), QStringLiteral("Accessibility"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/snap_helper.mp4")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("startupfeedback"), - i18nc("Name of a KWin Effect", "Startup Feedback"), - i18nc("Comment describing the KWin Effect", "Helper effect for startup feedback"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Startup Feedback"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Helper effect for startup feedback"), QStringLiteral("Candy"), QString(), QUrl(), true, true, +#ifdef EFFECT_BUILTINS &createHelper, &StartupFeedbackEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("thumbnailaside"), - i18nc("Name of a KWin Effect", "Thumbnail Aside"), - i18nc("Comment describing the KWin Effect", "Display window thumbnails on the edge of the screen"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Thumbnail Aside"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Display window thumbnails on the edge of the screen"), QStringLiteral("Appearance"), QString(), QUrl(), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("trackmouse"), - i18nc("Name of a KWin Effect", "Track Mouse"), - i18nc("Comment describing the KWin Effect", "Display a mouse cursor locating effect when activated"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Track Mouse"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Display a mouse cursor locating effect when activated"), QStringLiteral("Accessibility"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/track_mouse.mp4")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("windowgeometry"), - i18nc("Name of a KWin Effect", "Window Geometry"), - i18nc("Comment describing the KWin Effect", "Display window geometries on move/resize"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Window Geometry"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Display window geometries on move/resize"), QStringLiteral("Appearance"), QString(), QUrl(), false, true, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("wobblywindows"), - i18nc("Name of a KWin Effect", "Wobbly Windows"), - i18nc("Comment describing the KWin Effect", "Deform windows while they are moving"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Wobbly Windows"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Deform windows while they are moving"), QStringLiteral("Appearance"), QString(), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/wobbly_windows.ogv")), false, false, +#ifdef EFFECT_BUILTINS &createHelper, &WobblyWindowsEffect::supported, nullptr +#endif +EFFECT_FALLBACK }, { QStringLiteral("zoom"), - i18nc("Name of a KWin Effect", "Zoom"), - i18nc("Comment describing the KWin Effect", "Magnify the entire desktop"), + i18ndc("kwin_effects", "Name of a KWin Effect", "Zoom"), + i18ndc("kwin_effects", "Comment describing the KWin Effect", "Magnify the entire desktop"), QStringLiteral("Accessibility"), QStringLiteral("magnifiers"), QUrl(QStringLiteral("http://files.kde.org/plasma/kwin/effect-videos/zoom.ogv")), true, false, +#ifdef EFFECT_BUILTINS &createHelper, nullptr, nullptr +#endif +EFFECT_FALLBACK } }; diff --git a/kcmkwin/kwinoptions/CMakeLists.txt b/kcmkwin/kwinoptions/CMakeLists.txt index 458139ab68..ea719b391a 100644 --- a/kcmkwin/kwinoptions/CMakeLists.txt +++ b/kcmkwin/kwinoptions/CMakeLists.txt @@ -2,10 +2,12 @@ # KI18N Translation Domain for this library add_definitions(-DTRANSLATION_DOMAIN=\"kcmkwm\") -set(kcm_kwinoptions_PART_SRCS windows.cpp mouse.cpp main.cpp ) +set(kcm_kwinoptions_PART_SRCS windows.cpp mouse.cpp main.cpp ${KWIN_SOURCE_DIR}/effects/effect_builtins.cpp ) ki18n_wrap_ui(kcm_kwinoptions_PART_SRCS actions.ui advanced.ui focus.ui mouse.ui moving.ui) +qt5_add_dbus_interface( kcm_kwinoptions_PART_SRCS + ${KWIN_SOURCE_DIR}/org.kde.kwin.Effects.xml kwin_effects_interface) add_library(kcm_kwinoptions MODULE ${kcm_kwinoptions_PART_SRCS}) -target_link_libraries(kcm_kwinoptions Qt5::DBus KF5::Completion KF5::I18n KF5::ConfigWidgets KF5::Service) +target_link_libraries(kcm_kwinoptions Qt5::DBus KF5::Completion KF5::I18n KF5::ConfigWidgets KF5::Service KF5::WindowSystem) install(TARGETS kcm_kwinoptions DESTINATION ${PLUGIN_INSTALL_DIR} ) diff --git a/kcmkwin/kwinoptions/windows.cpp b/kcmkwin/kwinoptions/windows.cpp index 3ca2348d42..2eba5fed0e 100644 --- a/kcmkwin/kwinoptions/windows.cpp +++ b/kcmkwin/kwinoptions/windows.cpp @@ -41,6 +41,8 @@ #include #include "windows.h" +#include +#include // kwin config keywords #define KWIN_FOCUS "FocusPolicy" @@ -585,7 +587,8 @@ void KMovingConfig::save(void) cg.writeEntry(KWM_CNTR_SNAP_ZONE, getCenterSnapZone()); cg.writeEntry("SnapOnlyWhenOverlapping", m_ui->OverlapSnap->isChecked()); - KConfigGroup(config, "Plugins").writeEntry("windowgeometryEnabled", getGeometryTip()); + const bool geometryTip = getGeometryTip(); + KConfigGroup(config, "Plugins").writeEntry("windowgeometryEnabled", geometryTip); if (standAlone) { config->sync(); @@ -594,6 +597,15 @@ void KMovingConfig::save(void) QDBusMessage::createSignal("/KWin", "org.kde.KWin", "reloadConfig"); QDBusConnection::sessionBus().send(message); } + // and reconfigure the effect + OrgKdeKwinEffectsInterface interface(QStringLiteral("org.kde.KWin"), + QStringLiteral("/Effects"), + QDBusConnection::sessionBus()); + if (geometryTip) { + interface.loadEffect(KWin::BuiltInEffects::nameForEffect(KWin::BuiltInEffect::WindowGeometry)); + } else { + interface.unloadEffect(KWin::BuiltInEffects::nameForEffect(KWin::BuiltInEffect::WindowGeometry)); + } emit KCModule::changed(false); }