diff options
author | Takayuki ORITO <iori.ayane@gmail.com> | 2015-08-06 21:24:49 +0900 |
---|---|---|
committer | Katja Marttila <katja.marttila@theqtcompany.com> | 2016-05-03 07:57:25 +0000 |
commit | b6967847607f3b80f72cf0c951c91ceaaad32bd5 (patch) | |
tree | 92aa0af6020df3f86f8c214c55d5f03df325a7cc /src/libs/installer/packagemanagercoredata.cpp | |
parent | 81776586ed1f52fc58476c27bb14a850453213c2 (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.cpp | 24 |
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); |