Commit graph

20 commits

Author SHA1 Message Date
David Edmundson
14b827daaa [kcmkwin/kwindecoration] Fix save of theme name
Summary:
If a user saves a decoration that has a plugin but no theme we currently
delete the entry saving just the plugin/library.

This is an issue as on load we call:

    const QString plugin = config.readEntry("library", s_defaultPlugin);
    const QString theme = config.readEntry("theme", s_defaultTheme);

That would give us a non-default library with the default theme name,
which would be invalid.

If compiled with Breeze s_defaultTheme is blank so this ends up being
effectively the same thing. In the normal case it will neither break
nor fix anything.

Test Plan:
None.
Just happened to see it when doing a code review.

Reviewers: #kwin, vpilo

Reviewed By: vpilo

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18146
2019-01-10 15:30:59 +00:00
Valerio Pilo
e6c0680100 [kcmkwin/kwindecoration] Fix visuals of KCM decorations' buttons tab
Summary:
BUG: 346222
BUG: 399992
BUG: 356076
FIXED-IN: 5.15

The QML changes make the tab look and feel less awful:
* make the fake window borders stand out less
* add margins to drop area to make it easier to drop buttons on the title bar (fixing 346222)
* change cursor to a non-pointing one [1]

[1] Drag&drop: When dropping, we receive the position of the button being dropped,
not of the cursor. The two can be far (when starting drag by moving the cursor fast):
which makes the whole experience very confusing, as the user means to drop at cursor location.

Test Plan: Tested drag/drop: same (messy) behavior as before, but can now drop more loosely around titlebar items

Reviewers: #vdg, #kwin, ngraham

Reviewed By: #vdg, ngraham

Subscribers: davidedmundson, ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17982
2019-01-08 15:15:56 +01:00
Valerio Pilo
ef1692eea6 [kcmkwin/kwindecoration] Set current decoration index on start
Summary:
Fixes the preselected decoration style on module load.

Also:
* Prevent the module state to be set to modified on resize.
* Fix QML errors in logs.

Reviewers: davidedmundson

Reviewed By: davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17775
2019-01-03 15:26:46 +01:00
Vlad Zagorodniy
a453925306 Fix KDeclarative::setupBindings() deprecation warnings
Reviewers: #kwin, mart

Reviewed By: #kwin, mart

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13835
2018-07-02 12:46:00 +03:00
David Edmundson
f5a43877a9 Sort the themes in decoration KCM
Summary:
Even though we're using a QSortFilterProxy model, by default it doesn't
actually sort anything until instructed to.

This patch turns sorting on.

Test Plan:
Opened the KCM
Looked at it

Reviewers: #plasma, mart

Reviewed By: mart

Subscribers: plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5407
2017-04-13 11:54:44 +01:00
David Edmundson
3709996f8a Fix KWin decoration KCM showing correct index at startup
Summary:
The KCM has a context property of the currently set theme index. This is
set before the decorations model is populated, so it is currently always
-1.

This model is populated after the constructor but before
KCModule::load().

KCModule::load is called from KCModule::showEvent so before
QQuickGridView will start doing anything with delegates.

This fixes the problem simply and also avoid parsing the config file
multiple times.

This bug was introduced in 5.9.4:

Someone made a (tested) change to make sure the view scrolled to the
right place on startup.
I then made a (tested) commit fixing the crash on exit
The author then updated his patch to my changes, but now in a way that
didn't work.

Test Plan:
Opened system settings module with a million decorations.
The correct entry was visible and highlighted.

Reviewers: #plasma, graesslin

Reviewed By: #plasma, graesslin

Subscribers: plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5401
2017-04-13 11:54:39 +01:00
Marco Martin
892f398b10 move the view at the correct index at startup
Summary:
using the same trick as elsewhere, set the currentIndex
and move the view to currentIndex right at startup
the only way to be sure is onContentHeightChanged
as there are no signals for when "the view has been
populated and settled up"

Test Plan:
the view is at the right state since the first frame shown,
no more jumping around effect

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D4703
2017-02-24 15:51:53 +01:00
David Edmundson
70d2fb2378 Avoid a crash on Kwin decoration KCM teardown
Summary:
As described in https://bugreports.qt.io/browse/QTBUG-57714  exposing a
QWidget as a context item to QtQuick can crash. Especially as the
engine's context property gets deleted whilst deleting the parent item.

This patch reworks the code so that the models are exposed to QML
directly rather than going through a QWidget.

CCBUG: 373628

Test Plan:
Pressing back whilst in the decoration KCM used to crash every time, now it doesn't.
I still have the buttons.

