Commit graph

11999 commits

Author SHA1 Message Date
Martin Gräßlin
f934829e0f Remove the enableWindowManagement functionality
It's all dead code as the glue in the view got removed.
2014-04-03 07:23:16 +02:00
Martin Gräßlin
7d63ab03bc Support for mutual exclusive effects
The new X-KWin-Exclusive-Category property is read from the service
and provided to QML through the ExclusiveRole. If an effect has such
a role the CheckBox is replaced by a RadioButton. The radio buttons of
an exclusive group take care that only one effect of the group can be
enabled. In addition the radio button acts like a check box. If one
clicks the checked radio button it gets unchecked.

At the same time this change removes the hard coded functionality for
the exclusive group of desktop switching effects. It's all handled
dynamically by creating the ExclusiveGroup when needed. For each
category there can be one ExclusiveGroup.

REVIEW: 116711
2014-04-03 07:23:16 +02:00
Martin Gräßlin
503c221733 Add supported to EffectData
For each effect added to the list the KWin DBus interface is queried
for whether the effect is supported.

By default all effects are set to supported, thus if the DBus service
is not around (e.g. compositing disabled) it is assumed that all effects
are supported. In fact it's not possible to figure it out at all.

REVIEW: 116667
2014-04-03 07:23:16 +02:00
l10n daemon script
b70928fce6 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
Martin Gräßlin
9e81a26c2a Improve section heading
Using spacing around the header and no hardcoded color by using
KColorscheme to get the base color and use the same alpha modulation
as KCategoryDrawer.

REVIEW: 116703
2014-04-03 07:23:16 +02:00
l10n daemon script
5c9ddcfff2 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
Martin Gräßlin
d0ee2ca0d1 Boldify effect name 2014-04-03 07:23:16 +02:00
Martin Gräßlin
86748a4bc8 Use "Search" as placeholder text 2014-04-03 07:23:16 +02:00
Martin Gräßlin
05db7b9f7c Use xml interfaces to interact with KWin's DBus interfaces
It's a little bit more type safe.

REVIEW: 116649
2014-04-03 07:23:16 +02:00
Martin Gräßlin
edc399a444 Drop OpenGL 1
KWin doesn't support OpenGL 1 any more so we should not allow the
user to switch to it.

REVIEW: 116636
2014-04-03 07:23:16 +02:00
Martin Gräßlin
e4fe1b360f Improve layout of Effect View
* use frame in the scroll area
* remove needless anchoring for an Effect
* use one RowLayout for one Effect row
* add a left and right padding using the normal spacing
* Use a ColumnLayout for the center element consisting of
  ** name
  ** description
  ** (info)
  ** (video)
* Video moved into an own component
* Animations removed

REVIEW: 116693
2014-04-03 07:23:16 +02:00
Martin Gräßlin
e551e34403 Use TextField of QtQuickControls instead of Plasma
Prefer the native widget. Disadvantage: clear button is missing.

REVIEW: 116691
2014-04-03 07:23:16 +02:00
Martin Gräßlin
a31efea704 Export CompositingTypeIndex enum to QML
Use the dedicated enum values instead of trying to map the indices.

REVIEW: 116690
2014-04-03 07:23:16 +02:00
Martin Gräßlin
74d9185f49 Split into one KCM for Desktop Effects and one for Compositing
Let's try getting the KCM a little bit less scary by properly
hiding everything the user doesn't have to care about. The prominent
desktop effects KCM only contains the list of all the effects which
can be configured and nothing else. Only exception is the disabled
check after failed GL to make this easier for the user.

All the "advanced" settings are moved into a new KCM called
"Compositing" which is put under the hardware component in
systemsettings. This contains all advanced settings including
* whether compositing is enabled at all
* backend
* animation speeed
* scale filter
* unredirect fullscreen
* color correction

REVIEW: 116648
2014-04-03 07:23:16 +02:00
l10n daemon script
02d4d039ce SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:16 +02:00
Antonis Tsiapaliokas
f590506818 Add Get-Hot-New-Stuff support
REVIEW: 114477
2014-04-03 07:23:16 +02:00
Martin Gräßlin
b48ebd300c Add a .reviewboardrc 2014-04-03 07:23:15 +02:00
l10n daemon script
18b352f0d2 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:15 +02:00
l10n daemon script
30e58bbba3 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:15 +02:00
l10n daemon script
6abb7b7874 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:15 +02:00
l10n daemon script
2f0cb89078 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:15 +02:00
l10n daemon script
81c171e6c8 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:15 +02:00
l10n daemon script
0543714532 SVN_SILENT made messages (.desktop file) 2014-04-03 07:23:15 +02:00
Martin Gräßlin
b1429c0d60 Adjust to KDeclarative changes 2014-04-03 07:23:15 +02:00
Hrvoje Senjan
9042431106 Be less noisy when Qt5Multimedia is not present in build enviroment 2014-04-03 07:23:15 +02:00
Hrvoje Senjan
95ac83921b Declare runtime dependency on Qt5Multimedia via CMake
It's imports are needed for the effect video playback

