Skip to content

Commit 043ae24

Browse files
committed
Enhance LXQt Config Touchpad autostart
The previous implementation didn't allow internationalization and localization.
1 parent 81380ab commit 043ae24

File tree

3 files changed

+42
-5
lines changed

3 files changed

+42
-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: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[Desktop Entry]
2+
Name=LXQt Touchpad Settings Loader
3+
Comment=Autostart touchpad settings for lxqt-config-input
4+
Exec=lxqt-config-input --load-touchpad
5+
OnlyShowIn=LXQt;
6+
Type=Application
7+
Version=1.0
8+
9+
#TRANSLATIONS_DIR=translations
10+

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
}

0 commit comments

Comments
 (0)