diff options
author | kh1 <karsten.heimrich@digia.com> | 2013-11-06 13:51:10 +0100 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@digia.com> | 2013-11-06 16:02:51 +0100 |
commit | f9615e83f1791b37ec714eb1ba07a95a736b14cf (patch) | |
tree | 91350cba5b22d60a7f1f1fad69698937b52e6d86 /src | |
parent | fd26174d2cf0d8b0887007075a6be2933a1f595a (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.cpp | 20 |
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) |