Commit graph

42 commits

Author SHA1 Message Date
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
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
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
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
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
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
d0ee2ca0d1 Boldify effect name 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
Antonis Tsiapaliokas
f590506818 Add Get-Hot-New-Stuff support
REVIEW: 114477
2014-04-03 07:23:16 +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
f19acce59d Implement the KCModule::defaults 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
d5a6dff6dd Remove hard coded colors 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
8bc4c3c85c Description text should not be elide
when we click on the description button
2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas
932bd40cb6 rename id myCheckBox => effectStatusCheckBox 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
857182ebac Make sure that our description will only be elide when there is not enough space 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
ff08041bed We don't need the findImage anymore. 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
11098706ce Fix qml runtime errors 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
fcae304dac Fix layout 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
1f509b7c30 EffectModel is no more being exposed to the QML
Instead of the EffectModel we are using the FilterProxyModel
2014-04-03 07:23:13 +02:00
Martin Gräßlin
d9fcc9f9d5 Drop useless assignement
That's already in the property binding.
2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
ed2cf5a8b5 Add Improved Window Management Support
When we click into the CheckBox the following effects are being enabled:

*kwin4_effect_desktopgrid
*kwin4_effect_presntwindows
*kwin4_effect_dialogparent

If one of the above effects gets disabled, then the checkbox is unchecked.
Our CheckBox can detect if our effects are enable at the start time.
2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
609c4c5470 Add ExclusiveGroup support to the checkboxes of the ListView.
Only ONE of the following effects can be active at the same
time.

*kwin4_effect_slideEnabled
*kwin4_effect_cubeslideEnabled
*kwin4_effect_fadedesktopEnabled
2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
dac370fc61 Move effectStatus and syncConfig from EffectView class to EffectModel 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
f44691b61c Move findImage method from EffectView to EffectModel 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
2f30411106 Make our QAbstractListModel smarter, give better names to
the enumenators.
Rename struct Effect to EffectData
2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
fc662d175d Add method findImage
Qt QuickControls require an abosolute path to the image
2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
2431da8222 Buttons are enable only when they have something to do 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
837c44434d Load the configuration UI for the Effects 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
51549d3ec9 Make our effects able to be enable and disable 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
32ee949a8d Add an about button for the author and the license of the effect 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas
52326ac892 Fix license 2014-04-03 07:23:12 +02:00
Antonis Tsiapaliokas
1d6dee92fc Initial commit 2014-04-03 07:23:12 +02:00