Mouse KCM Redesign Using Kirigami
ClosedPublic

Authored by furkantokac on Jun 6 2018, 1:00 AM.

Details

Summary

Mouse KCM is redesigned by using Kirigami. Tested on Xorg and Wayland. Functionality is same.

New design V0.5 (Xorg)

New design V0.2 (Xorg)

New design V0.1 (Wayland)

Test Plan

V0.3 will be tested on Wayland. X is tested

Diff Detail

Repository
R119 Plasma Desktop
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
furkantokac created this revision.Jun 6 2018, 1:00 AM
Restricted Application added a project: Plasma. · View Herald TranscriptJun 6 2018, 1:00 AM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
furkantokac requested review of this revision.Jun 6 2018, 1:00 AM
furkantokac retitled this revision from Mouse KCM is redesigned by using Kirigami. Tested on Xorg and Wayland. Functionality is same. to Mouse KCM Redesign Using Kirigami.Jun 6 2018, 1:05 AM
furkantokac edited the summary of this revision. (Show Details)
furkantokac added reviewers: ngraham, romangg.
furkantokac edited the summary of this revision. (Show Details)Jun 6 2018, 4:34 AM

Maybe we should use the same wording for the middle-click emulation feature that we did with the touchpad KCM ("Press left and right buttons for middle-click")? The reasoning being that "Emulate middle button" is a pretty technical phrase that doesn't really indicate what it does if you don't already know.

mart requested changes to this revision.Jun 7 2018, 10:14 AM
mart added a subscriber: mart.
mart added inline comments.
kcms/mouse/kcm/libinput/main.qml
29–31

KCM.SimpleKCM

This revision now requires changes to proceed.Jun 7 2018, 10:14 AM
furkantokac edited the summary of this revision. (Show Details)Jun 7 2018, 10:45 PM

Update V0.2
Page is converted to ScrollablePage. ExclGroupBox converted to RadioButton since the titling is issue with ExclGroupBox + ScrollablePage. Middle-click title is updated.

furkantokac marked an inline comment as done.Jun 7 2018, 10:58 PM
furkantokac added inline comments.
kcms/mouse/kcm/libinput/main.qml
29–31

This is not based on KConfigModule yet so it is not okay to convert it to SimpleKCM since it'll look for "kcm" reference from the backend but will not be able to find. It is added as TODO task to the code. After this rewrite, I am planning to work on the backend so that time it may be converted to

furkantokac marked an inline comment as done.Jun 7 2018, 11:00 PM

Please test the code and if everyone is happy, I'll push the code.

Small question, why we're not using QQC2-based controls?

Small question, why we're not using QQC2-based controls?

Thanks! New diff is coming with QQC2-based controls.

romangg added inline comments.Jun 9 2018, 2:58 PM
kcms/mouse/kcm/libinput/main_deviceless.qml
209

rm line if you don't need it.

furkantokac marked an inline comment as done.Jun 9 2018, 3:00 PM
furkantokac edited the summary of this revision. (Show Details)Jun 9 2018, 9:41 PM
furkantokac edited the test plan for this revision. (Show Details)
furkantokac updated this revision to Diff 35908.EditedJun 9 2018, 9:43 PM

V0.3
QtQuickControls version is updated to 2.0. Some code cleaning.

furkantokac edited the summary of this revision. (Show Details)Jun 9 2018, 10:19 PM
furkantokac added inline comments.Jun 9 2018, 11:02 PM
kcms/mouse/kcm/libinput/main.qml
307

This label doesn't show up. If we put it to Column, it shows up vertically centered. Please recommend a solution for this.

Just realized that paddings look bad in QQC2. Any recommendation ?

furkantokac updated this revision to Diff 35926.EditedJun 10 2018, 1:30 AM

V0.2
After a discussion, decided to go back to V0.2 because of some UI issues. Bug reports will be filed about the issues. For now, we'll use qqc1.

furkantokac edited the summary of this revision. (Show Details)Jun 10 2018, 1:30 AM
furkantokac edited the summary of this revision. (Show Details)

If everyone is happy and the patch is tested, I'll push the code after a last test for Wayland and Xorg.

