Skip to content

Commit ccb6dba

Browse files
committed
Enhance LXQt Config Touchpad autostart
The previous implementation didn't allow internationalization and localization.
1 parent f657e17 commit ccb6dba

File tree

4 files changed

+41
-5
lines changed

4 files changed

+41
-5
lines changed

lxqt-config-input/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,12 @@ lxqt_translate_ts(QM_FILES
8585
)
8686

8787
lxqt_app_translation_loader(QM_LOADER ${PROJECT_NAME})
88-
lxqt_translate_desktop(DESKTOP_FILES SOURCES ${PROJECT_NAME}.desktop.in USE_YAML)
88+
lxqt_translate_desktop(DESKTOP_FILES
89+
SOURCES
90+
${PROJECT_NAME}.desktop.in
91+
resources/lxqt-config-touchpad-autostart.desktop.in
92+
USE_YAML
93+
)
8994

9095
#************************************************
9196

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[Desktop Entry]
2+
Exec=lxqt-config-input --load-touchpad
3+
OnlyShowIn=LXQt;
4+
Type=Application
5+
Version=1.0
6+
7+
#TRANSLATIONS_DIR=translations

lxqt-config-input/touchpadconfig.cpp

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,19 @@
2020
#include "touchpaddevice.h"
2121

2222
#include <cmath>
23+
24+
#include <QDebug>
25+
#include <QFile>
26+
#include <QString>
2327
#include <QUrl>
28+
29+
#include <XdgDirs>
30+
2431
#include <LXQt/AutostartEntry>
2532
#include <LXQt/Settings>
2633

34+
using namespace Qt::Literals::StringLiterals;
35+
2736
TouchpadConfig::TouchpadConfig(LXQt::Settings* _settings, QWidget* parent):
2837
QWidget(parent),
2938
settings(_settings)
@@ -136,10 +145,23 @@ void TouchpadConfig::accept()
136145
device.saveSettings(settings);
137146
}
138147

139-
LXQt::AutostartEntry autoStart(QStringLiteral("lxqt-config-touchpad-autostart.desktop"));
140-
XdgDesktopFile desktopFile(XdgDesktopFile::ApplicationType, QStringLiteral("lxqt-config-touchpad-autostart"), QStringLiteral("lxqt-config-input --load-touchpad"));
141-
desktopFile.setValue(QStringLiteral("OnlyShowIn"), QStringLiteral("LXQt"));
142-
desktopFile.setValue(QStringLiteral("Comment"), QStringLiteral("Autostart touchpad settings for lxqt-config-input"));
148+
LXQt::AutostartEntry autoStart;
149+
XdgDesktopFile desktopFile;
150+
151+
const QStringList dirs = XdgDirs::dataDirs();
152+
auto it = dirs.cbegin();
153+
for ( ;it != dirs.cend(); ++it) {
154+
const QString fn = *it + "/applications/lxqt-config-touchpad-autostart.desktop"_L1;
155+
if (QFile::exists(fn))
156+
if (desktopFile.load(fn)) {
157+
autoStart.setFile(desktopFile);
158+
autoStart.commit();
159+
break;
160+
}
161+
}
162+
if (it == dirs.cend()) {
163+
qWarning() << " TouchpadConfig::accept(): LXQt Config Touchpad autostart file not found";
164+
}
143165
autoStart.setFile(desktopFile);
144166
autoStart.commit();
145167
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Desktop Entry/Name: LXQt Touchpad Settings Loader
2+
Desktop Entry/Comment: Autostart touchpad settings for lxqt-config-input

0 commit comments

Comments
 (0)