diff options
author | kh1 <karsten.heimrich@digia.com> | 2014-04-10 13:02:15 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@digia.com> | 2014-04-24 15:37:15 +0200 |
commit | b3112e61685eff103de9b33b38dff1e4b7b802ec (patch) | |
tree | b874a9cf413fd94eb2438196e23ee6e30f7c6f0b /src/libs/installer/packagemanagercoredata.cpp | |
parent | e99fe7f986f29123230831ef586446654f479aa9 (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.cpp | 21 |
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); |