diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index 5ac88bb4665..d0b66a15491 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -209,8 +209,9 @@ QbsBuildStep::QbsBuildStep(BuildStepList *bsl, Utils::Id id) : m_buildVariant = addAspect(); m_buildVariant->setDisplayName(QbsProjectManager::Tr::tr("Build variant:")); m_buildVariant->setDisplayStyle(SelectionAspect::DisplayStyle::ComboBox); - m_buildVariant->addOption(ProjectExplorer::Tr::tr("Debug")); - m_buildVariant->addOption(ProjectExplorer::Tr::tr("Release")); + m_buildVariant->addOption({ProjectExplorer::Tr::tr("Debug"), {}, Constants::QBS_VARIANT_DEBUG}); + m_buildVariant->addOption({ProjectExplorer::Tr::tr("Release"), {}, + Constants::QBS_VARIANT_RELEASE}); m_selectedAbis = addAspect(); m_selectedAbis->setLabelText(QbsProjectManager::Tr::tr("ABIs:")); @@ -263,7 +264,9 @@ QbsBuildStep::QbsBuildStep(BuildStepList *bsl, Utils::Id id) : connect(m_cleanInstallDir, &BaseAspect::changed, this, &QbsBuildStep::updateState); connect(m_forceProbes, &BaseAspect::changed, this, &QbsBuildStep::updateState); - connect(m_buildVariant, &SelectionAspect::changed, this, &QbsBuildStep::changeBuildVariant); + connect(m_buildVariant, &SelectionAspect::changed, this, [this] { + setBuildVariant(m_buildVariant->itemValue().toString()); + }); connect(m_selectedAbis, &SelectionAspect::changed, [this] { setConfiguredArchitectures(m_selectedAbis->selectedArchitectures()); }); } @@ -358,13 +361,16 @@ void QbsBuildStep::setQbsConfiguration(const QVariantMap &config) { QVariantMap tmp = config; tmp.insert(Constants::QBS_CONFIG_PROFILE_KEY, qbsBuildSystem()->profile()); - if (!tmp.contains(Constants::QBS_CONFIG_VARIANT_KEY)) - tmp.insert(Constants::QBS_CONFIG_VARIANT_KEY, - QString::fromLatin1(Constants::QBS_VARIANT_DEBUG)); - + QString buildVariant = tmp.value(Constants::QBS_CONFIG_VARIANT_KEY).toString(); + if (buildVariant.isEmpty()) { + buildVariant = Constants::QBS_VARIANT_DEBUG; + tmp.insert(Constants::QBS_CONFIG_VARIANT_KEY, buildVariant); + } if (tmp == m_qbsConfiguration) return; m_qbsConfiguration = tmp; + if (m_buildVariant) + m_buildVariant->setValue(m_buildVariant->indexForItemValue(buildVariant)); if (ProjectExplorer::BuildConfiguration *bc = buildConfiguration()) emit bc->buildTypeChanged(); emit qbsConfigurationChanged(); @@ -760,16 +766,6 @@ void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data) propertyEdit->setText(ProcessArgs::joinArgs(propertyList)); } -void QbsBuildStep::changeBuildVariant() -{ - QString variant; - if (m_buildVariant->value() == 1) - variant = Constants::QBS_VARIANT_RELEASE; - else - variant = Constants::QBS_VARIANT_DEBUG; - setBuildVariant(variant); -} - void QbsBuildStepConfigWidget::changeUseDefaultInstallDir(bool useDefault) { const GuardLocker locker(m_ignoreChanges); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.h b/src/plugins/qbsprojectmanager/qbsbuildstep.h index faf12c31686..644acabe578 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.h +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.h @@ -89,7 +89,6 @@ private: void finish(); void updateState(); - void changeBuildVariant(); QStringList configuredArchitectures() const; QVariantMap m_qbsConfiguration;