summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2013-11-06 13:51:10 +0100
committerKarsten Heimrich <karsten.heimrich@digia.com>2013-11-06 16:02:51 +0100
commitf9615e83f1791b37ec714eb1ba07a95a736b14cf (patch)
tree91350cba5b22d60a7f1f1fad69698937b52e6d86 /src
parentfd26174d2cf0d8b0887007075a6be2933a1f595a (diff)
Introduce ApplicationsDir variable.
Task-number: QTIFW-258 Change-Id: Ie08884c01c62e40104dce0dba8ef85c5194d7207 Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/packagemanagercoredata.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercoredata.cpp b/src/libs/installer/packagemanagercoredata.cpp
index 65123efba..8b3ce96d3 100644
--- a/src/libs/installer/packagemanagercoredata.cpp
+++ b/src/libs/installer/packagemanagercoredata.cpp
@@ -44,8 +44,14 @@
#include "fileutils.h"
#include "qsettingswrapper.h"
+#include <QDesktopServices>
#include <QDir>
+#ifdef Q_OS_WIN
+# include <windows.h>
+# include <shlobj.h>
+#endif
+
namespace QInstaller
{
@@ -61,6 +67,20 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash<QString, QString> &va
m_variables.insert(QLatin1String("HomeDir"), QDir::homePath());
m_variables.insert(scTargetConfigurationFile, QLatin1String("components.xml"));
+ QString dir = QLatin1String("/opt");
+#ifdef Q_OS_WIN
+ TCHAR buffer[MAX_PATH + 1] = { 0 };
+ SHGetFolderPath(0, CSIDL_PROGRAM_FILES, 0, 0, buffer);
+ dir = QString::fromWCharArray(buffer);
+#elif Q_OS_MAC
+# if QT_VERSION < 0x050000
+ dir = QDesktopServices::storageLocation(QDesktopServices::ApplicationsLocation);
+# else
+ dir = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation).value(0);
+# endif
+#endif
+ m_variables.insert(QLatin1String("ApplicationsDir"), dir);
+
#ifdef Q_OS_WIN
m_variables.insert(QLatin1String("os"), QLatin1String("win"));
#elif defined(Q_OS_MAC)