diff options
author | kh1 <karsten.heimrich@nokia.com> | 2012-03-27 18:05:12 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2012-03-27 18:06:45 +0200 |
commit | e0ffbeceebfbcc7e38df04be636b8529a4342d09 (patch) | |
tree | 1b3a8aaf4093e72204d9c23a5ec279eb4ae5d82c /src | |
parent | bc6092a49b671e048ac008d5e895ff66c1b461ea (diff) |
Fallback to read the environment from registry as well.
Change-Id: Id3666ca179b7033a958fc7e0681d6ee7b2024788
Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 77f9975a1..d30d0087a 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -48,6 +48,7 @@ #include "settings.h" #include "utils.h" +#include <QtCore/QSettings> #include <QtCore/QTemporaryFile> #include <QtGui/QDesktopServices> @@ -1117,10 +1118,19 @@ QString PackageManagerCore::environmentVariable(const QString &name) const const LPCWSTR n = (LPCWSTR) name.utf16(); LPTSTR buff = (LPTSTR) malloc(4096 * sizeof(TCHAR)); DWORD getenvret = GetEnvironmentVariable(n, buff, 4096); - const QString actualValue = getenvret != 0 - ? QString::fromUtf16((const unsigned short *) buff) : QString(); + QString value = getenvret != 0 ? QString::fromUtf16((const unsigned short *) buff) : QString(); free(buff); - return actualValue; + + if (value.isEmpty()) { + static QLatin1String userEnvironmentRegistryPath("HKEY_CURRENT_USER\\Environment"); + value = QSettings(userEnvironmentRegistryPath, QSettings::NativeFormat).value(name).toString(); + if (value.isEmpty()) { + static QLatin1String systemEnvironmentRegistryPath("HKEY_LOCAL_MACHINE\\SYSTEM\\" + "CurrentControlSet\\Control\\Session Manager\\Environment"); + value = QSettings(systemEnvironmentRegistryPath, QSettings::NativeFormat).value(name).toString(); + } + } + return value; #else const char *pPath = name.isEmpty() ? 0 : getenv(name.toLatin1()); return pPath ? QLatin1String(pPath) : QString(); |