Commit graph

83 commits

Author SHA1 Message Date
Martin Gräßlin
d3b801da3d [kcmkwin/compositing] Drop not used qml based ui
We switched back to widgets, drop the QtQuick controls based view.
2015-02-04 14:44:30 +01:00
Martin Gräßlin
4625d0076c [kcm-effects] Use Loader for the Video Item
Currently just opening the Desktop Effects KCM loads QtMultimedia which
in turn loads gstreamer 0.10. If one opens any other KCM in
systemsettings and changes without applying the change, the window
freezes when the warning dialog gets shown, because the warning message
pulls in Phonon with maybe the Gstreamer backend which uses
gstreamer 1.0. This is bad, bad and breaks everything.

By using a Loader the problem scope gets reduced. It still happens but
only if one actually watches a video. Only opening the KCM doesn't
trigger the problem any more.

REVIEW: 120842
2014-10-28 12:57:19 +01:00
Lukáš Tinkl
0e4dd60507 i18n fixes 2014-07-23 03:35:36 +02:00
Martin Gräßlin
9c03793fac [kcmkwin/kwincompositing] Qt.Unchecked not Qt.UnChecked
Fixes that all configure buttons are enabled.
2014-06-24 09:24:54 +02:00
Martin Gräßlin
2088ce0e7e [kcmkwin/kwincompositing] Drop the OpenGLErrorView from Effects
As we have the split between Effects and Compositor settings nowadays
it's incorrect to have an Compositor related option exposed in the
Effects settings view. Thus the OpenGLErrorView should be removed. As
a nice side-effect that simplifies the main qml file quite a bit by
turning the EffectView from Item into Rectangle.

If it shows that we need the reset GL check in the effects view it would
be better to use a KMessageWidget like in the compositing view.

BUG: 336342
REVIEW: 118790
2014-06-23 08:09:31 +02:00
Martin Gräßlin
99b5426a21 [kcmkwin/compositing] Better check for enabled state of Effects
Introduces partially checked checkboxes for Effects. If an Effect
has an enabled by default function and doesn't have an explicit
value in the config file the checkbox is set to partially. If there
is a value in the config, this will be used.

Clicking on Default will return to the partially checked state.

So far only the built-in effects support the partially checked state
and also the mutual exclusive groups do not support the partial checked
(main reason: RadioButton doesn't support it)

BUG: 336045
REVIEW: 118658
2014-06-21 07:43:55 +02:00
Martin Gräßlin
ed747d82ab [kcmkwin/compositing] Use Effect name as configuration window title
REVIEW: 118632
2014-06-12 07:22:17 +02:00
Martin Gräßlin
7292938520 [kcmkwin/compositing] Improve initialization of kdeclarative
We need kdeclarative for i18n support. This needs to be done before we
load the source. By that we don't need to import Plasma.Core which isn't
used by the views at all.

Also we don't need to link twice against declarative.
2014-05-26 11:34:40 +02:00
Martin Gräßlin
9292b7e475 [kcmkwin/compositing] Accept focus on the EffectView
This allows keyboard navigation with cursor keys in the list view.

CCBUG: 335195
2014-05-23 11:10:17 +02:00
Martin Gräßlin
0532280689 [kcmkwin/compositing] Switch Text to Label
BUG: 335193
REVIEW: 118262
2014-05-22 17:09:46 +02:00
Martin Gräßlin
8ea5792677 [kcmkwin/compositing] Improve the spacing in the Effects list
Spacing needs to be specified on the ListView instead in the delegate.
This fixes incorrect vertical alignment of the buttons in each row.

In addition a proper background is set on the ScrollView.

CCBUG: 334372
REVIEW: 118260
2014-05-22 16:40:26 +02:00
Martin Gräßlin
45f1060da0 [kcmkwin/compositing] Set a maximumWidth on the text elements in Effect
By properly setting Layout.maximumWidth the buttons are not moved out of
the layout. Instead the text wraps to a new line.

BUG: 335078
REVIEW: 118222
2014-05-22 15:38:12 +02:00
Martin Gräßlin
61c631c94e [kwincompositing-kcm] Add a config option for the OpenGL Platform Interface
A small model is added which holds the available platform interfaces read
from KWin through DBus.

REVIEW: 117699
2014-05-13 09:23:03 +02:00
Martin Gräßlin
30dd9b7820 Fix the initial size of the KCMs
Both KCMs had a hard coded default which is obviously bad. Instead we
now calculate a useable implicitWidth and implicitHeight and use this
as the minimum size for the KCM. Which means we need also track changes
to these two root object properties and update the QWidget container
accordingly.

BUG: 332518
BUG: 332519
REVIEW: 117079
2014-04-03 07:23:17 +02:00
Martin Gräßlin
1b7f66243d qtextracomponents becomes kquickcontrolsaddons 2014-04-03 07:23:16 +02:00
Martin Gräßlin
39b61238e5 Load generic scripted config plugin for scripted effects
We check whether the effect is scripted and provides a config. If that
is the case our normal approach for getting the config plugin fails and
we use this case to try to load it again through the generic scripted
config plugin.

REVIEW: 116863
BUG: 332186
2014-04-03 07:23:16 +02:00
Martin Gräßlin
ca725b437f Use KPluginTrader to find the effect configuration and show it
The model data contains a new role ConfigurableRole. This is used to
decide whether the configure button is available.

The value for the role is set by searching for a KPlugin which has the
effect's service name as X-KDE-ParentComponents. All available configs
are expected to be in kf5/kwin/effects/configs/ and are located through
the KPluginTrader thus binary effect configs need to provide json meta
data.

REVIEW: 116855
2014-04-03 07:23:16 +02:00
Martin Gräßlin
cd5c5498af Fix spacing of Effect row
Using implicitHeight of the row layout as the height.

REVIEW: 116757
2014-04-03 07:23:16 +02:00
Martin Gräßlin
7166bdad61 Filter on internal effects
By default internal effects are excluded from the list, but by
checking the option in the config menu, they get included in the
list.

REVIEW: 116755
2014-04-03 07:23:16 +02:00
Martin Gräßlin
8573bb6bed Fix i18n in about item 2014-04-03 07:23:16 +02:00
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
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
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
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
Antonis Tsiapaliokas
f590506818 Add Get-Hot-New-Stuff support
REVIEW: 114477
2014-04-03 07:23:16 +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
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
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
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
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
Antonis Tsiapaliokas
5ab8e740d4 Fix spacing 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
99dc27e896 Change the background color 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
d5a6dff6dd Remove hard coded colors 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
bd3219b5a7 Add Color Correction support 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
748d2d327f Add glSwapStrategy support 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
5448c7ce36 We are now able to suspend desktop effects for fullscreen windows 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
c79894945c Add glScaleFilter and xrFilterScale support 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
e1308f8b40 Add Window Thumbnail support 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
d33c2afb81 Add animation speed Slider 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
083f670719 Rename effectStatus => updateEffectStatus method 2014-04-03 07:23:14 +02:00