Commit graph

226 commits

Author SHA1 Message Date
Thomas Lübking
fb39fafc71 add eye On Screen effect for showing desktop
resembles the homescreen effect on "eye" OS

REVIEW: 122679
2015-04-07 23:59:18 +02:00
Thomas Lübking
0103b0fee6 Add Window Aperture effect for showing the desktop
It moves windows to nearest corners
2015-04-07 23:59:18 +02:00
Thomas Lübking
8d2cd20c19 track cursorshape changes in zoom effect
BUG: 322088
FIXED-IN: 5.3
REVIEW: 122468
2015-02-10 21:42:06 +01:00
Martin Gräßlin
658ff303fe [effects] Support building the effect_builtins without need to link the lib
This change allows to include the effect_builtins.cpp into the build of
e.g. a kcm without having to link against all effects.

The use case for this is when one needs to resolve just the name of an
effect without wanting to hard code the name.
2015-01-29 11:44:47 +01:00
Martin Gräßlin
5e7d1d586c Adjust effects_builtins for new ki18n
* Use ki18n_wrap_ui for ui files
* define TRANSLATION_DOMAIN in CMakeLists.txt
2014-05-05 08:03:54 +02:00
Martin Gräßlin
c1b4167598 [effects] Allow Built-In Effects using xcbutils.h
xcbutils.h has quite a few inline only implementations such as Xcb::Atom,
the Wrappers, Xcb::Window and the convenient methods. Thus there is
nothing wrong with using it from the built-in Effects.

Xcb::Atom is used in Glide and Logout Effect to get the atom. To keep the
logic of the existing code it got extended by a bool isValid() which
gets the reply and returns true if the atom is set.

REVIEW: 117587
2014-04-28 14:14:20 +02:00
Martin Gräßlin
484794f046 [kwin] Make built in effects link all libraries privately
REVIEW: 116838
2014-03-26 14:02:16 +01:00
Martin Gräßlin
e3179841f3 [kwin] Create an own library for kwinxrenderutils
XRenderUtils are split out of kwineffects and are an own library just
like kwinglutils is an own library.

