Commit graph

2051 commits

Author SHA1 Message Date
Martin Gräßlin
18acfc4436 Plastik theme for Aurorae replaces the classic Plastik
* Update script to migrate Plastik users to Aurorae
* Plastik QML renamed to Plastik
* Old Plastik is dropped
2012-10-25 11:18:52 +02:00
Martin Gräßlin
ae99d9bc6e Fix initial button flickering in Plastik QML
Disable animations till the decoration is completel loaded. This
ensures that the buttons do not flicker because of the animation from
black to their respective color.
2012-10-25 11:18:52 +02:00
Martin Gräßlin
728b47ef07 Use a Component for Explicit Spacers
A component has the advantage that the width property can depend from
other properties. This does not work with the previous on the fly
construction as the width does not update when the referenced property
changes.
2012-10-25 11:18:52 +02:00
Script Kiddy
2141dc821b SVN_SILENT made messages (.desktop file) 2012-10-16 18:43:37 +02:00
Martin Gräßlin
777513a0c8 Merge branch 'KDE/4.9'
Conflicts:
	ksmserver/themes/contour/metadata.desktop
	ksmserver/themes/default/metadata.desktop
	kwin/kcmkwin/kwinscripts/kwinscripts.desktop
	kwin/scripts/videowall/metadata.desktop
	kwin/tabbox/qml/clients/compact/metadata.desktop
	kwin/tabbox/qml/clients/present_windows/metadata.desktop
	plasma/desktop/containments/desktop/plasma-containment-desktop.desktop
	plasma/generic/applets/system-monitor/plasma-applet-sm_hdd_activity.desktop
	plasma/generic/runners/nepomuksearch/plasma-runner-nepomuksearch.desktop
	plasma/generic/runners/places/plasma-runner-places.desktop
	plasma/generic/runners/webshortcuts/plasma-runner-webshortcuts.desktop
	powerdevil/kcmodule/activities/powerdevilactivitiesconfig.desktop
	powerdevil/kcmodule/global/powerdevilglobalconfig.desktop
	powerdevil/kcmodule/profiles/powerdevilprofilesconfig.desktop
2012-10-12 07:59:22 +02:00
Martin Gräßlin
798ccac19d Remove margins for decoration-maximized elements
Fixes incorrect rendering of decorations providing a maximized element.
BUG: 308248
FIXED-IN: 4.9.3
2012-10-12 07:47:07 +02:00
Script Kiddy
c129dc2d63 SVN_SILENT made messages (.desktop file) 2012-10-11 10:01:52 +02:00
Martin Gräßlin
49cce8dede Build option to disable the Oxygen window decoration
This build option is added to make it easier to build just KWin without
kde-workspace. This is a common requirement by developers wanting to
contribute to KWin and only want to build KWin but use everything else
from their normal distribution.

Building KWin standalone is very often difficult due to Oxygen. If the
library has changed it is not possible to build just KWin without also
building the workspace libs and if you do so you run into ABI problems
when trying to start KWin - either the decoration or the style is
crashing due to not matching libraries.

To circumvent this common issue for new developers this build option
is introduced to just exclude the Oxygen window decoration and defaulting
to Plastik.

Of course by default this option is turned ON, so that the Oxygen
decoration gets build. By default there is no change at all.

REVIEW: 106303
2012-10-04 17:09:39 +02:00
Script Kiddy
5cd15e8920 SVN_SILENT made messages (.desktop file) 2012-10-01 10:36:58 +02:00
Script Kiddy
8c38be18b7 SVN_SILENT made messages (.desktop file) 2012-09-29 11:37:39 +02:00
Martin Gräßlin
9f8228bb1c Merge branch 'KDE/4.9' 2012-09-27 15:35:36 +02:00
Martin Gräßlin
049582536a Fix enabled borders and padding for maximized Aurorae decos
In the maximized state the enabled borders were still enabled causing
the actual borders to be still shown. In addition the padding is not
adjusted to be 0. This is done in the C++ part is it does not make any
sense to have shadows being thrown to another screen for a maximized
window.

