Commit graph

220 commits

Author SHA1 Message Date
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
Martin Gräßlin
ca5032e9d6 Drop explosion effect
It has been unmaintained and mostly broken for years.

BUG: 312176
FIXED-IN: 4.11
REVIEW: 110513
2013-05-19 09:56:04 +02:00
Kai Uwe Broulik
ed955e9488 Rewrite Scale In effect in JavaScript
REVIEW: 109075
2013-05-11 22:20:39 +00:00
Martin Gräßlin
1a3bc3f60c Split Outline in a composited and non-composited part
The non-composited part handles the showWithX case with the four small
windows. The composited part shows a translucent QWidget with the
FrameSvg as done by the selection effect frame.

Outline connects to the Compositor toggled signal to switch the mode if
compositing gets suspended/resumed. This works fine also in the case that
the switch happens while the outline is shown. To support this Outline
is now a QObject and created with Workspace as a parent.

Given that the Outline handles both cases by itself, the outline effect
is no longer needed and is dropped together with all the hooks into the
effect system.
2013-04-25 09:04:02 +02:00
Martin Gräßlin
83e3f18014 Drop BoxSwitch Effect
BoxSwitch effect has been obsoleted by QML based
Window and Desktop Switchers.

FEATURE: 296071
FIXED-IN: 4.11.0
REVIEW: 104454
2013-04-24 12:03:58 +02:00
Martin Gräßlin
0c86d31ff2 Remove kde4_no_enable_final from CMakeLists.txt
Tried to build KWin with enable final: it doesn't work. So if nobody uses
it, we don't need it in the CMakeLists to make it work.

Also it's removed in KF5 which means that removing it right now removes
differences in the build system.

REVIEW: 109357
2013-03-14 12:32:06 +01:00
Martin Gräßlin
fb65c07bf7 Use a QDeclarativeView for button views in Present Windows and Desktop Grid
Declarative UI++

REVIEW: 109409
2013-03-12 08:40:46 +01:00