The library gets always build and is linked in KWin core unconditionally
(as it's used in outline) and conditionally in kwineffects (PaintClipper)
and the built in effects depending on XRender build option.
2014-03-26 14:02:16 +01:00
Martin Gräßlin
f9e0a8b597 [kwin] Create one plugin per effect configuration
There are no advantages for the effects KCM to have all the effect
config modules in one plugin.

By having a plugin per effect we can use the KPluginTrader to easily
find the configuration plugin for a given effect and load it.

To make this possible the following changes are done:
* config_builtins.cpp is deleted
* add_subdirectory is used for all effects which have a config module
* toplevel CMakeLists.txt contains the sources again for the effects
  which have a config module, but effects which don't have a config
  module are still included and thus the macro is still used
* plugin created for the config module, name pattern is:
   kwin_effectname_config
* plugin installed to ${PLUGIN_INSTALL_DIR}/kwin/effects/configs
* desktop file adjusted to new plugin name and keyword removed
* desktop file converted to json as meta data and no longer installed
* Uses K_PLUGIN_FACTORY_WITH_JSON
* Macros for config are dropped from kwineffects.h

REVIEW: 116854
2014-03-25 15:37:35 +01:00
Aleix Pol
4b79750f16 Depend on ConfigGui through KConfigSkeleton 2014-03-24 13:02:48 +01:00
Martin Gräßlin
c7d986c7fe [kwin] Remove the legacy OpenGL 1 compositing backend
KWin already has a de facto OpenGL 2 dependency through QML. Combined
with the fact that the OpenGL 1 backend is basically unmaintained and
also unused, it's better to remove it for the new major release.

This change includes:
 * Removal of cmake option KWIN_BUILD_OPENGL_1_COMPOSITING
 * Removal of KWIN_HAVE_OPENGL_1 compile option and all code
   ifdef'ed with it (partially removal of if-else constructs)
 * Removal of CompositingType::OpenGL1Compositing (flags are kept
   as a core flag should get introduced)
 * Driver recommendation for OpenGL1Compositing changed to XRender
   (should be evaluated whether the drivers can provide GL2)
 * Removal of configuration option "GLLegacy"
 * Removal of fooMatrix function in kwinglutils
 * Removal of ARBBlurShader
 * Removal of legacy code path in GLVertexBuffer
 * Removal of GLShaderManager::disable
 * if-blocks with ShaderManager::instance()->isValid() removed

REVIEW: 116042
2014-03-10 08:59:11 +01:00
Martin Gräßlin
9d08d6799a Drop taskbar thumbnail effect
As Plasma components provide a thumbnail which does not use the
effect we can also remove it.

REVIEW: 115922
2014-03-05 14:45:36 +01:00
Martin Gräßlin
d8ca2403a1 [kwin] Drop the KWIN_MOBILE_EFFECTS build option
It's no longer needed as there won't be a KWin version specific to
Plasma Active. We want to have runtime adjustments of all parts in
the next version of Plasma.

REVIEW: 116563
2014-03-03 15:22:09 +01:00
Martin Gräßlin
4586767db8 [kwin] Use imported targets for all XCB libs
Requires 04f78489265b6e52cabd2980dfc417abeee3a695 from ECM
2014-02-25 15:48:39 +01:00
Martin Gräßlin
76efe517a7 Turn built-in effects into a library kwin links against
As all effects have always been compiled into the same .so file it's
questionable whether resolving the effects through a library is useful
at all. By linking against the built-in effects we gain the following
advantages:
* don't have to load/unload the KLibrary
* don't have to resolve the create, supported and enabled functions
* no version check required
* no dependency resolving (effects don't use it)
* remove the KWIN_EFFECT macros from the effects

All the effects are now registered in an effects_builtins file which
maps the name to a factory method and supported or enabled by default
methods.

During loading the effects we first check whether there is a built-in
effect by the given name and make a shortcut to create it through that.
If that's not possible the normal plugin loading is used.

Completely unscientific testing [1] showed an improvement of almost 10
msec during loading all the effects I use.

[1] QElapsedTimer around the loading code, start kwin five times, take
average.

REVIEW: 115073
2014-01-24 14:13:59 +01:00
Marco Martin
3a4eb9a093 stub for the background contrast effect
* a copy of the blur shader to become a copy of the background contrast effect
* contrastshader actually doing the light modification
* don't expand/shrink the area
2014-01-23 14:44:00 +01:00
Martin Klapetek
54bc491c46 Port to KF5 renaming changes 2013-12-11 21:41:47 +01:00
Martin Gräßlin
145f0c096f [kwin/effects] Do not use KActionCollections for the global shortcuts
Most effects had a "collection" for one action. We don't need the
action collection, all it was used for is setting the object name.

With the removal of KActionCollection the effects do not need to link
XmlGui any more, though the dependency is still pulled in through
plasma.
2013-12-10 11:45:33 +01:00
Martin Gräßlin
c063978591 Adjust to new KGlobalAccel framework 2013-12-10 07:38:54 +01:00
Martin Gräßlin
bad6b31a1c [kwin] effects no longer need to link KDE4Support 2013-12-06 07:51:30 +01:00
Jacob Logan
ac72e9fb73 Changed debug statements in kwin/effects from qDebug() to qCDebug(KWINEFFECTS)
A new .cpp file is added containing the declaration of the logging
category and compiled into the effects lib.

REVIEW: 114194
2013-11-29 08:47:56 +01:00
Aleix Pol
c7556d6992 kde4_add_plugin -> add_library(MODULE) 2013-11-27 16:11:14 +01:00
Martin Gräßlin
9aca68cef1 [kwin/effects] Do not link Qt::Quick for the config modules
Not used.
2013-11-19 12:20:21 +01:00
Aleix Pol
7b110f0671 Improve CMake usage
It's basically a run of the port-cmake.sh script in here, mostly the changes
are the following:
- Using KF5::* targets
- Using the proper macros, following recent developments in frameworks
2013-11-15 13:37:47 +01:00
Aurélien Gâteau
05b6de1002 ${KDE4Support_LIBRARIES} => KF5::KDE4Support
Fixes a few link errors
2013-10-29 13:00:46 +01:00
Sebastian Kügler
b68867463e Change KF5::plasma to KF5::Plasma
Library name has changed in plasma-framework to bring it in line with
KF5:CamelCasing naming.
2013-10-16 01:36:56 +02:00
Bhushan Shah
7b9d0c63d0 Fix mistake 2013-10-14 21:01:11 +05:30
Bhushan Shah
ba6ff805bf kde4support-- 2013-10-14 20:54:11 +05:30
Martin Gräßlin
e3618e8796 [kwin] Follow Qt's OpenGL choice for KWin
As KWin indirectly uses Qt's OpenGL through QtQuick we need to ensure
to not mix OpenGL and OpenGLES. So we have to built KWin only against
OpenGL if Qt is built against OpenGL and we have to built KWin only
against GLESv2 if Qt is built against GLESv2.

This means the kwin_gles binary is no more. There is only kwin which
either links GL or GLESv2.
2013-10-14 09:04:03 +02:00
Sebastian Kügler
4138ba2fd4 Fix linker targets 2013-10-04 22:44:32 +02:00
Martin Gräßlin
a63ca0c311 Fix linking and includes
Seems like there were some changes, we need more explicit linking.
2013-10-02 15:23:56 +02:00
Martin Gräßlin
47cc0d77f5 KFooInput -> Q(Double)SpinBox in mouseclick effect config
And with that the effect configs do not need kde4support any more.
2013-09-09 07:47:36 +02:00
Martin Gräßlin
caad13ff95 Use new components based Find XCB 2013-09-09 06:03:35 +02:00
Martin Gräßlin
86b9ce67a0 Use QLocale in WindowGeometryEffect 2013-09-05 10:48:30 +02:00
Martin Gräßlin
8051e08361 Add missing target link libraries in kwin/effects 2013-08-23 09:38:44 +02:00
Martin Gräßlin
bf3bcd7f6f Drop linking to kdecore in KWin
Left-over from when kdebug was not yet moved to kde4support.
2013-08-20 09:16:14 +02:00
Martin Gräßlin
84a2f3020b Use Qt5:: in target link libraries in KWin 2013-08-20 09:14:24 +02:00
Martin Gräßlin
5ca6654eb8 Fix linking
KDEUI is dead which caused collateral damage.
2013-08-20 08:47:47 +02:00
Sebastian Kügler
08a53e6a11 Remove K_EXPORT_PLUGIN macros
Include .moc file in configs_builtins.cpp, and reenable the build of the
configs.

REVIEW:111940
2013-08-08 13:47:25 +02:00
Sebastian Kügler
0ac47d9b18 Disable effect config build
With the fixed KPluginFactory macro, the KWIN_EFFECT_CONFIG_* macros
seem to break. I'm looking for a solution to fix up the macro in
kwineffects.h, or otherwise the usage in the plugins.
The problem is that the macros of each plugin export the exact same
class name, which is going to clash.

Until I've found a solution, disable build of the config files, so it's
not too disruptive for others.

CCMAIL:kwin@kde.org
2013-08-06 05:17:43 +02:00
Martin Gräßlin
7bd86505f5 Port add/remove buttons in DesktopGrid to QtQuick 2
With this change we no longer need to link QtDeclarative in the Effects.
2013-08-05 14:55:37 +02:00
Martin Gräßlin
47cf35720f Present Window's close button ported to QtQuick 2 2013-08-05 14:08:23 +02:00
Martin Gräßlin
35bb48df2c Small update to the needed target link libs 2013-08-05 11:33:35 +02:00
Anselmo L. S. Melo
633db54cba Fix build: KConfigWidgets
Fix build after kdelibs-frameworks commit 2929fe7d932 which removed kdeui link to
KConfigWidgets.

REVIEW: 111865
2013-08-05 11:04:41 +02:00
Martin Gräßlin
a8fd910a01 Effects need to link KF5::KDE4Attic for KLocale 2013-07-25 16:59:20 +02:00
Martin Gräßlin
99b9f79b3b Fix linking of Effects and Effect Configs 2013-07-24 09:58:44 +02:00
Martin Gräßlin
9ab751042a Drop X11_XCB library dependency
We don't need it anymore - the xcb connection is also provided by
QX11Info.
2013-07-24 09:58:43 +02:00
Martin Gräßlin
0063e2ed2d Translucency effect rewritten in JavaScript
Supported Features:
* move/resize
* active/inactive
* special window type
* window decoration as missing in AnimationEffect

The animations are cancelled when they go into an invisible state (e.g.
desktop changed, minimized) and are set again when the window becomes
visible.

Where a transition is useful, the window gets animated, e.g. start/finish
of move resize.

BUG: 294856
FIXED-IN: 4.11
REVIEW: 110747
2013-06-05 08:31:17 +02:00
Martin Gräßlin
1fd779695f Rewrite of dialog parent effect in JavaScript
REVIEW: 110802
2013-06-04 17:17:08 +02:00
Martin Gräßlin
76c207df09 Helper effect for KScreen integration
This effect is controlled by KScreen. It fades out all windows when
KScreen requests this and gives feedback to KScreen once all windows are
faded out. This allows KScreen to adjust the screens in a flicker free
way.

REVIEW: 110661
BUG: 319994
FIXED-IN: 4.11
2013-06-04 17:06:42 +02:00