summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercoredata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/installer/packagemanagercoredata.cpp')
-rw-r--r--src/libs/installer/packagemanagercoredata.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercoredata.cpp b/src/libs/installer/packagemanagercoredata.cpp
index 3444e0247..84944ee3d 100644
--- a/src/libs/installer/packagemanagercoredata.cpp
+++ b/src/libs/installer/packagemanagercoredata.cpp
@@ -119,6 +119,30 @@ void PackageManagerCoreData::setDynamicPredefinedVariables()
#endif
m_variables.insert(QLatin1String("ApplicationsDir"), dir);
+ QString dirX86 = dir;
+ QString dirX64 = dir;
+#ifdef Q_OS_WIN
+ QSettingsWrapper current(QLatin1String("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion")
+ , QSettingsWrapper::NativeFormat);
+ BOOL onWow64Or64bit = TRUE;
+#ifndef Q_OS_WIN64
+ IsWow64Process(GetCurrentProcess(), &onWow64Or64bit);
+#endif
+ QString programfilesX86;
+ QString programfilesX64;
+ if (onWow64Or64bit == TRUE) {
+ programfilesX86 = current.value(QLatin1String("ProgramFilesDir (x86)"), QString()).toString();
+ programfilesX64 = current.value(QLatin1String("ProgramW6432Dir"), QString()).toString();
+ } else {
+ programfilesX86 = current.value(QLatin1String("ProgramFilesDir"), QString()).toString();
+ programfilesX64 = programfilesX86;
+ }
+ dirX86 = replaceWindowsEnvironmentVariables(programfilesX86);
+ dirX64 = replaceWindowsEnvironmentVariables(programfilesX64);
+#endif
+ m_variables.insert(QLatin1String("ApplicationsDirX86"), dirX86);
+ m_variables.insert(QLatin1String("ApplicationsDirX64"), dirX64);
+
#ifdef Q_OS_WIN
QSettingsWrapper user(QLatin1String("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\"
"CurrentVersion\\Explorer\\User Shell Folders"), QSettingsWrapper::NativeFormat);