diff options
author | hjk <hjk@qt.io> | 2023-10-06 12:23:37 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2024-01-26 09:20:33 +0000 |
commit | 167cd3378d836e2ab11c8ea5812dc16058816c10 (patch) | |
tree | 5d3a6b1119d2762bb3e6fcd43f05d9aa7224a2f2 | |
parent | e1f7469afb32efa51d665c9211767b214cd93573 (diff) |
Qbs: Use Store instead of QVariantMap in a few places
Change-Id: I0636fad4ca032ec6657f2e35154c2e0ea4d0c9ca
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
8 files changed, 43 insertions, 42 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp index 04f773ac84..34fa905745 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp @@ -62,7 +62,7 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Utils::Id id) setInitializer([this, target](const BuildInfo &info) { const Kit *kit = target->kit(); - QVariantMap configData = info.extraInfo.value<QVariantMap>(); + Store configData = storeFromVariant(info.extraInfo); const QString buildVariant = [](BuildConfiguration::BuildType buildType) -> QString { switch (buildType) { case BuildConfiguration::Release: return Constants::QBS_VARIANT_RELEASE; @@ -73,7 +73,7 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Utils::Id id) } return Constants::QBS_VARIANT_DEBUG; }(info.buildType); - configData.insert(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY), buildVariant); + configData.insert(Constants::QBS_CONFIG_VARIANT_KEY, buildVariant); FilePath buildDir = info.buildDirectory; if (buildDir.isEmpty()) buildDir = defaultBuildDirectory(target->project()->projectFilePath(), @@ -82,7 +82,7 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Utils::Id id) setBuildDirectory(buildDir); // Add the build configuration. - QVariantMap bd = configData; + Store bd = configData; QString configName = bd.take("configName").toString(); if (configName.isEmpty()) { configName = "qtc_" + kit->fileSystemFriendlyName() + '_' @@ -162,7 +162,7 @@ void QbsBuildConfiguration::fromMap(const Store &map) if (configurationName().isEmpty()) { // pre-4.4 backwards compatibility const QString profileName = QbsProfileManager::profileNameForKit(target()->kit()); const QString buildVariant = qbsConfiguration() - .value(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)).toString(); + .value(Constants::QBS_CONFIG_VARIANT_KEY).toString(); configurationName.setValue(profileName + '-' + buildVariant); } } @@ -183,9 +183,9 @@ QbsBuildStep *QbsBuildConfiguration::qbsStep() const return buildSteps()->firstOfType<QbsBuildStep>(); } -QVariantMap QbsBuildConfiguration::qbsConfiguration() const +Store QbsBuildConfiguration::qbsConfiguration() const { - QVariantMap config; + Store config; QbsBuildStep *qbsBs = qbsStep(); if (qbsBs) config = qbsBs->qbsConfiguration(QbsBuildStep::ExpandVariables); @@ -269,7 +269,7 @@ QString QbsBuildConfiguration::equivalentCommandLine(const QbsBuildStepData &ste const QString profileName = QbsProfileManager::profileNameForKit(target()->kit()); const QString buildVariant = qbsConfiguration() - .value(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)).toString(); + .value(Constants::QBS_CONFIG_VARIANT_KEY).toString(); commandLine.addArg("config:" + configurationName()); commandLine.addArg(QString(Constants::QBS_CONFIG_VARIANT_KEY) + ':' + buildVariant); const FilePath installRoot = stepData.installRoot; diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h index 2ea114864f..c7993bfceb 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h +++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h @@ -47,7 +47,7 @@ public: ProjectExplorer::BuildSystem *buildSystem() const final; QbsBuildStep *qbsStep() const; - QVariantMap qbsConfiguration() const; + Utils::Store qbsConfiguration() const; BuildType buildType() const override; diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index cea9b83d14..71cc48aaf8 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -124,7 +124,7 @@ public: private: void updateState(); - void updatePropertyEdit(const QVariantMap &data); + void updatePropertyEdit(const Store &data); void changeUseDefaultInstallDir(bool useDefault); void changeInstallDir(); @@ -172,7 +172,7 @@ QbsBuildStep::QbsBuildStep(BuildStepList *bsl, Id id) : setDisplayName(QbsProjectManager::Tr::tr("Qbs Build")); setSummaryText(QbsProjectManager::Tr::tr("<b>Qbs:</b> %1").arg("build")); - setQbsConfiguration(QVariantMap()); + setQbsConfiguration(Store()); auto qbsBuildConfig = qobject_cast<QbsBuildConfiguration *>(buildConfiguration()); QTC_CHECK(qbsBuildConfig); @@ -273,13 +273,13 @@ QWidget *QbsBuildStep::createConfigWidget() return new QbsBuildStepConfigWidget(this); } -QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) const +Store QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) const { - QVariantMap config = m_qbsConfiguration; + Store config = m_qbsConfiguration; const auto qbsBuildConfig = qbsBuildConfiguration(); config.insert(Constants::QBS_FORCE_PROBES_KEY, forceProbes()); - const auto store = [&config](TriState ts, const QString &key) { + const auto store = [&config](TriState ts, const Key &key) { if (ts == TriState::Enabled) config.insert(key, true); else if (ts == TriState::Disabled) @@ -308,9 +308,9 @@ QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) co return config; } -void QbsBuildStep::setQbsConfiguration(const QVariantMap &config) +void QbsBuildStep::setQbsConfiguration(const Store &config) { - QVariantMap tmp = config; + Store tmp = config; tmp.insert(Constants::QBS_CONFIG_PROFILE_KEY, qbsBuildSystem()->profile()); QString buildVariant = tmp.value(Constants::QBS_CONFIG_VARIANT_KEY).toString(); if (buildVariant.isEmpty()) { @@ -355,13 +355,13 @@ void QbsBuildStep::fromMap(const Store &map) BuildStep::fromMap(map); if (hasError()) return; - setQbsConfiguration(mapEntryFromStoreEntry(map.value(QBS_CONFIG)).toMap()); + setQbsConfiguration(storeFromVariant(map.value(QBS_CONFIG))); } void QbsBuildStep::toMap(Store &map) const { ProjectExplorer::BuildStep::toMap(map); - map.insert(QBS_CONFIG, m_qbsConfiguration); + map.insert(QBS_CONFIG, variantFromStore(m_qbsConfiguration)); } QString QbsBuildStep::buildVariant() const @@ -579,9 +579,9 @@ void QbsBuildStepConfigWidget::updateState() } -void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data) +void QbsBuildStepConfigWidget::updatePropertyEdit(const Store &data) { - QVariantMap editable = data; + Store editable = data; // remove data that is edited with special UIs: editable.remove(Constants::QBS_CONFIG_PROFILE_KEY); @@ -596,8 +596,8 @@ void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data) editable.remove(Constants::QBS_ARCHITECTURES); QStringList propertyList; - for (QVariantMap::const_iterator i = editable.constBegin(); i != editable.constEnd(); ++i) - propertyList.append(i.key() + ':' + i.value().toString()); + for (Store::const_iterator i = editable.constBegin(); i != editable.constEnd(); ++i) + propertyList.append(QString::fromUtf8(i.key().toByteArray()) + ':' + i.value().toString()); propertyEdit->setText(ProcessArgs::joinArgs(propertyList)); } @@ -605,7 +605,7 @@ void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data) void QbsBuildStepConfigWidget::changeUseDefaultInstallDir(bool useDefault) { const GuardLocker locker(m_ignoreChanges); - QVariantMap config = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables); + Store config = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables); installDirChooser->setEnabled(!useDefault); if (useDefault) config.remove(Constants::QBS_INSTALL_ROOT_KEY); @@ -619,29 +619,29 @@ void QbsBuildStepConfigWidget::changeInstallDir() if (!m_qbsStep->hasCustomInstallRoot()) return; const GuardLocker locker(m_ignoreChanges); - QVariantMap config = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables); + Store config = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables); config.insert(Constants::QBS_INSTALL_ROOT_KEY, installDirChooser->rawFilePath().toString()); m_qbsStep->setQbsConfiguration(config); } void QbsBuildStepConfigWidget::applyCachedProperties() { - QVariantMap data; - const QVariantMap tmp = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables); + Store data; + const Store tmp = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables); // Insert values set up with special UIs: data.insert(Constants::QBS_CONFIG_PROFILE_KEY, tmp.value(Constants::QBS_CONFIG_PROFILE_KEY)); data.insert(Constants::QBS_CONFIG_VARIANT_KEY, tmp.value(Constants::QBS_CONFIG_VARIANT_KEY)); - QStringList additionalSpecialKeys({Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY, - Constants::QBS_CONFIG_QUICK_DEBUG_KEY, - Constants::QBS_CONFIG_QUICK_COMPILER_KEY, - Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY, - Constants::QBS_INSTALL_ROOT_KEY}); + KeyList additionalSpecialKeys({Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY, + Constants::QBS_CONFIG_QUICK_DEBUG_KEY, + Constants::QBS_CONFIG_QUICK_COMPILER_KEY, + Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY, + Constants::QBS_INSTALL_ROOT_KEY}); if (m_qbsStep->selectedAbis.isManagedByTarget()) additionalSpecialKeys << Constants::QBS_ARCHITECTURES; - for (const QString &key : std::as_const(additionalSpecialKeys)) { + for (const Key &key : std::as_const(additionalSpecialKeys)) { const auto it = tmp.constFind(key); if (it != tmp.cend()) data.insert(key, it.value()); @@ -649,7 +649,7 @@ void QbsBuildStepConfigWidget::applyCachedProperties() for (int i = 0; i < m_propertyCache.count(); ++i) { const Property &property = m_propertyCache.at(i); - data.insert(property.name, property.value); + data.insert(property.name.toUtf8(), property.value); } const GuardLocker locker(m_ignoreChanges); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.h b/src/plugins/qbsprojectmanager/qbsbuildstep.h index c1b3b45883..4815a96a85 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.h +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.h @@ -46,8 +46,8 @@ public: QbsBuildStep(ProjectExplorer::BuildStepList *bsl, Utils::Id id); - QVariantMap qbsConfiguration(VariableHandling variableHandling) const; - void setQbsConfiguration(const QVariantMap &config); + Utils::Store qbsConfiguration(VariableHandling variableHandling) const; + void setQbsConfiguration(const Utils::Store &config); Utils::FilePath installRoot(VariableHandling variableHandling = ExpandVariables) const; QString buildVariant() const; @@ -82,7 +82,7 @@ private: void updateState(); QStringList configuredArchitectures() const; - QVariantMap m_qbsConfiguration; + Utils::Store m_qbsConfiguration; // Temporary data: QStringList m_changedFiles; diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 1fd1977225..09fe9d495c 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -577,7 +577,7 @@ void QbsBuildSystem::startParsing() { QTC_ASSERT(!m_qbsProjectParser, return); - QVariantMap config = m_buildConfiguration->qbsConfiguration(); + Store config = m_buildConfiguration->qbsConfiguration(); if (!config.contains(Constants::QBS_INSTALL_ROOT_KEY)) { config.insert(Constants::QBS_INSTALL_ROOT_KEY, m_buildConfiguration->macroExpander() ->expand(QbsSettings::defaultInstallDirTemplate())); diff --git a/src/plugins/qbsprojectmanager/qbsprojectimporter.cpp b/src/plugins/qbsprojectmanager/qbsprojectimporter.cpp index b6cf1b2f51..71e25aa405 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectimporter.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectimporter.cpp @@ -205,9 +205,9 @@ const QList<BuildInfo> QbsProjectImporter::buildInfoList(void *directoryData) co ? BuildConfiguration::Profile : bgData->buildVariant == QbsConstants::QBS_VARIANT_RELEASE ? BuildConfiguration::Release : BuildConfiguration::Debug; info.buildDirectory = bgData->bgFilePath.parentDir().parentDir(); - QVariantMap config = bgData->overriddenProperties; + Store config = storeFromMap(bgData->overriddenProperties); config.insert("configName", info.displayName); - info.extraInfo = config; + info.extraInfo = variantFromStore(config); qCDebug(qbsPmLog) << "creating build info for " << info.displayName << ' ' << bgData->buildVariant; return {info}; } diff --git a/src/plugins/qbsprojectmanager/qbsprojectparser.cpp b/src/plugins/qbsprojectmanager/qbsprojectparser.cpp index 381106456e..f551dd32ca 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectparser.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectparser.cpp @@ -41,7 +41,7 @@ QbsProjectParser::~QbsProjectParser() m_fi = nullptr; // we do not own m_fi, do not delete } -void QbsProjectParser::parse(const QVariantMap &config, const Environment &env, +void QbsProjectParser::parse(const Store &config, const Environment &env, const FilePath &dir, const QString &configName) { QTC_ASSERT(m_session, return); @@ -50,7 +50,7 @@ void QbsProjectParser::parse(const QVariantMap &config, const Environment &env, m_environment = env; QJsonObject request; request.insert("type", "resolve-project"); - QVariantMap userConfig = config; + Store userConfig = config; request.insert("top-level-profile", userConfig.take(Constants::QBS_CONFIG_PROFILE_KEY).toString()); request.insert("configuration-name", configName); @@ -58,7 +58,7 @@ void QbsProjectParser::parse(const QVariantMap &config, const Environment &env, userConfig.take(Constants::QBS_FORCE_PROBES_KEY).toBool()); if (QbsSettings::useCreatorSettingsDirForQbs()) request.insert("settings-directory", QbsSettings::qbsSettingsBaseDir()); - request.insert("overridden-properties", QJsonObject::fromVariantMap(userConfig)); + request.insert("overridden-properties", QJsonObject::fromVariantMap(mapFromStore(userConfig))); // People don't like it when files are created as a side effect of opening a project, // so do not store the build graph if the build directory does not exist yet. diff --git a/src/plugins/qbsprojectmanager/qbsprojectparser.h b/src/plugins/qbsprojectmanager/qbsprojectparser.h index 1f59285eb8..bdb0bfceef 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectparser.h +++ b/src/plugins/qbsprojectmanager/qbsprojectparser.h @@ -6,6 +6,7 @@ #include "qbssession.h" #include <utils/environment.h> +#include <utils/store.h> #include <QFutureInterface> #include <QJsonObject> @@ -23,7 +24,7 @@ public: QbsProjectParser(QbsBuildSystem *buildSystem, QFutureInterface<bool> *fi); ~QbsProjectParser() override; - void parse(const QVariantMap &config, + void parse(const Utils::Store &config, const Utils::Environment &env, const Utils::FilePath &dir, const QString &configName); |