Commit graph

32 commits

Author SHA1 Message Date
Martin Gräßlin
f74df28450 [kwin] Use KPluginTrader and json metadata to find KDecorations
* A KDecoration needs to include json metadata
* A KDecoration needs to be installed to kwin/kdecorations
* Aurorae and Oxygen adjusted
* kcmdeco locates all decorations through the KPluginTrader
* libkdecoration uses KPluginTrader to find the plugin
* config plugins also need to include json metadata with
  X-KDE-PluginInfo-Name being the same as the decoration
* config plugins need to get installed to kwin/kdecorations/config
* kcmdeco locates the config plugin for a deco through the name
  and KPluginTrader

REVIEW: 116765
2014-03-17 07:41:14 +01:00
Martin Gräßlin
098620832a [kwin/oxygen] Add context object to lambda connections in Oxygen::Factory
The connect is from the KDecorationOptions which lives longer than the
factory, thus the lambda might be invoked after the Factory got
destroyed. Adding the context object protects against that.
2014-03-12 07:58:39 +01:00
Martin Gräßlin
b3d3c45149 Use KPluginLoader to load our decoration plugins
This simplifies the plugin loading. Decorations just have to use
K_PLUGIN_FACTORY to specify how the KDecorationFactory needs to be
created. The KWIN_DECORATION macro is adjusted to generate the
boiler plate code, but it now needs to specify the name for the
pluginfactory and the KDecorationFactory.

This also transits the decoration abi version check to use
K_EXPORT_PLUGIN_VERSION which also simplifies the loading.

As a result the complete canLoad handling in DecorationPlugins is
removed.

REVIEW: 115930
2014-03-03 13:55:52 +01:00
David Faure
022304c0db Oxygen: avoid calls to reparseConfiguration() on startup.
strace -e open kate |& grep -v NOENT | grep oxygenrc | wc -l
  went from 8 to 4
  (and when looking for kdeglobals, from 13 to 11)

There's still a lot of work to be done in that area...
(within KConfigSkeleton, and probably kdeplatformtheme)

REVIEW: 115964
2014-02-27 21:12:36 +01:00
Martin Gräßlin
69be5b3e25 Oxygen connects to the new KDecorationOptions signals
At least to those it is interested in.
2013-09-12 09:27:38 +02:00
Martin Gräßlin
784c40a338 KDecorationFactory inherits from QObject
Adjusting to reality: our decorations have the factory already inheriting
from QObject.
2013-09-12 09:27:38 +02:00
Martin Gräßlin
afcf6dbc41 Remove deprecated functionality from libkdecorations 2013-09-12 09:27:37 +02:00
Hugo Pereira Da Costa
8839e86e50 removed KDebug 2013-08-01 20:20:27 +02:00
Martin Gräßlin
2c7e3edcaa Drop QByteArray argument from DecoHelper ctor
Has been removed from Helper parent class.
2013-07-30 07:11:28 +02:00
Martin Gräßlin
acc6ce9092 Fix no cast from ascii in Oxygen windeco 2013-07-30 07:02:11 +02:00
Hugo Pereira Da Costa
59e7d27757 use KSharedConfig to deal with configuration. 2013-01-07 12:12:13 +01:00
Hugo Pereira Da Costa
fcb275abe7 - use kcfg for shadow configuration
- move Shadow configuration UI to libs
- removed useDropShadow and useOxygenShadow options, and replaced by activeShadow::enable and inactiveShadow::enable
- use kcfg for decoration configuration. The handling of exceptions requires dedicated readConfig and writeConfig methods, implemented in oxygenutils
- changed sizegrip combobox into a check box and rephrased for clarification
2013-01-07 12:12:12 +01:00
Cedric Bellegarde
53ae2b91e2 GUI: Kwin appmenu support:
- Add support for application menu button in Kwin
- Add kded appmenu configuration in kcm_style
2012-11-09 13:44:50 +01:00
Martin Gräßlin
9308028fa4 Decoration can announce whether it currently requires an alpha channel
A decoration can provide the AbilityAnnounceAlphaChannel in addition to
AbilityUsesAlphaChannel. If this ability is provided the decoration can
enable/disable the use of the alpha channel through setAlphaEnabled().

The base idea behind this mechanism is to be able to tell the compositor
that currently alpha is not needed. An example is the maximized state in
which the decoration is fully opaque so that there is no need to use the
translucency code path which would render all windows behind the deco.

In addition also the blur effect honors this setting so that behind a
known opaque decoration no blurring is performed.

