diff --git a/lxqt-config-input/CMakeLists.txt b/lxqt-config-input/CMakeLists.txt index c3a89d1db..a1826597d 100644 --- a/lxqt-config-input/CMakeLists.txt +++ b/lxqt-config-input/CMakeLists.txt @@ -85,7 +85,12 @@ lxqt_translate_ts(QM_FILES ) lxqt_app_translation_loader(QM_LOADER ${PROJECT_NAME}) -lxqt_translate_desktop(DESKTOP_FILES SOURCES ${PROJECT_NAME}.desktop.in USE_YAML) +lxqt_translate_desktop(DESKTOP_FILES + SOURCES + ${PROJECT_NAME}.desktop.in + resources/lxqt-config-touchpad-autostart.desktop.in + USE_YAML +) #************************************************ diff --git a/lxqt-config-input/resources/lxqt-config-touchpad-autostart.desktop.in b/lxqt-config-input/resources/lxqt-config-touchpad-autostart.desktop.in new file mode 100644 index 000000000..6a41e26c1 --- /dev/null +++ b/lxqt-config-input/resources/lxqt-config-touchpad-autostart.desktop.in @@ -0,0 +1,7 @@ +[Desktop Entry] +Exec=lxqt-config-input --load-touchpad +OnlyShowIn=LXQt; +Type=Application +Version=1.0 + +#TRANSLATIONS_DIR=translations diff --git a/lxqt-config-input/touchpadconfig.cpp b/lxqt-config-input/touchpadconfig.cpp index fcb88278f..89360a843 100644 --- a/lxqt-config-input/touchpadconfig.cpp +++ b/lxqt-config-input/touchpadconfig.cpp @@ -20,10 +20,19 @@ #include "touchpaddevice.h" #include + +#include +#include +#include #include + +#include + #include #include +using namespace Qt::Literals::StringLiterals; + TouchpadConfig::TouchpadConfig(LXQt::Settings* _settings, QWidget* parent): QWidget(parent), settings(_settings) @@ -136,10 +145,23 @@ void TouchpadConfig::accept() device.saveSettings(settings); } - LXQt::AutostartEntry autoStart(QStringLiteral("lxqt-config-touchpad-autostart.desktop")); - XdgDesktopFile desktopFile(XdgDesktopFile::ApplicationType, QStringLiteral("lxqt-config-touchpad-autostart"), QStringLiteral("lxqt-config-input --load-touchpad")); - desktopFile.setValue(QStringLiteral("OnlyShowIn"), QStringLiteral("LXQt")); - desktopFile.setValue(QStringLiteral("Comment"), QStringLiteral("Autostart touchpad settings for lxqt-config-input")); + LXQt::AutostartEntry autoStart; + XdgDesktopFile desktopFile; + + const QStringList dirs = XdgDirs::dataDirs(); + auto it = dirs.cbegin(); + for ( ;it != dirs.cend(); ++it) { + const QString fn = *it + "/applications/lxqt-config-touchpad-autostart.desktop"_L1; + if (QFile::exists(fn)) + if (desktopFile.load(fn)) { + autoStart.setFile(desktopFile); + autoStart.commit(); + break; + } + } + if (it == dirs.cend()) { + qWarning() << " TouchpadConfig::accept(): LXQt Config Touchpad autostart file not found"; + } autoStart.setFile(desktopFile); autoStart.commit(); } diff --git a/lxqt-config-input/translations/lxqt-config-touchpad-autostart.desktop.yaml b/lxqt-config-input/translations/lxqt-config-touchpad-autostart.desktop.yaml new file mode 100644 index 000000000..f8f7cff78 --- /dev/null +++ b/lxqt-config-input/translations/lxqt-config-touchpad-autostart.desktop.yaml @@ -0,0 +1,2 @@ +Desktop Entry/Name: LXQt Touchpad Settings Loader +Desktop Entry/Comment: Autostart touchpad settings for lxqt-config-input diff --git a/lxqt-config-monitor/CMakeLists.txt b/lxqt-config-monitor/CMakeLists.txt index 57447bebc..70b8c0846 100644 --- a/lxqt-config-monitor/CMakeLists.txt +++ b/lxqt-config-monitor/CMakeLists.txt @@ -59,7 +59,12 @@ lxqt_translate_ts(QM_FILES ) lxqt_app_translation_loader(QM_LOADER ${PROJECT_NAME}) -lxqt_translate_desktop(DESKTOP_FILES SOURCES "resources/${PROJECT_NAME}.desktop.in" USE_YAML) +lxqt_translate_desktop(DESKTOP_FILES + SOURCES + "resources/${PROJECT_NAME}.desktop.in" + "resources/lxqt-config-monitor-autostart.desktop.in" + USE_YAML +) #************************************************ diff --git a/lxqt-config-monitor/monitorsettingsdialog.cpp b/lxqt-config-monitor/monitorsettingsdialog.cpp index 20b3943d4..b1db03d8c 100644 --- a/lxqt-config-monitor/monitorsettingsdialog.cpp +++ b/lxqt-config-monitor/monitorsettingsdialog.cpp @@ -39,8 +39,14 @@ #include #include #include +#include +#include #include +#include + +using namespace Qt::Literals::StringLiterals; + MonitorSettingsDialog::MonitorSettingsDialog() : QDialog(nullptr, Qt::WindowFlags()) { @@ -219,13 +225,22 @@ void MonitorSettingsDialog::saveConfiguration(KScreen::ConfigPtr config) qDebug() << "[ MonitorSettingsDialog::saveConfiguration] # monitors Write:" << monitors.size(); settings.endGroup(); - LXQt::AutostartEntry autoStart(QStringLiteral("lxqt-config-monitor-autostart.desktop")); - XdgDesktopFile desktopFile(XdgDesktopFile::ApplicationType, QStringLiteral("lxqt-config-monitor-autostart"), QStringLiteral("lxqt-config-monitor -l")); - //desktopFile.setValue("OnlyShowIn", QString(qgetenv("XDG_CURRENT_DESKTOP"))); - desktopFile.setValue(QStringLiteral("OnlyShowIn"), QStringLiteral("LXQt")); - desktopFile.setValue(QStringLiteral("Comment"), QStringLiteral("Autostart monitor settings for LXQt-config-monitor")); - autoStart.setFile(desktopFile); - autoStart.commit(); + LXQt::AutostartEntry autoStart; + XdgDesktopFile desktopFile; + const QStringList dirs = XdgDirs::dataDirs(); + auto it = dirs.cbegin(); + for ( ;it != dirs.cend(); ++it) { + const QString fn = *it + "/applications/lxqt-config-monitor-autostart.desktop"_L1; + if (QFile::exists(fn)) + if (desktopFile.load(fn)) { + autoStart.setFile(desktopFile); + autoStart.commit(); + break; + } + } + if (it == dirs.cend()) { + qWarning() << "[ MonitorSettingsDialog::saveConfiguration] # LXQt Config Monitor autostart file not found"; + } } diff --git a/lxqt-config-monitor/resources/lxqt-config-monitor-autostart.desktop.in b/lxqt-config-monitor/resources/lxqt-config-monitor-autostart.desktop.in new file mode 100644 index 000000000..29731eeab --- /dev/null +++ b/lxqt-config-monitor/resources/lxqt-config-monitor-autostart.desktop.in @@ -0,0 +1,7 @@ +[Desktop Entry] +Exec=lxqt-config-monitor -l +OnlyShowIn=LXQt; +Type=Application +Version=1.0 + +#TRANSLATIONS_DIR=translations diff --git a/lxqt-config-monitor/translations/lxqt-config-monitor-autostart.desktop.yaml b/lxqt-config-monitor/translations/lxqt-config-monitor-autostart.desktop.yaml new file mode 100644 index 000000000..932397f86 --- /dev/null +++ b/lxqt-config-monitor/translations/lxqt-config-monitor-autostart.desktop.yaml @@ -0,0 +1,2 @@ +Desktop Entry/Name: LXQt Monitor Settings Loader +Desktop Entry/Comment: Autostart monitor settings for lxqt-config-monitor