ngraham requested changes to this revision.Jun 10 2018, 5:23 PM
ngraham added inline comments.
kcms/mouse/kcm/libinput/main.qml
32

Please re-add the minimumSizeHint line so that the window sizes itself properly when run with kcmshell5 mouse.

kcms/mouse/kcm/libinput/main_deviceless.qml
32

Please re-add the minimumSizeHint line so that the window sizes itself properly when run with kcmshell5 mouse.

This revision now requires changes to proceed.Jun 10 2018, 5:23 PM

V0.3
sizeHint and minimumSizeHint are added.

ngraham accepted this revision.Jun 10 2018, 6:42 PM

Thanks! Looks good to me now. Please wait for Marco and Roman too before committing.

romangg requested changes to this revision.Jun 10 2018, 7:39 PM
romangg added inline comments.
kcms/mouse/kcm/libinput/main.qml
78

This needs to stay. Try it without mouse being connected.

This revision now requires changes to proceed.Jun 10 2018, 7:39 PM
furkantokac updated this revision to Diff 35974.EditedJun 10 2018, 9:34 PM

V0.4
Stupid mistake that I have done is fixed. Thank you romangg.

furkantokac marked 5 inline comments as done.Jun 10 2018, 9:37 PM
romangg accepted this revision.Jun 10 2018, 9:40 PM

Please wait for @mart's ok before pushing.

mart requested changes to this revision.Jun 11 2018, 10:12 AM

for me, using qqc1 in a new kcm, is an absolute blocker, no matter what the problem is with qqc2, problems must be fixed, not worked around. ever.

This revision now requires changes to proceed.Jun 11 2018, 10:12 AM
In D13372#277040, @mart wrote:

for me, using qqc1 in a new kcm, is an absolute blocker, no matter what the problem is with qqc2, problems must be fixed, not worked around. ever.

So please keep following the topic and help to find the best way to fix the problems.

mart added a comment.Jun 11 2018, 10:36 AM
In D13372#277040, @mart wrote:

for me, using qqc1 in a new kcm, is an absolute blocker, no matter what the problem is with qqc2, problems must be fixed, not worked around. ever.

So please keep following the topic and help to find the best way to fix the problems.

can you show how does it look with qqc2?

mart added inline comments.Jun 11 2018, 11:24 AM
kcms/mouse/kcm/libinput/main.qml
24–25

never import anything from plasma in a kcm (an exception which we have to solve is SortFilterProxyModel)
Kirigami has its own units

198

Kirigami.Units.gridUnit

(tough controls shouldn't have explicit widths set)

219

radiobuttons are auto exclusive now

mart added a comment.EditedJun 11 2018, 12:34 PM

here a patch against this which ports it to qqc2, using the completely different radiobutton mechanics qqc2 uses, fixing separators, removing plasmacore import


with qqc2-desktop-style master, the spacing issues should be solved

mart added inline comments.Jun 11 2018, 12:36 PM
kcms/mouse/kcm/libinput/main.qml
104–105

this is broken, it needs Kirigami.FormData.isSection: true
if you don't want it to be visible, it shouldn't be a Separator, but for sure it shouldn't be a broken separator

In D13372#277078, @mart wrote:

here a patch against this which ports it to qqc2, using the completely different radiobutton mechanics qqc2 uses, fixing separators, removing plasmacore import


with qqc2-desktop-style master, the spacing issues should be solved

Thank you so much! I'll check it today when I back home. This will be a nice guide for me.

V0.4
QtQuickControls version is updated to 2.0. Some code cleaning.

V0.5
import org.kde.plasma.core is removed for main.qml.

furkantokac edited the summary of this revision. (Show Details)Jun 12 2018, 5:12 PM
mart accepted this revision.Jun 13 2018, 1:59 PM
This revision is now accepted and ready to land.Jun 13 2018, 1:59 PM

V0.6
Wayland version (main.qml) is tested (X was already tested). Corrections are done. Functionality is same. All the possibilities are tested. Works fine. Ready to push.

This revision was automatically updated to reflect the committed changes.