diff options
Diffstat (limited to 'src/libs/installer/packagemanagercoredata.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercoredata.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/libs/installer/packagemanagercoredata.cpp b/src/libs/installer/packagemanagercoredata.cpp index 567f97785..1113908bd 100644 --- a/src/libs/installer/packagemanagercoredata.cpp +++ b/src/libs/installer/packagemanagercoredata.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -34,7 +34,9 @@ #include <QDesktopServices> #include <QDir> -#include <QRegExp> +#include <QRegularExpression> +#include <QSettings> +#include <QStandardPaths> #ifdef Q_OS_WIN # include <windows.h> @@ -76,7 +78,7 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash<QString, QString> &va // fill the variables defined in the settings addNewVariable(QLatin1String("ProductName"), m_settings.applicationName()); - addNewVariable(QLatin1String("ProductVersion"), m_settings.version()); + addNewVariable(QLatin1String("ProductVersion"), replaceVariables(m_settings.version())); addNewVariable(scTitle, replaceVariables(m_settings.title())); addNewVariable(scPublisher, m_settings.publisher()); addNewVariable(QLatin1String("Url"), m_settings.url()); @@ -94,7 +96,7 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash<QString, QString> &va if (isInstaller) { addNewVariable(scTargetDir, replaceVariables(m_settings.targetDir())); addNewVariable(scTargetConfigurationFile, m_settings.configurationFileName()); - addNewVariable(scStartMenuDir, m_settings.startMenuDir()); + addNewVariable(scStartMenuDir, replaceVariables(m_settings.startMenuDir())); } else { #ifdef Q_OS_MACOS addNewVariable(scTargetDir, QFileInfo(QCoreApplication::applicationDirPath() + QLatin1String("/../../..")).absoluteFilePath()); @@ -145,7 +147,7 @@ void PackageManagerCoreData::addDynamicPredefinedVariables() QString dirX64 = dir; #ifdef Q_OS_WIN QSettingsWrapper current(QLatin1String("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion") - , QSettingsWrapper::NativeFormat); + , QSettings::NativeFormat); BOOL onWow64Or64bit = TRUE; #ifndef Q_OS_WIN64 IsWow64Process(GetCurrentProcess(), &onWow64Or64bit); @@ -167,9 +169,9 @@ void PackageManagerCoreData::addDynamicPredefinedVariables() #ifdef Q_OS_WIN QSettingsWrapper user(QLatin1String("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\" - "CurrentVersion\\Explorer\\User Shell Folders"), QSettingsWrapper::NativeFormat); + "CurrentVersion\\Explorer\\User Shell Folders"), QSettings::NativeFormat); QSettingsWrapper system(QLatin1String("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\" - "CurrentVersion\\Explorer\\Shell Folders"), QSettingsWrapper::NativeFormat); + "CurrentVersion\\Explorer\\Shell Folders"), QSettings::NativeFormat); const QString programs = user.value(QLatin1String("Programs"), QString()).toString(); const QString allPrograms = system.value(QLatin1String("Common Programs"), QString()) @@ -232,7 +234,7 @@ bool PackageManagerCoreData::setValue(const QString &key, const QString &normali return true; } -QVariant PackageManagerCoreData::value(const QString &key, const QVariant &_default) const +QVariant PackageManagerCoreData::value(const QString &key, const QVariant &_default, const QSettings::Format &format) const { if (key == scTargetDir) { QString dir = m_variables.value(key); @@ -249,13 +251,15 @@ QVariant PackageManagerCoreData::value(const QString &key, const QVariant &_defa #ifdef Q_OS_WIN if (!m_variables.contains(key)) { - static const QRegExp regex(QLatin1String("\\\\|/")); + static const QRegularExpression regex(QLatin1String("\\\\|/")); const QString filename = key.section(regex, 0, -2); const QString regKey = key.section(regex, -1); - const QSettingsWrapper registry(filename, QSettingsWrapper::NativeFormat); + const QSettingsWrapper registry(filename, format); if (!filename.isEmpty() && !regKey.isEmpty() && registry.contains(regKey)) return registry.value(regKey).toString(); } +#else + Q_UNUSED(format) #endif if (m_variables.contains(key)) @@ -292,7 +296,7 @@ QString PackageManagerCoreData::replaceVariables(const QString &str) const QByteArray PackageManagerCoreData::replaceVariables(const QByteArray &ba) const { - static const QChar at = QLatin1Char('@'); + static const char at = '@'; QByteArray res; int pos = 0; while (true) { |