REVIEW: 114918
2014-04-03 07:23:15 +02:00
Hrvoje Senjan
e3a83463a1 Fix includes...
...and thus, build.
Jenkins will still fail due to:
"set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")"

REVIEW: 114902
2014-04-03 07:23:15 +02:00
Mathieu Tarral
be506dee30 This patch adds a checkbox to enable/disable effects on startup
REVIEW: 114046
2014-04-03 07:23:15 +02:00
Martin Gräßlin
5f1e8ec2bd Use RowLayout for the video, configure and about buttons
Simplifies the code as we don't have to anchor the buttons.

REVIEW: 114432
2014-04-03 07:23:15 +02:00
Martin Gräßlin
9e00284158 Show busy indicator during loading of video
We need to provide some feedback during downloading the video.

REVIEW: 114431
2014-04-03 07:23:15 +02:00
Martin Gräßlin
8e1aea4ec6 Adjust CMakeList to kf5 lib renaming 2014-04-03 07:23:15 +02:00
Martin Gräßlin
ca778481b7 Integrate video into the UI
A video button is shown if the model provides an url for a video.
If the button is pressed the video element is added in a similar way
to the aboutInfo and starts the video directly. Once the playback
stopped a play again button is shown.

If one clicks the video button again, the video gets hidden.

Room for improvement:
* add a button to open in external player
* ensure video is centered correctly in the list view
2014-04-03 07:23:15 +02:00
Martin Gräßlin
0bd7c5e0e2 Add support for videos in the model 2014-04-03 07:23:15 +02:00
Martin Gräßlin
6006a91e8a Invoke the reinit Compositor signal when the advanced options changed
Therefore we track whether the options got changed and if they did
we emit the reinit signal once the configuration is saved.
2014-04-03 07:23:15 +02:00
Martin Gräßlin
450888df50 Fix connection to KWin through DBus
Not 100 % perfect yet as KWin needs to have the compositor connect
to the signals.
2014-04-03 07:23:15 +02:00
Martin Gräßlin
634b400caf Fix reseting the checkboxed in the advanced part 2014-04-03 07:23:15 +02:00
Martin Gräßlin
f19acce59d Implement the KCModule::defaults 2014-04-03 07:23:15 +02:00
Martin Gräßlin
e3c944feb2 Implement KCModule::load 2014-04-03 07:23:15 +02:00
Martin Gräßlin
891af9cf54 Handling saving the changes of the KCM
Save method added to the EffectView which invokes the specific methods
on the effect model and compositing object.
2014-04-03 07:23:15 +02:00
Martin Gräßlin
1dd1c8e51d Add the compositingType as another property to Compositing
Methods added to the Model to map from row index to the backend
identifier and vice versa. That way the Compositing object can do
all the saving and loading.
2014-04-03 07:23:15 +02:00
Martin Gräßlin
3a8a0d73ea Save complete state in Compositing QObject
* all properties extended to be writable and emit change signals
* contains load from and save to config functionality
* Compositing object in qml view is connected to the values of the
  components. So changes are directly mapped from UI to business logic
2014-04-03 07:23:15 +02:00
Martin Gräßlin
bfab98839c Fix typo 2014-04-03 07:23:15 +02:00
Martin Gräßlin
2ed5b375ea Make EffectView::init private
Called from the ctor, no need to be public.
2014-04-03 07:23:15 +02:00
Martin Gräßlin
aa39bb192f Connect changed from QML to the C++ side
Connected in the view and further emited as a signal our KCM
connects to.
2014-04-03 07:23:15 +02:00
Martin Gräßlin
befb2b8e8a Drop the Apply button from the EffectView
We have an Apply and OK button in the KCModule, so we don't need one
in the view. A change signal is introduced and passed from the individual
items upwards, so that we can connect to it from the C++ side.
2014-04-03 07:23:14 +02:00
Martin Gräßlin
7372a7f784 KWinCompositing becomes a KCModule
Instead of a binary it's a library installed as a plugin. main.cpp
defines the KCModule which just loads the EffectView into a widget
container.
2014-04-03 07:23:14 +02:00
Martin Gräßlin
dd23f40c81 Clean up CMakeLists.txt
Find only required modules and not everything kde-workspace used to find.
Also properly set the target link targets.
2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
ca453a9939 make it build 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
bf52f952b2 make it build 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
5ab8e740d4 Fix spacing 2014-04-03 07:23:14 +02:00