Skip to content

Commit 8a79106

Browse files
committed
Create mouse.{ui,h,cpp}
1 parent 57582bb commit 8a79106

File tree

6 files changed

+133
-69
lines changed

6 files changed

+133
-69
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ set(PROJECT_SOURCES
4848

4949
src/appearance.cpp src/appearance.h src/appearance.ui
5050
src/behaviour.cpp src/behaviour.h src/behaviour.ui
51+
src/mouse.cpp src/mouse.h src/mouse.ui
5152
)
5253
set(PROJECT_OTHER_FILES
5354
.github/workflows/build.yml

src/maindialog.cpp

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,7 @@ void MainDialog::activate()
6262
{
6363
ui->pageAppearance->activate();
6464
ui->pageBehaviour->activate();
65-
66-
/* # MOUSE & TOUCHPAD */
67-
68-
/* Cursor Theme */
69-
QStringList cursorThemes = findIconThemes(LAB_ICON_THEME_TYPE_CURSOR);
70-
ui->cursorTheme->addItems(cursorThemes);
71-
ui->cursorTheme->setCurrentIndex(cursorThemes.indexOf(getStr("XCURSOR_THEME")));
72-
73-
/* Cursor Size */
74-
ui->cursorSize->setValue(getInt("XCURSOR_SIZE"));
75-
76-
/* Natural Scroll */
77-
ui->naturalScroll->addItem("no");
78-
ui->naturalScroll->addItem("yes");
79-
ui->naturalScroll->setCurrentIndex(getBool("/labwc_config/libinput/device/naturalScroll"));
65+
ui->pageMouse->activate();
8066

8167
/* # LANGUAGE */
8268

@@ -91,14 +77,7 @@ void MainDialog::onApply()
9177
{
9278
ui->pageAppearance->onApply();
9379
ui->pageBehaviour->onApply();
94-
95-
/* ~/.config/labwc/rc.xml */
96-
setBoolfromString("/labwc_config/libinput/device/naturalScroll", TEXT(ui->naturalScroll));
97-
xml_save();
98-
99-
/* ~/.config/labwc/environment */
100-
environmentSet("XCURSOR_THEME", TEXT(ui->cursorTheme));
101-
environmentSetInt("XCURSOR_SIZE", ui->cursorSize->value());
80+
ui->pageMouse->onApply();
10281

10382
/*
10483
* We include variants in XKB_DEFAULT_LAYOUT, for example "latam(deadtilde),ru(phonetic),gr",
@@ -114,6 +93,8 @@ void MainDialog::onApply()
11493
std::string config_home = std::getenv("HOME") + std::string("/.config/labwc");
11594
std::string config_dir = std::getenv("LABWC_CONFIG_DIR") ?: config_home;
11695
std::string environment_file = config_dir + "/environment";
96+
97+
xml_save();
11798
environmentSave(environment_file);
11899

119100
/* reconfigure labwc */

src/maindialog.ui

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -90,52 +90,7 @@
9090
<widget class="QStackedWidget" name="stack">
9191
<widget class="Appearance" name="pageAppearance"/>
9292
<widget class="Behaviour" name="pageBehaviour"/>
93-
<widget class="QWidget" name="page2">
94-
<layout class="QFormLayout" name="layPage2">
95-
<property name="leftMargin">
96-
<number>6</number>
97-
</property>
98-
<property name="topMargin">
99-
<number>6</number>
100-
</property>
101-
<property name="rightMargin">
102-
<number>6</number>
103-
</property>
104-
<property name="bottomMargin">
105-
<number>6</number>
106-
</property>
107-
<item row="0" column="0">
108-
<widget class="QLabel" name="label_3">
109-
<property name="text">
110-
<string>Cursor Theme</string>
111-
</property>
112-
</widget>
113-
</item>
114-
<item row="0" column="1">
115-
<widget class="QComboBox" name="cursorTheme"/>
116-
</item>
117-
<item row="1" column="0">
118-
<widget class="QLabel" name="label_4">
119-
<property name="text">
120-
<string>Cursor Size</string>
121-
</property>
122-
</widget>
123-
</item>
124-
<item row="1" column="1">
125-
<widget class="QSpinBox" name="cursorSize"/>
126-
</item>
127-
<item row="2" column="0">
128-
<widget class="QLabel" name="label_5">
129-
<property name="text">
130-
<string>Natural Scroll</string>
131-
</property>
132-
</widget>
133-
</item>
134-
<item row="2" column="1">
135-
<widget class="QComboBox" name="naturalScroll"/>
136-
</item>
137-
</layout>
138-
</widget>
93+
<widget class="Mouse" name="pageMouse"/>
13994
<widget class="QWidget" name="page3">
14095
<layout class="QFormLayout" name="layPage3">
14196
<property name="leftMargin">

src/mouse.cpp

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#include "mouse.h"
2+
#include "environment.h"
3+
#include "find-themes.h"
4+
#include "macros.h"
5+
#include "settings.h"
6+
#include "./ui_mouse.h"
7+
8+
Mouse::Mouse(QWidget *parent) : QWidget(parent), ui(new Ui::pageMouse)
9+
{
10+
ui->setupUi(this);
11+
}
12+
13+
Mouse::~Mouse()
14+
{
15+
delete ui;
16+
}
17+
18+
void Mouse::activate()
19+
{
20+
/* Cursor Theme */
21+
QStringList cursorThemes = findIconThemes(LAB_ICON_THEME_TYPE_CURSOR);
22+
ui->cursorTheme->addItems(cursorThemes);
23+
ui->cursorTheme->setCurrentIndex(cursorThemes.indexOf(getStr("XCURSOR_THEME")));
24+
25+
/* Cursor Size */
26+
ui->cursorSize->setValue(getInt("XCURSOR_SIZE"));
27+
28+
/* Natural Scroll */
29+
ui->naturalScroll->addItem("no");
30+
ui->naturalScroll->addItem("yes");
31+
ui->naturalScroll->setCurrentIndex(getBool("/labwc_config/libinput/device/naturalScroll"));
32+
}
33+
34+
void Mouse::onApply()
35+
{
36+
/* ~/.config/labwc/rc.xml */
37+
setBoolfromString("/labwc_config/libinput/device/naturalScroll", TEXT(ui->naturalScroll));
38+
39+
/* ~/.config/labwc/environment */
40+
environmentSet("XCURSOR_THEME", TEXT(ui->cursorTheme));
41+
environmentSetInt("XCURSOR_SIZE", ui->cursorSize->value());
42+
}

src/mouse.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#ifndef MOUSE_H
2+
#define MOUSE_H
3+
#include <QWidget>
4+
5+
QT_BEGIN_NAMESPACE
6+
namespace Ui {
7+
class pageMouse;
8+
}
9+
QT_END_NAMESPACE
10+
11+
class Mouse : public QWidget
12+
{
13+
Q_OBJECT
14+
15+
public:
16+
Mouse(QWidget *parent = nullptr);
17+
~Mouse();
18+
19+
void activate();
20+
void onApply();
21+
22+
private:
23+
Ui::pageMouse *ui;
24+
};
25+
#endif // MOUSE_H

src/mouse.ui

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>pageMouse</class>
4+
<widget class="QWidget" name="pageMouse">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>251</width>
10+
<height>153</height>
11+
</rect>
12+
</property>
13+
<layout class="QFormLayout" name="layPage2">
14+
<property name="leftMargin">
15+
<number>6</number>
16+
</property>
17+
<property name="topMargin">
18+
<number>6</number>
19+
</property>
20+
<property name="rightMargin">
21+
<number>6</number>
22+
</property>
23+
<property name="bottomMargin">
24+
<number>6</number>
25+
</property>
26+
<item row="0" column="0">
27+
<widget class="QLabel" name="label_3">
28+
<property name="text">
29+
<string>Cursor Theme</string>
30+
</property>
31+
</widget>
32+
</item>
33+
<item row="0" column="1">
34+
<widget class="QComboBox" name="cursorTheme"/>
35+
</item>
36+
<item row="1" column="0">
37+
<widget class="QLabel" name="label_4">
38+
<property name="text">
39+
<string>Cursor Size</string>
40+
</property>
41+
</widget>
42+
</item>
43+
<item row="1" column="1">
44+
<widget class="QSpinBox" name="cursorSize"/>
45+
</item>
46+
<item row="2" column="0">
47+
<widget class="QLabel" name="label_5">
48+
<property name="text">
49+
<string>Natural Scroll</string>
50+
</property>
51+
</widget>
52+
</item>
53+
<item row="2" column="1">
54+
<widget class="QComboBox" name="naturalScroll"/>
55+
</item>
56+
</layout>
57+
</widget>
58+
<resources/>
59+
<connections/>
60+
</ui>

0 commit comments

Comments
 (0)