Session: Load all autostart directories

pull/2/head
cutefishd 5 years ago
parent d98bd7a27c
commit cf5b51364d

@ -1,6 +1,7 @@
#include "processmanager.h" #include "processmanager.h"
#include <QCoreApplication> #include <QCoreApplication>
#include <QStandardPaths>
#include <QFileInfoList> #include <QFileInfoList>
#include <QFileInfo> #include <QFileInfo>
#include <QSettings> #include <QSettings>
@ -115,17 +116,14 @@ void ProcessManager::loadSystemProcess()
void ProcessManager::loadAutoStartProcess() void ProcessManager::loadAutoStartProcess()
{ {
QStringList execList; QStringList execList;
QStringList xdgDesktopList; const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericConfigLocation,
xdgDesktopList << "/etc/xdg/autostart"; QStringLiteral("autostart"),
QStandardPaths::LocateDirectory);
for (const QString &dirName : xdgDesktopList) { for (const QString &dir : dirs) {
QDir dir(dirName); const QDir d(dir);
if (!dir.exists()) const QStringList fileNames = d.entryList(QStringList() << QStringLiteral("*.desktop"));
continue; for (const QString &file : fileNames) {
QSettings desktop(d.absoluteFilePath(file), QSettings::IniFormat);
const QFileInfoList files = dir.entryInfoList(QStringList("*.desktop"), QDir::Files | QDir::Readable);
for (const QFileInfo &fi : files) {
QSettings desktop(fi.filePath(), QSettings::IniFormat);
desktop.setIniCodec("UTF-8"); desktop.setIniCodec("UTF-8");
desktop.beginGroup("Desktop Entry"); desktop.beginGroup("Desktop Entry");

Loading…
Cancel
Save