Commit graph

15 commits

Author SHA1 Message Date
Ismael Asensio
23788ad9b9 [kcm/kwinrules] Add properties to a rule one-by-one
Change the labels to singular `Property` and close the property sheet
after clicking on one item.

The behaviour of the sheet is now more similar to a menu, and not so
much as a dialog which needs to be dismissed to go on.

The idea is to simplify the rule editor workflow and make it more evident
to the users. By making the `Add property` close after each selection,
the user can see immediately that the property has been added to the
rule list so they can edit it.

Also use ListView transitions to add visual hints when adding
or removing properties, and try to position the new added item
into the visible view.
2020-10-07 23:08:23 +02:00
Ismael Asensio
715f0dbbcc [kcm/kwinrules] Port to new Connections syntax
While at it remove `FIXME`comment that no longer applies
2020-10-02 23:19:59 +00:00
Vlad Zahorodnii
4ce853e8e4 Prettify license headers 2020-08-07 19:57:56 +00:00
Vlad Zahorodnii
1fb9f6f13a Switch to SPDX license markers
The main advantage of SPDX license identifiers over the traditional
license headers is that it's more difficult to overlook inappropriate
licenses for kwin, for example GPL 3. We also don't have to copy a
lot of boilerplate text.

In order to create this change, I ran licensedigger -r -c from the
toplevel source directory.
2020-08-07 19:57:56 +00:00
Nate Graham
898bd496d8 Merge branch 'Plasma/5.19' 2020-06-25 09:46:22 -06:00
Ismael Asensio
8b9472e0bf [kcm/kwinrules] Fix types property for NET::AllTypesMask
When the user selects all of the types or none of them, the "types"
property must be set to a special value (`NET::AllTypesMask = -1`),
different than the sum of all the flags together.

This re-implements this behaviour as the old KCM, fixing some heuristics
that prevented finding the rule corresponding to the current window.

The enum name that handles this property has been changed to `NetTypes`
to make it more explicit.

BUG: 423214
FIXED-IN: 5.19.3

TEST PLAN:
1. Open the `Application specific settings` on a window via menu
2. Select every "Window Type" (or none of them)
3. Give the rule a different name than the default and save
4. Open it again and check that the same rule is found
2020-06-25 15:44:11 +00:00
Ismael Asensio
379ce9327a Merge branch 'Plasma/5.19' 2020-05-31 13:42:53 +02:00
Ismael Asensio
623ee1011c [kcm/kwinrules] Fix first item position on property list
The first time the list in `Add properties` is shown, the position of the first
delegate is miscalculated as (0, 0) and gets hidden behind the section header.
It only repositions when the delegate is destroyed and re-created, for example, when
setting and deleting a filter text. (https://bugs.kde.org/show_bug.cgi?id=422289)

This works-around it by delaying the `overlayModel` filtering until the list is first
shown, which makes the delegate position correctly.

BUG: 421583
FIXED-IN: 5.19
2020-05-31 10:54:28 +00:00
Carl Schwan
1dcf514e21
Don't compare string with empty string
Summary: Instead compare string length with an integer

Test Plan: Compile && run

Reviewers: #plasma, iasensio

Reviewed By: iasensio

Subscribers: broulik, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D29772
2020-05-29 22:50:01 +02:00
Ismael Asensio
db7fb26eed [kcm/kwinrules] Fix size properties not being stored
Summary:
Use `QSize`/`QPoint` to handle and store coordinate values (size and position)

Previously, the rules model stored the "coordinate" type properties as a
`QString` with format `x, y`.

This fails when setting the properties to the config schema, as it requires
a proper `QPoint` or `QSize` value, specially the latter which can't be
convert from such a string.

BUG: 421055
FIXED-IN: 5.19.0

Test Plan:
- Add a new rule and set its position and size properties
- Hitting apply stores the right values in `~\.config\kwinrulesrc`
- Close the kcm and reopen, the values are loaded
- Property detection still works for size and position

Please note that there is a pre-existing bug of some position/sizes not being
applied to the windows in some cases, when using `Apply Initially`.
Better try using the `Force` policy.

Reviewers: ngraham, #kwin, #plasma, zzag

Reviewed By: #kwin, #plasma, zzag

Subscribers: zzag, ltoscano, yurchor, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D29764
2020-05-15 19:45:11 +02:00
Ismael Asensio
973957127d [kcm/kwinrules] Fix placeholder message in RulesEditor
Summary:
Fix the anchoring of the placeholder message after https://phabricator.kde.org/R108:9e5498238f88ece28f4f0d22da00879280cb7955
It needs to center on the free space, not the whole ListView.

Test Plan
Before: {F8323417}
After: {F8323416}

Reviewers: ngraham, broulik, #vdg, #plasma

Reviewed By: ngraham, #vdg

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D29783
2020-05-15 19:44:43 +02:00
Nate Graham
9e5498238f [kcmkwin/kwinrules] Set saner width for Placeholder messages so they don't overflow
See D29692
2020-05-12 14:12:04 -06:00
Ismael Asensio
471554b7a3 [kcm/kwinrules] Fix layout misalignment of list items
Summary:
Remove anchors within `Kirigami.AbstractListItem` delegates.
They were causing random misalignment of items in the main and the overlay `ListView`s

Test Plan:
Before {F8284332}
After {F8284333}

Reviewers: broulik, #vdg, #kwin, ngraham

Reviewed By: #vdg, ngraham

Subscribers: ahiemstra, ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D29423
2020-05-06 20:22:25 +02:00
Nate Graham
f9faa94ccc [kcmkwin/kwinrules] Port placeholder message to Kirigami.PlaceholderMessage
Summary: Depends on D29152

Test Plan:
{F8256396}

{F8257685}

Reviewers: iasensio, #kwin, zzag

Reviewed By: iasensio, #kwin, zzag

Subscribers: kwin

Tags: #kwin

Maniphest Tasks: T13021

Differential Revision: https://phabricator.kde.org/D29141
2020-04-24 08:30:07 -06:00
Ismael Asensio
a04b40dadb KWinRules KCM Redesign
Summary:
Replacement KCM to configure kwin rules, using a QML-based UI.

After some work on the task T12729, it is almost feature-par with the previous module, and adapted to the recent move to KConfigXT.

Test Plan:
{F8208046}
{F8208047}

Reviewers: #plasma, #kwin, #vdg, ngraham, davidedmundson, zzag

Reviewed By: #plasma, #kwin, #vdg, ngraham, davidedmundson, zzag

Subscribers: ngraham, davidedmundson, hchain, broulik, zzag, kwin

Tags: #kwin, #vdg

Differential Revision: https://phabricator.kde.org/D28152
2020-04-22 21:34:48 +02:00