From b3112e61685eff103de9b33b38dff1e4b7b802ec Mon Sep 17 00:00:00 2001 From: kh1 Date: Thu, 10 Apr 2014 13:02:15 +0200 Subject: Initialize {All}UserStartMenuDir and DesktopDir earlier. Task-number: QTIFW-346 Change-Id: I641d6c2eb6b74f674b61ccf335885d4577dfcfe4 Reviewed-by: Leena Miettinen Reviewed-by: Kai Koehne --- src/libs/installer/packagemanagercoredata.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/libs/installer/packagemanagercoredata.cpp') 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 #include @@ -95,6 +96,26 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash &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); -- cgit v1.2.3