Skip to content

Commit aa6729e

Browse files
committed
Respect XDG base dirs & use QStandardPaths to determine .config/ and
.cache/
1 parent d85332f commit aa6729e

File tree

2 files changed

+27
-6
lines changed

2 files changed

+27
-6
lines changed

src/config/AppConfig.cpp

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include "ConfigIO.h"
44
#include "utils/Common.h"
55

6+
#include <QStandardPaths>
7+
68
#define ENCLOSE_QUOTES(x) "\"" + x + "\""
79

810
#define DEFINE_KEY(name, defaultValue) \
@@ -85,28 +87,39 @@ bool AppConfig::isAppBlocked(const QString &name) const
8587

8688
QString AppConfig::getDspConfPath()
8789
{
88-
return QString("%1/.config/jamesdsp/audio.conf").arg(QDir::homePath());
90+
return getPath("audio.conf");
8991
}
9092

9193
QString AppConfig::getPath(QString subdir)
9294
{
93-
return QString("%1/.config/jamesdsp/%2").arg(QDir::homePath()).arg(subdir);
95+
QString path = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
96+
if(path.isEmpty())
97+
{
98+
path = QString("%1/.config/").arg(QDir::homePath());
99+
}
100+
101+
return QString("%1/jamesdsp/%2").arg(path).arg(subdir);
94102
}
95103

96104
QString AppConfig::getCachePath(QString subdir)
97105
{
98-
return QString("%1/.cache/jamesdsp/%2").arg(QDir::homePath()).arg(subdir);
106+
QString path = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation);
107+
if(path.isEmpty())
108+
{
109+
path = QString("%1/.cache/").arg(QDir::homePath());
110+
}
111+
return QString("%1/jamesdsp/%2").arg(path).arg(subdir);
99112
}
100113

101114
void AppConfig::save()
102115
{
103-
auto file = QString("%1/.config/jamesdsp/application.conf").arg(QDir::homePath());
116+
auto file = getPath("application.conf");
104117
ConfigIO::writeFile(file, _appconf->getConfigMap());
105118
}
106119

107120
void AppConfig::load()
108121
{
109-
auto map = ConfigIO::readFile(QString("%1/.config/jamesdsp/application.conf").arg(QDir::homePath()));
122+
auto map = ConfigIO::readFile(getPath("application.conf"));
110123
_appconf->setConfigMap(map);
111124

112125
for(const auto& key : map.keys())

src/utils/AutoStartManager.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
#include "AutoStartManager.h"
2+
#include "config/AppConfig.h"
23
#include "config/ConfigContainer.h"
34
#include "config/ConfigIO.h"
45

56
#include <QDir>
67
#include <QFile>
8+
#include <QStandardPaths>
79

810
AutostartManager::AutostartManager()
911
{}
@@ -49,5 +51,11 @@ bool AutostartManager::inspectDesktopFile(const QString &path,
4951

5052
QString AutostartManager::getAutostartPath(const QString &filename)
5153
{
52-
return QDir::homePath() + "/.config/autostart/" + filename;
54+
QString path = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
55+
if(path.isEmpty())
56+
{
57+
path = QString("%1/.config/").arg(QDir::homePath());
58+
}
59+
60+
return QString("%1/autostart/%2").arg(path).arg(filename);
5361
}

0 commit comments

Comments
 (0)