diff options
author | hjk <hjk@qt.io> | 2020-11-09 16:19:23 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-11-10 09:36:52 +0000 |
commit | 2ecfda056bf283cc57132481e4fa11642a02491f (patch) | |
tree | e504119f0c0624e14372989b5ec96d6663ba56e1 /src/plugins/qbsprojectmanager/qbsbuildstep.cpp | |
parent | 13c68e0c73e6e649b3313888c48ee32a1b6d53fd (diff) |
QbsProjectManager: Use a SelectionAspect to switch Debug and Release
Change-Id: I4beaf0a6456d57871dcf65832f0a79f37fe5fddc
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/qbsprojectmanager/qbsbuildstep.cpp')
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsbuildstep.cpp | 44 |
1 files changed, 11 insertions, 33 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index 8c3b068c4a..e12f477167 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -51,13 +51,10 @@ #include <QBoxLayout> #include <QCheckBox> -#include <QComboBox> -#include <QFormLayout> #include <QJsonArray> #include <QJsonObject> #include <QLabel> #include <QPlainTextEdit> -#include <QSpinBox> #include <QThread> // -------------------------------------------------------------------- @@ -87,7 +84,6 @@ private: void updateState(); void updatePropertyEdit(const QVariantMap &data); - void changeBuildVariant(int); void changeUseDefaultInstallDir(bool useDefault); void changeInstallDir(const QString &dir); void applyCachedProperties(); @@ -119,7 +115,6 @@ private: QList<Property> m_propertyCache; bool m_ignoreChange = false; - QComboBox *buildVariantComboBox; FancyLineEdit *propertyEdit; PathChooser *installDirChooser; QCheckBox *defaultInstallDirCheckBox; @@ -143,7 +138,11 @@ QbsBuildStep::QbsBuildStep(BuildStepList *bsl, Utils::Id id) : connect(this, &QbsBuildStep::qbsConfigurationChanged, qbsBuildConfig, &QbsBuildConfiguration::qbsConfigurationChanged); -// setQbsConfiguration(other->qbsConfiguration(PreserveVariables)); + m_buildVariant = addAspect<SelectionAspect>(); + m_buildVariant->setDisplayName(tr("Build variant:")); + m_buildVariant->setDisplayStyle(SelectionAspect::DisplayStyle::ComboBox); + m_buildVariant->addOption(tr("Debug")); + m_buildVariant->addOption(tr("Release")); m_keepGoing = addAspect<BoolAspect>(); m_keepGoing->setSettingsKey(QBS_KEEP_GOING); @@ -183,6 +182,8 @@ QbsBuildStep::QbsBuildStep(BuildStepList *bsl, Utils::Id id) : connect(m_install, &BaseAspect::changed, this, &QbsBuildStep::updateState); connect(m_cleanInstallDir, &BaseAspect::changed, this, &QbsBuildStep::updateState); connect(m_forceProbes, &BaseAspect::changed, this, &QbsBuildStep::updateState); + + connect(m_buildVariant, &SelectionAspect::changed, this, &QbsBuildStep::changeBuildVariant); } QbsBuildStep::~QbsBuildStep() @@ -544,20 +545,6 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) : setContentsMargins(0, 0, 0, 0); - buildVariantComboBox = new QComboBox(this); - buildVariantComboBox->addItem(tr("Debug")); - buildVariantComboBox->addItem(tr("Release")); - - QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - sizePolicy.setHorizontalStretch(0); - sizePolicy.setVerticalStretch(0); - sizePolicy.setHeightForWidth(buildVariantComboBox->sizePolicy().hasHeightForWidth()); - buildVariantComboBox->setSizePolicy(sizePolicy); - - auto horizontalLayout_5 = new QHBoxLayout(); - horizontalLayout_5->addWidget(buildVariantComboBox); - horizontalLayout_5->addItem(new QSpacerItem(70, 13, QSizePolicy::Expanding, QSizePolicy::Minimum)); - propertyEdit = new FancyLineEdit(this); defaultInstallDirCheckBox = new QCheckBox(this); @@ -571,7 +558,7 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) : commandLineTextEdit->setTextInteractionFlags(Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse); LayoutBuilder builder(this); - builder.addRow({tr("Build variant:"), horizontalLayout_5}); + builder.addRow(m_qbsStep->m_buildVariant); builder.addRow(m_qbsStep->m_maxJobCount); builder.addRow({tr("Properties:"), propertyEdit}); @@ -599,10 +586,6 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) : return validateProperties(edit, errorMessage); }); - connect(buildVariantComboBox, - QOverload<int>::of(&QComboBox::currentIndexChanged), - this, &QbsBuildStepConfigWidget::changeBuildVariant); - connect(defaultInstallDirCheckBox, &QCheckBox::toggled, this, &QbsBuildStepConfigWidget::changeUseDefaultInstallDir); @@ -620,9 +603,6 @@ void QbsBuildStepConfigWidget::updateState() defaultInstallDirCheckBox->setChecked(!m_qbsStep->hasCustomInstallRoot()); } - const QString buildVariant = qbsStep()->buildVariant(); - const int idx = (buildVariant == Constants::QBS_VARIANT_DEBUG) ? 0 : 1; - buildVariantComboBox->setCurrentIndex(idx); const auto qbsBuildConfig = static_cast<QbsBuildConfiguration *>(qbsStep()->buildConfiguration()); QString command = qbsBuildConfig->equivalentCommandLine(qbsStep()->stepData()); @@ -673,16 +653,14 @@ void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data) propertyEdit->setText(QtcProcess::joinArgs(propertyList)); } -void QbsBuildStepConfigWidget::changeBuildVariant(int idx) +void QbsBuildStep::changeBuildVariant() { QString variant; - if (idx == 1) + if (m_buildVariant->value() == 1) variant = Constants::QBS_VARIANT_RELEASE; else variant = Constants::QBS_VARIANT_DEBUG; - m_ignoreChange = true; - qbsStep()->setBuildVariant(variant); - m_ignoreChange = false; + setBuildVariant(variant); } void QbsBuildStepConfigWidget::changeUseDefaultInstallDir(bool useDefault) |