Reviewers: #plasma, graesslin

Reviewed By: #plasma, graesslin

Subscribers: graesslin, cfeck, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D4533
2017-02-10 14:01:09 +01:00
Martin Gräßlin
5646313c2c Add an explicit dependency to Breeze to find decoration plugin
Summary:
KWin needs the plugin id of the breeze decoration plugin. Instead
of hard coding that it's now resolved through an optional dependency.
If the optional dependency is not available, the default is adjusted
to aurorae/plastik.

Reviewers: #plasma

Subscribers: plasma-devel

Projects: #plasma

Differential Revision: https://phabricator.kde.org/D1344
2016-04-12 08:54:50 +02:00
Thomas Lübking
ed2314dfbe overhaul of deco kcm
- tab theme and button items
- move menubutton close hint below checkbox (moved on top)
- use proper background palette on palette updates

REVIEW: 125393
2015-10-05 23:40:46 +02:00
Marco Martin
63885cc5b3 use xembed for the qml view of window decorations modul
the only way to ensure the view won't randomly become black
(probably QQuickwidget won't be fixed in qt anytime soon or
ever in 5.x lifetime due to how architecturally is)

basically systemsettings has no control of what gets loaded in,
if one other kcm will call winId(), this one will break.

BUG:341971
2015-01-28 09:58:47 +01:00
Martin Gräßlin
52793c5e5b [kcmkwin/deco] Fix build for Qt < 5.4
QQuickWidget::setClearColor is new in Qt 5.4. Sorry about the unintended
breakage of building with Qt 5.3.
2015-01-26 10:27:39 +01:00
Thomas Lübking
ce2fa727e8 Overhaul of deco kcm
- align with system palette
- base color for buttons and preview individually
  to create a visual gap (make them more standalone)
- downsized button config buttons to match up w/ preview
  appearance (and because it was simply to huge for a desktop thing)
- upsized preview to preferably show two elements at once
  (current + 2*1/2context)
- made the titlebar a visible visual element
- label the titlebar "Titlebar"
- move the (altered) hint to the drag-from area
- hint draggability with a pointing hand cursor
- less hardcoded values
- brief animations on button adding/removing

BUG: 337544
REVIEW: 122064
2015-01-22 01:31:31 +01:00
Martin Gräßlin
d5233a6b6f [kcmkwin/deco] Bring back a decoration buttons configuration interface
The decoration button configuration interface is merged into the QML
part using two list views (left buttons, right buttons) and a grid
view for all the available buttons.
2014-12-09 16:07:27 +01:00
Martin Gräßlin
2034e7e875 [kcmkwin/deco] Bring back KNewStuff support
KNewStuff is no longer hard-coded to Aurorae themes. Instead the
availability of KNewStuff is derived from the available plugin
metadata. If the section org.kde.kdecoration2 contains a key
"KNewStuff" it's value is interpreted as the knsrc config file name.
If there is at least one plugin with such a key KNS gets enabled.

If there are multiple plugins providing KNS support the download
button is turned into a button with a connected menu and each menu
entry points to one of the available resources. Of course this is
not optimal, but KNS doesn't allow the combining of multiple config
files.
2014-12-05 10:15:41 +01:00
Martin Gräßlin
623ac3faa3 [kcmkwin/deco] Fix defaults for border size and close window double click 2014-12-04 17:41:57 +01:00
Martin Gräßlin
6b7fd5b9bc [kcmkwin/deco] Only specify QStringLiteral("Normal") once 2014-12-04 17:41:18 +01:00
Martin Gräßlin
dc9437e59a [kcmkwin/deco] Add a filter and a QSortFilterProxyModel 2014-12-04 17:35:08 +01:00
Martin Gräßlin
39f9581d4f Bring back configuration options for Decorations
* Border Sizes
* Close menu double click

Both are added to the Settings and exposed in the decoration kcm.
As it started to no longer scale the kcm uses a ui file.

Still missing:
* buttons
* custom decoration configuration
* GHNS
* search
2014-12-04 16:28:06 +01:00
Martin Gräßlin
8dd0a8163f [kcmkwin/kwindecoration] Import a new decoration configuration module
Following features are supported:
* finds all plugins
** finds all themes for a theme-engine plugin
* renders previews for the plugin/themes
* loads currently used plugin/theme
* saves selected plugin/theme
* triggers config reload in KWin

Following features are currently not supported:
* Search
* Plugin configuration
* GHNS
* Button configuration
2014-10-31 07:53:04 +01:00