REVIEW: 106576
BUG: 307365
FIXED-IN: 4.9.2
2012-09-27 15:34:32 +02:00
Script Kiddy
cb86f3e0f5 SVN_SILENT made messages (.desktop file) 2012-09-20 10:06:35 +02:00
Script Kiddy
203a9c1838 SVN_SILENT made messages (.desktop file) 2012-09-19 01:16:25 +02:00
Script Kiddy
31464244e1 SVN_SILENT made messages (.desktop file) 2012-09-18 19:14:07 +02:00
Script Kiddy
f161331b1e SVN_SILENT made messages (.desktop file) 2012-09-02 10:37:09 +02:00
Script Kiddy
62ef8ddcad SVN_SILENT made messages (.desktop file) 2012-09-01 11:00:30 +02:00
Martin Gräßlin
4812edc92d Ignore SettingsCompositing changed in Aurorae
Not needed and causing troubles when restarting Compositing.
2012-09-01 10:02:17 +02:00
Script Kiddy
c4d6cd3cf7 SVN_SILENT made messages (.desktop file) 2012-08-30 10:53:23 +02:00
Hugo Pereira Da Costa
a93f71ab57 properly deal with invalid colors when calculating cache keys.
using color.rgba() for an invalid color corresponds to solid black, which in turns conflicts with the cache
value for such color. We use "transparent black" instead.
CCBUG: 304868
2012-08-29 14:53:40 +02:00
Hugo Pereira Da Costa
e06ca2e82c properly deal with invalid colors when calculating cache keys.
using color.rgba() for an invalid color corresponds to solid black, which in turns conflicts with the cache
value for such color. We use "transparent black" instead.
CCBUG: 304868
2012-08-29 14:51:14 +02:00
Script Kiddy
9fb338ccd5 SVN_SILENT made messages (.desktop file) 2012-08-28 18:59:14 +02:00
Hugo Pereira Da Costa
e248577c37 Fixed positioning of tabs when manually reordering with right mouse button
Made 'drop target' animation consistent with where tab is actually dropped
Cleanup code.
CCBUG: 305443
2012-08-28 09:27:57 +02:00
Hugo Pereira Da Costa
08e9acae0d Fixed positioning of tabs when manually reordering with right mouse button
Made 'drop target' animation consistent with where tab is actually dropped
Cleanup code.
CCBUG: 305443
2012-08-28 09:26:04 +02:00
Hugo Pereira Da Costa
f28d4ef91a Added Option to enable window close on menu double click.
CCBUG: 305738
2012-08-27 23:00:44 +02:00
Hugo Pereira Da Costa
6efd6bc702 fixed indentation. 2012-08-27 23:00:32 +02:00
Martin Gräßlin
d81df32a4f Support for Plastik's configuration options
Adding a KConfigXT xml file and an ui file to configure the QML
variant of Plastik.

Currently supported options:
* title alignment
* title shadow
* animation of buttons

Missing option:
* colored borders
2012-08-26 20:59:37 +02:00
Martin Gräßlin
8de1fea67e Option to disable window close on menu double click in Aurorae
For each theme the setting can be enabled individually with the
default being enabled by default. It is completely handled
inside the MenuButton QML component so each QML theme benefits
from the option automatically, too.

BUG: 301327
FIXED-IN: 4.10
REVIEW: 106160
2012-08-26 20:56:19 +02:00
Martin Gräßlin
8d55d9fa21 Use DecorationOptions in Aurorae themes
Instead of injection the Factory as a context property into the
Aurorae QML file the new DecorationOptions is used.
2012-08-26 20:56:19 +02:00
Martin Gräßlin
459da3ea44 Port of Plastik decoration to QML
The Plastik decoration buttons are provided by a declarative
extension plugin as the canvas drawing API would be needed to
draw these buttons. This should be changed with Qt 5.

But it's also a nice example to show how a QML based decoration
can have an extension in C++.
2012-08-26 20:56:19 +02:00
Martin Gräßlin
ce2b251c9b Support for config values in QML decorations
When the decoration is reset a signal is emitted that the config
might have changed which the decoration can connect to for
reloading its configuration. For this an invokable method is
added to Aurorae allowing to read a config value which just
returns the QVariant.

Proper support for border sizes are added by providing the enum
in DecorationOptions, so that QML themes can use the enum values
to decide which border size to use.

The kcm is adjusted to also support these config mechanisms and
to properly load and save the border sizes for QML based themes.
2012-08-26 20:56:19 +02:00
Martin Gräßlin
13993a6efb Properly reset Aurorae decorations when theme changes
On change of theme recreate all decorations and create a new
declarative engine and component which is basically a re-init
of the Factory.

There are too many differences between themes - especially when
switching between an old SVG based Aurorae and a new QML based
Aurorae theme.
2012-08-26 20:56:19 +02:00
Martin Gräßlin
673dcd6ad3 Declarative extension plugin for window decorations
The generic QML components from Aurorae are split out into an
own declarative plugin. In addition two new helper classes are
added to this plugin:
* A ColorHelper to map a few function of KColorSheme and making
  it possible to actually work with colors in QML. The need
  emerged from trying to port Plastik to QML which makes strong
  use of color shading.
* A DecorationOptions class which is a wrapper around KWin's
  KDecorationOptions but in a more useable way for QML. The
  various options are provided as properties and the value of
  the properties changes automatically depending on whether the
  decoration is active or inactive.

Aurorae itself is not yet adjusted to these changes, but it
should also be adjusted as some of the options are currently
exported in the factory and the factory is injected into the
Aurorae QML decoration.
2012-08-26 20:56:19 +02:00
Martin Gräßlin
5923086d1f Basic QML theme support in Aurorae
Aurorae can load QML themes from Plasma package structures.
Code not yet tested as there are no packages yet.
2012-08-26 20:56:19 +02:00
Martin Gräßlin
fb01e4ab8c Ensure that titleHeight is at least height of buttons
Required to properly lay out the title in case of vertical or
bottom alignment.

