22#include " environment.h"
33#include " find-themes.h"
44#include " macros.h"
5+ #include " pair.h"
56#include " settings.h"
67#include " ./ui_mouse.h"
78
@@ -27,12 +28,150 @@ void Mouse::activate()
2728
2829 /* Natural Scroll */
2930 ui->naturalScroll ->setChecked (getBool (" /labwc_config/libinput/device/naturalScroll" ));
31+
32+ /* Left Handed */
33+ ui->leftHanded ->setChecked (getBool (" /labwc_config/libinput/device/leftHanded" ));
34+
35+ /* Pointer Speed */
36+ ui->pointerSpeed ->setValue (getFloat (" /labwc_config/libinput/device/pointerSpeed" ));
37+
38+ /* Accel Profiles */
39+ ui->accelProfile ->clear (); // remove 2 empty values created for some reason
40+
41+ QVector<QSharedPointer<Pair>> profiles;
42+ profiles.append (QSharedPointer<Pair>(new Pair (" flat" , tr (" flat" ))));
43+ profiles.append (QSharedPointer<Pair>(new Pair (" adaptive" , tr (" adaptive" ))));
44+
45+ QString current_profile = getStr (" /labwc_config/libinput/device/accelProfile" );
46+ int profile_index = -1 ;
47+ foreach (auto profile, profiles) {
48+ ui->accelProfile ->addItem (profile.get ()->description (), QVariant (profile.get ()->value ()));
49+ ++profile_index;
50+ if (current_profile == profile.get ()->value ()) {
51+ ui->accelProfile ->setCurrentIndex (profile_index);
52+ }
53+ }
54+
55+ /* Tap to click */
56+ ui->tap ->setChecked (getBool (" /labwc_config/libinput/device/tap" ));
57+
58+ /* Tap Button Map */
59+ ui->tapButtonMap ->clear (); // remove 2 empty values created for some reason
60+
61+ QVector<QSharedPointer<Pair>> maps;
62+ maps.append (QSharedPointer<Pair>(new Pair (" lrm" , tr (" lrm" ))));
63+ maps.append (QSharedPointer<Pair>(new Pair (" lmr" , tr (" lmr" ))));
64+
65+ QString current_map = getStr (" /labwc_config/libinput/device/tapButtonMap" );
66+ int map_index = -1 ;
67+ foreach (auto map, maps) {
68+ ui->tapButtonMap ->addItem (map.get ()->description (), QVariant (map.get ()->value ()));
69+ ++map_index;
70+ if (current_map == map.get ()->value ()) {
71+ ui->tapButtonMap ->setCurrentIndex (map_index);
72+ }
73+ }
74+
75+ /* Tap And Drag */
76+ ui->tapAndDrag ->setChecked (getBool (" /labwc_config/libinput/device/tapAndDrag" ));
77+
78+ /* Drag Lock */
79+ ui->dragLock ->setChecked (getBool (" /labwc_config/libinput/device/dragLock" ));
80+
81+ // Disable it when tapAndDrag is unchecked
82+ ui->dragLock ->setEnabled (ui->tapAndDrag ->isChecked ());
83+ ui->label_dragLock ->setEnabled (ui->tapAndDrag ->isChecked ());
84+
85+ connect (ui->tapAndDrag , &QCheckBox::toggled,ui->dragLock , &QWidget::setEnabled);
86+ connect (ui->tapAndDrag , &QCheckBox::toggled,ui->label_dragLock , &QWidget::setEnabled);
87+
88+ /* 3 Finger Drag */
89+ ui->threeFingerDrag ->setChecked (getBool (" /labwc_config/libinput/device/threeFingerDrag" ));
90+
91+ /* Middle Emulation */
92+ ui->middleEmulation ->setChecked (getBool (" /labwc_config/libinput/device/middleEmulation" ));
93+
94+ /* Disable While Typing */
95+ ui->disableWhileTyping ->setChecked (getBool (" /labwc_config/libinput/device/disableWhileTyping" ));
96+
97+ /* Click Method */
98+ ui->clickMethod ->clear ();
99+
100+ QVector<QSharedPointer<Pair>> clickmethods;
101+ clickmethods.append (QSharedPointer<Pair>(new Pair (" none" , tr (" none" ))));
102+ clickmethods.append (QSharedPointer<Pair>(new Pair (" buttonAreas" , tr (" Button area" ))));
103+ clickmethods.append (QSharedPointer<Pair>(new Pair (" clickFinger" , tr (" Clickfinger" ))));
104+
105+ QString current_clickmethod = getStr (" /labwc_config/libinput/device/clickMethod" );
106+ int clickmethod_index = -1 ;
107+ foreach (auto clickmethod, clickmethods) {
108+ ui->clickMethod ->addItem (clickmethod.get ()->description (), QVariant (clickmethod.get ()->value ()));
109+ ++clickmethod_index;
110+ if (current_clickmethod == clickmethod.get ()->value ()) {
111+ ui->clickMethod ->setCurrentIndex (clickmethod_index);
112+ }
113+ }
114+
115+ /* Scroll Method */
116+ ui->scrollMethod ->clear ();
117+
118+ QVector<QSharedPointer<Pair>> scrollmethods;
119+ scrollmethods.append (QSharedPointer<Pair>(new Pair (" twoFinger" , tr (" Two Finger" ))));
120+ scrollmethods.append (QSharedPointer<Pair>(new Pair (" edge" , tr (" Edge" ))));
121+ scrollmethods.append (QSharedPointer<Pair>(new Pair (" none" , tr (" None" ))));
122+
123+ QString current_scrollmethod = getStr (" /labwc_config/libinput/device/scrollMethod" );
124+ int scrollmethod_index = -1 ;
125+ foreach (auto scrollmethod, scrollmethods) {
126+ ui->scrollMethod ->addItem (scrollmethod.get ()->description (), QVariant (scrollmethod.get ()->value ()));
127+ ++scrollmethod_index;
128+ if (current_scrollmethod == scrollmethod.get ()->value ()) {
129+ ui->scrollMethod ->setCurrentIndex (scrollmethod_index);
130+ }
131+ }
132+
133+ /* Send Events Mode */
134+ ui->sendEventsMode ->clear ();
135+
136+ QVector<QSharedPointer<Pair>> sendeventsmodes;
137+ sendeventsmodes.append (QSharedPointer<Pair>(new Pair (" enabled" , tr (" Enabled" ))));
138+ // sendeventsmodes.append(QSharedPointer<Pair>(new Pair("no", tr("no")))); will disable also keyboard
139+ // we cannot write "<touchpad>no" here as we get <sendEventsMode><touchpad>disabledOnExternalMouse</sendEventsMode>
140+ // implement write to <libinput><category=touchpad> ?
141+ sendeventsmodes.append (QSharedPointer<Pair>(new Pair (" disabledOnExternalMouse" , tr (" Disable with external mouse" ))));
142+
143+ QString current_sendeventsmode = getStr (" /labwc_config/libinput/device/sendEventsMode" );
144+ int sendeventsmode_index = -1 ;
145+ foreach (auto sendeventsmode, sendeventsmodes) {
146+ ui->sendEventsMode ->addItem (sendeventsmode.get ()->description (), QVariant (sendeventsmode.get ()->value ()));
147+ ++sendeventsmode_index;
148+ if (current_sendeventsmode == sendeventsmode.get ()->value ()) {
149+ ui->sendEventsMode ->setCurrentIndex (sendeventsmode_index);
150+ }
151+ }
152+
153+ /* Scroll Factor */
154+ ui->scrollFactor ->setValue (getFloat (" /labwc_config/libinput/device/scrollFactor" ));
30155}
31156
32157void Mouse::onApply ()
33158{
34159 /* ~/.config/labwc/rc.xml */
35160 setBool (" /labwc_config/libinput/device/naturalScroll" , ui->naturalScroll ->isChecked ());
161+ setBool (" /labwc_config/libinput/device/leftHanded" , ui->leftHanded ->isChecked ());
162+ setFloat (" /labwc_config/libinput/device/pointerSpeed" , ui->pointerSpeed ->value ());
163+ setStr (" /labwc_config/libinput/device/accelProfile" , DATA (ui->accelProfile ));
164+ setBool (" /labwc_config/libinput/device/tap" , ui->tap ->isChecked ());
165+ setStr (" /labwc_config/libinput/device/tapButtonMap" , DATA (ui->tapButtonMap ));
166+ setBool (" /labwc_config/libinput/device/tapAndDrag" , ui->tapAndDrag ->isChecked ());
167+ setBool (" /labwc_config/libinput/device/dragLock" , ui->dragLock ->isChecked ());
168+ setBool (" /labwc_config/libinput/device/threeFingerDrag" , ui->threeFingerDrag ->isChecked ());
169+ setBool (" /labwc_config/libinput/device/middleEmulation" , ui->middleEmulation ->isChecked ());
170+ setBool (" /labwc_config/libinput/device/disableWhileTyping" , ui->disableWhileTyping ->isChecked ());
171+ setStr (" /labwc_config/libinput/device/clickMethod" , DATA (ui->clickMethod ));
172+ setStr (" /labwc_config/libinput/device/scrollMethod" , DATA (ui->scrollMethod ));
173+ setStr (" /labwc_config/libinput/device/sendEventsMode" , DATA (ui->sendEventsMode ));
174+ setFloat (" /labwc_config/libinput/device/scrollFactor" , ui->scrollFactor ->value ());
36175
37176 /* ~/.config/labwc/environment */
38177 environmentSet (" XCURSOR_THEME" , TEXT (ui->cursorTheme ));
0 commit comments