Oxygen is adjusted to disable translucency in maximized state and Aurorae
is adjusted to allow themes to enable/disable translucency. For Plastik
translucency and with that also blurring is disabled.

REVIEW: 106810
2012-11-09 10:36:43 +01:00
Thomas Lübking
e2553bd842 add deco API versioning support
REVIEW: 104978
BUG: 299141
FIXED-IN: 4.9
2012-05-17 23:26:43 +02:00
Thomas Lübking
85635dd485 fix tabbing
BUG: 290959
BUG: 265160
BUG: 229292
BUG: 238279
BUG: 290758
BUG: 222831
BUG: 278275
BUG: 245747
BUG: 230000

BUG: 253697
BUG: 230570
BUG: 265977
BUG: 225337
BUG: 225339

REVIEW: 103855
2012-02-11 16:30:22 +01:00
Thomas Lübking
bf88ec09ac Revert "fix tabbing"
pushed out of branch, not master - leading to absent revision, found hash collision??

This reverts commit 94b2ad7b85801e37e2df4671cdc4f26b6d7e5506.
2012-02-11 16:29:14 +01:00
Thomas Lübking
d245035a17 fix tabbing
BUG: 290959
BUG: 265160
BUG: 229292
BUG: 238279
BUG: 290758
BUG: 222831
BUG: 278275
BUG: 245747
BUG: 230000

BUG: 253697
BUG: 230570
BUG: 265977
BUG: 225337
BUG: 225339

REVIEW: 103855
2012-02-11 16:01:41 +01:00
Hugo Pereira Da Costa
0ae4d9489f always enable window grouping, when available.
removed corresponding config option.
2011-07-17 16:12:30 +02:00
Hugo Pereira Da Costa
c5766a5e3a removed "shadowMode" option, since it has been obsoleted by kwin's new shadow system. 2011-05-01 11:52:22 +02:00
Hugo Pereira Da Costa
77dd014d8a fixed horizontal positionning of background pixmap. 2011-04-20 10:57:40 +02:00
Hugo Pereira Da Costa
e5956f2e9a Decoration: read background pixmap from oxygenrc 2011-03-03 10:52:35 +01:00
Hugo Pereira Da Costa
96c7dedacb Added background pixmap offset to properly align decoration background and style background. 2011-03-03 10:35:56 +01:00
Hugo Pereira Da Costa
9918437a71 play with the idea of painting an overlay pixmap on top of window background. 2011-03-02 17:01:45 +01:00
Hugo Pereira Da Costa
0960942f4e cleanup variable names for consistency 2011-02-24 17:37:04 +01:00
Hugo Pereira Da Costa
cf7f1a378a Factory: properly account for shadow configuration change when return changed status. 2011-02-23 11:21:46 +01:00
Hugo Pereira Da Costa
4abee2e112 perform all shadow configuration in ShadowCache::readConfig.
This will avoid code duplication between style and decoration.
2011-02-23 11:14:21 +01:00
Hugo Pereira Da Costa
97cf4863ff Moved exception loading from oxygenfactory to oxygenconfiguration.
svn path=/trunk/KDE/kdebase/workspace/; revision=1195628
2010-11-11 16:38:44 +00:00
Hugo Pereira Da Costa
881a43a191 Changed 'drawSeparator' boolean value into a combobox, for which 3 choices are available:
- never draw separator
- draw separator when window is active
- always draw separator.

This is usefull for e.g. firefox, when a flat background is used, in which case one might 
want the separator to always be enabled.


svn path=/trunk/KDE/kdebase/workspace/; revision=1182027
2010-10-03 02:22:56 +00:00
Hugo Pereira Da Costa
70f9460484 Readded helper().invalidateCaches call at each readConfig.
this is needed to properly catch 'contrast' changes in systemsettings.


svn path=/trunk/KDE/kdebase/workspace/; revision=1173169
2010-09-08 21:07:14 +00:00
Hugo Pereira Da Costa
3ba096c34e Tried rationalize configuration changes.
svn path=/trunk/KDE/kdebase/workspace/; revision=1169281
2010-08-28 23:45:14 +00:00
Hugo Pereira Da Costa
43d7384663 oxygen.h/.cpp renamed to oxygenfactory.h/.cpp for consistency.
svn path=/trunk/KDE/kdebase/workspace/; revision=1121941
2010-05-02 18:38:05 +00:00
Renamed from clients/oxygen/oxygen.cpp (Browse further)