aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-10-06 12:23:37 +0200
committerhjk <hjk@qt.io>2024-01-26 09:20:33 +0000
commit167cd3378d836e2ab11c8ea5812dc16058816c10 (patch)
tree5d3a6b1119d2762bb3e6fcd43f05d9aa7224a2f2
parente1f7469afb32efa51d665c9211767b214cd93573 (diff)
Qbs: Use Store instead of QVariantMap in a few places
Change-Id: I0636fad4ca032ec6657f2e35154c2e0ea4d0c9ca Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp14
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildconfiguration.h2
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildstep.cpp48
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildstep.h6
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.cpp2
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectimporter.cpp4
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectparser.cpp6
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectparser.h3
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);