BUG: 304822
FIXED-IN: 4.9.1
REVIEW: 105937
2012-08-17 20:39:17 +02:00
Martin Gräßlin
85f31b1310 Honor the decoration font in Aurorae
Adding two properties to the AuroraeFactory to read the active
and inactive title font.

BUG: 304791
FIXED-IN: 4.9.1
REVIEW: 105956
2012-08-17 17:45:56 +02:00
Martin Gräßlin
874fccacd5 Delay maximize operation by one event cycle
The result of maximizing a window might be the decoration
going away. Because of that we need to delay the handling of
maximize and title bar double click by one cycle as had been
done for other close operations in 0fea5325

BUG: 304870
FIXED-IN: 4.9.1
REVIEW: 105961
2012-08-10 16:52:53 +02:00
Martin Gräßlin
46441998a3 Do not accept left mouse press events on titlebar in Aurorae
Accepting the mouse events breaks moving the window by dragging
the title bar. The reason is that it eats the mouse event and
by that never reaches KWin core to perform the movement.

Other mouse buttons need to be accepted for handling the window
operations. Also we need to listen in general to left mouse
button for the double click operation.

BUG: 304249
FIXED-IN: 4.9.1
REVIEW: 105784
2012-08-02 10:50:21 +02:00
Martin Gräßlin
5c7d046d13 Install event filter on Aurorae Decoration to handle WheelEvents
Unfortunately QtQuick 1 does not provide a way to receive Wheel
events. But the window decoration needs to pass wheel events on
the titlebar to KWin core.

In order to process also Wheel Events in Aurorae an event
filter is installed on the widget and in case the mouse positon
is on the title bar the titlebarMouseWheelOperation is invoked.

BUG: 304248
FIXED-IN: 4.9.1
REVIEW: 105801
2012-08-02 10:49:06 +02:00
Hugo Pereira Da Costa
6effa63296 added suffix (px) to shadow spinboxes. 2012-07-20 14:53:29 +02:00
Martin Gräßlin
5517d4db2c Delay closing of a window by one event cycle
This is an issue we already had in the past with Aurorae. When
closing a window the graphics scene crashes because the deco
gets destroyed before the code in the graphics scene finished
the execution.

With the port to QML this seemed to be fixed unless as it turns
out it throws an XIO error on closing:
fatal IO error 11 (Resource temporarily unavailable) on X server ":0"

This can be triggered using glxgears. Closing glxgears would
reliable crash Aurorae. To circumvent this issue we have to
delay the close by one event cycle using QMetaObject's
invokeMethod with a Qt::QueuedConnection.

This has also to be done in the useractions menu as the menu
is still open when the window closes causing the same problem
inside Aurorae.

BUG: 303450
FIXED-IN: 4.9.0
Reviewed-By: Thomas Lüking
2012-07-14 11:11:02 +02:00
Martin Gräßlin
e868ed8999 Do not use States and Transitions in QML of Aurorae
According to Nuno it's much better to define the animations in
a Behavior element as that is together with the element which
gets animated.

Also he recommends to not use states but just property binding
for the properties which are animated in the Behavior.

And I must admit that this produces cleaner code, though the
conditions are now scattered all over the source code and not
nicely put together in one state section. Let's just hope I got
the logic right.

Well seems like it is useful to go to a QML training, at least
it made me aware of my State definitions are not good and then
talking to Nuno and giving a try to his recommendations.

REVIEW: 105426
2012-07-05 15:22:57 +02:00
Script Kiddy
953d088b6a SVN_SILENT made messages (.desktop file) 2012-06-12 17:07:51 +02:00
Hugo Pereira Da Costa
46d0116dd5 Added hidden configuration option to enable/disable closing windows by clicking on menu button.
Option is called "CloseFromMenuButton"
It is false by default.
To turn it on, add
  CloseFromMenuButton=true
in [Windeco] section of $HOME/.kde4/share/config/oxygenrc.
Note that it results in poor usability of the menu button, if enabled.

CCBUG: 301237
2012-06-07 12:28:25 -07:00
Script Kiddy
62211420c7 SVN_SILENT made messages (.desktop file) 2012-05-28 11:08:19 +02:00
Martin Gräßlin
4490d51ae8 Initialize themeconfig class members with default values
Static getters for each default value added which are used in
ctor to initialize the class members and in the load for
readEntry's default value.

REVIEW: 104994
2012-05-19 19:46:28 +02:00
Martin Gräßlin
ea8db29c2b Escape HTML tags in window caption in Aurorae and Killer
The unescaped tags are interpreted as HTML by Aurorae decorations
and the KWin killer. Escaping the tags ensures that the text is not
rendered incorrectly.

BUG: 293657
FIXED-IN: 4.9.0
REVIEW: 104989
2012-05-19 11:56:35 +02: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
Hugo Pereira Da Costa
fb361b3d35 Cleanup radial gradient definition and offsets.
Fixed bug on shading windows with large buttons.
2012-05-03 20:09:45 +02:00
Hugo Pereira Da Costa
ba573c60ed Check that widget style supports "SH_ArgbDndWindow" to decide whether or not to draw a shadow around
ItemTag drag-and-drop icon.
2012-05-01 17:32:28 +02:00