summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/createdesktopentryoperation.cpp7
-rw-r--r--src/libs/installer/installiconsoperation.cpp7
2 files changed, 12 insertions, 2 deletions
diff --git a/src/libs/installer/createdesktopentryoperation.cpp b/src/libs/installer/createdesktopentryoperation.cpp
index 5907e2f21..1a56c193c 100644
--- a/src/libs/installer/createdesktopentryoperation.cpp
+++ b/src/libs/installer/createdesktopentryoperation.cpp
@@ -30,6 +30,8 @@
#include "errors.h"
#include "fileutils.h"
#include "globals.h"
+#include "adminauthorization.h"
+#include "remoteclient.h"
#include <QDir>
#include <QFile>
@@ -60,7 +62,10 @@ QString CreateDesktopEntryOperation::absoluteFileName()
.split(QLatin1Char(':'),
QString::SkipEmptyParts);
- XDG_DATA_HOME.push_back(QDir::home().absoluteFilePath(QLatin1String(".local/share"))); // default path
+ XDG_DATA_HOME.push_back(QDir::home().absoluteFilePath(QLatin1String(".local/share"))); // default user-specific path
+
+ if (AdminAuthorization::hasAdminRights() || RemoteClient::instance().isActive())
+ XDG_DATA_HOME.push_front(QLatin1String("/usr/local/share")); // default system-wide path
const QStringList directories = XDG_DATA_HOME;
QString directory;
diff --git a/src/libs/installer/installiconsoperation.cpp b/src/libs/installer/installiconsoperation.cpp
index eea83a462..9443b7f71 100644
--- a/src/libs/installer/installiconsoperation.cpp
+++ b/src/libs/installer/installiconsoperation.cpp
@@ -30,6 +30,8 @@
#include "fileutils.h"
#include "packagemanagercore.h"
#include "globals.h"
+#include "adminauthorization.h"
+#include "remoteclient.h"
#include <QDebug>
#include <QDir>
@@ -52,7 +54,10 @@ QString InstallIconsOperation::targetDirectory()
QStringList XDG_DATA_HOME = QString::fromLocal8Bit(qgetenv("XDG_DATA_HOME"))
.split(QLatin1Char(':'),
QString::SkipEmptyParts);
- XDG_DATA_HOME.push_back(QDir::home().absoluteFilePath(QLatin1String(".local/share"))); // default path
+ XDG_DATA_HOME.push_back(QDir::home().absoluteFilePath(QLatin1String(".local/share"))); // default user-specific path
+
+ if (AdminAuthorization::hasAdminRights() || RemoteClient::instance().isActive())
+ XDG_DATA_HOME.push_front(QLatin1String("/usr/local/share")); // default system-wide path
QString directory;
const QStringList& directories = XDG_DATA_HOME;