summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercoredata.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2014-04-10 13:02:15 +0200
committerKai Koehne <kai.koehne@digia.com>2014-04-24 15:37:15 +0200
commitb3112e61685eff103de9b33b38dff1e4b7b802ec (patch)
treeb874a9cf413fd94eb2438196e23ee6e30f7c6f0b /src/libs/installer/packagemanagercoredata.cpp
parente99fe7f986f29123230831ef586446654f479aa9 (diff)
Initialize {All}UserStartMenuDir and DesktopDir earlier.
Task-number: QTIFW-346 Change-Id: I641d6c2eb6b74f674b61ccf335885d4577dfcfe4 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/libs/installer/packagemanagercoredata.cpp')
-rw-r--r--src/libs/installer/packagemanagercoredata.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercoredata.cpp b/src/libs/installer/packagemanagercoredata.cpp
index c6d5d250e..f24a76d87 100644
--- a/src/libs/installer/packagemanagercoredata.cpp
+++ b/src/libs/installer/packagemanagercoredata.cpp
@@ -43,6 +43,7 @@
#include "errors.h"
#include "fileutils.h"
#include "qsettingswrapper.h"
+#include "utils.h"
#include <QDesktopServices>
#include <QDir>
@@ -95,6 +96,26 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash<QString, QString> &va
// TODO: add more platforms as needed...
#endif
+#ifdef Q_OS_WIN
+ QSettingsWrapper user(QLatin1String("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\"
+ "CurrentVersion\\Explorer\\User Shell Folders"), QSettingsWrapper::NativeFormat);
+ QSettingsWrapper system(QLatin1String("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\"
+ "CurrentVersion\\Explorer\\Shell Folders"), QSettingsWrapper::NativeFormat);
+
+ const QString programs = user.value(QLatin1String("Programs"), QString()).toString();
+ const QString allPrograms = system.value(QLatin1String("Common Programs"), QString()).toString();
+
+ QString desktop;
+ if (m_variables.value(QLatin1String("AllUsers")) == scTrue) {
+ desktop = system.value(QLatin1String("Desktop")).toString();
+ } else {
+ desktop = user.value(QLatin1String("Desktop")).toString();
+ }
+ m_variables.insert(QLatin1String("DesktopDir"), replaceWindowsEnvironmentVariables(desktop));
+ m_variables.insert(QLatin1String("UserStartMenuProgramsPath"), replaceWindowsEnvironmentVariables(programs));
+ m_variables.insert(QLatin1String("AllUsersStartMenuProgramsPath"), replaceWindowsEnvironmentVariables(allPrograms));
+#endif
+
try {
m_settings = Settings::fromFileAndPrefix(QLatin1String(":/metadata/installer-config/config.xml"),
QLatin1String(":/metadata/installer-config/"), Settings::RelaxedParseMode);