respect XDG_CONFIG_HOME for getting user config dir.

Under linux the XDG Base Directory Specification define different
enviroment variables where to store what.
This commit is contained in:
hefee 2013-12-31 02:10:44 +01:00
parent 8b9a8ebeaf
commit 4e0496f74d

View file

@ -26,17 +26,30 @@ static void setupFavLink_private(const QString &folder) {
} }
} }
// returns the autostart directory the linux way
// and respects the XDG_CONFIG_HOME env variable
// can be replaces for qt5 with QStandardPaths
QString getUserAutostartDir_private()
{
QString config = QLatin1String(qgetenv("XDG_CONFIG_HOME"));
if (config.isEmpty()) {
config = QDir::homePath()+QLatin1String("/.config");
}
config += QLatin1String("/autostart/");
return config;
}
bool hasLaunchOnStartup_private(const QString &appName) bool hasLaunchOnStartup_private(const QString &appName)
{ {
QString userAutoStartPath = QDir::homePath()+QLatin1String("/.config/autostart/"); QString desktopFileLocation = getUserAutostartDir_private()+appName+QLatin1String(".desktop");
QString desktopFileLocation = userAutoStartPath+appName+QLatin1String(".desktop");
return QFile::exists(desktopFileLocation); return QFile::exists(desktopFileLocation);
} }
void setLaunchOnStartup_private(const QString &appName, const QString& guiName, bool enable) void setLaunchOnStartup_private(const QString &appName, const QString& guiName, bool enable)
{ {
QString userAutoStartPath = QDir::homePath()+QLatin1String("/.config/autostart/"); QString userAutoStartPath = getUserAutostartDir_private();
QString desktopFileLocation = userAutoStartPath+appName+QLatin1String(".desktop"); QString desktopFileLocation = userAutoStartPath+appName+QLatin1String(".desktop");
if (enable) { if (enable) {
if (!QDir().exists(userAutoStartPath) && !QDir().mkdir(userAutoStartPath)) { if (!QDir().exists(userAutoStartPath) && !QDir().mkdir(userAutoStartPath)) {