summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercoredata.cpp
diff options
context:
space:
mode:
authorTakayuki ORITO <iori.ayane@gmail.com>2015-08-06 21:24:49 +0900
committerKatja Marttila <katja.marttila@theqtcompany.com>2016-05-03 07:57:25 +0000
commitb6967847607f3b80f72cf0c951c91ceaaad32bd5 (patch)
tree92aa0af6020df3f86f8c214c55d5f03df325a7cc /src/libs/installer/packagemanagercoredata.cpp
parent81776586ed1f52fc58476c27bb14a850453213c2 (diff)
Add the Predefined Variables in Component Scripting.
Add variables - ApplicationsDirX86 - ApplicationsDirX64 Change that the application directory can be selected on Windows, don't depend on the architecture(32bit or 64bit) of QtIFW. For example: When on Windows(64bit version). - QtIFW(32bit version) - ApplicationsDir -> C:\Program Files (x86) - ApplicationsDirX86 -> C:\Program Files (x86) - ApplicationsDirX64 -> C:\Program Files - QtIFW(64bit version) - ApplicationsDir -> C:\Program Files - ApplicationsDirX86 -> C:\Program Files (x86) - ApplicationsDirX64 -> C:\Program Files Change-Id: Idbc41d6f1ba9d7b0b9a9ff5590d05077662345cb Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Niels Weber <niels.weber@qt.io> Reviewed-by: Katja Marttila <katja.marttila@theqtcompany.com>
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);