From 7add8a81db34160156aa816d50ca3f718d856b87 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 6 Oct 2020 10:00:04 +0200 Subject: [PATCH] QmakeProjectManager: Use SelectionAspect in QmakeStep For the Debug/Release combobox. Change-Id: I494778c0f633a34a25a97217b94321ef1944e588 Reviewed-by: Christian Kandeler --- src/plugins/qmakeprojectmanager/qmakestep.cpp | 35 ++++++------------- src/plugins/qmakeprojectmanager/qmakestep.h | 2 +- 2 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index 1f1d1bae4b6..cf7f66aaed3 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -83,6 +83,12 @@ QMakeStep::QMakeStep(BuildStepList *bsl, Utils::Id id) { setLowPriority(); + m_buildType = addAspect(); + m_buildType->setDisplayStyle(SelectionAspect::DisplayStyle::ComboBox); + m_buildType->setDisplayName(tr("qmake build configuration:")); + m_buildType->addOption(tr("Debug")); + m_buildType->addOption(tr("Release")); + auto updateSummary = [this] { BaseQtVersion *qtVersion = QtKitAspect::qtVersion(target()->kit()); if (!qtVersion) @@ -507,25 +513,6 @@ QWidget *QMakeStep::createConfigWidget() { auto widget = new QWidget; - auto label_0 = new QLabel(tr("qmake build configuration:"), widget); - - auto buildConfigurationWidget = new QWidget(widget); - - buildConfigurationComboBox = new QComboBox(buildConfigurationWidget); - buildConfigurationComboBox->addItem(tr("Debug")); - buildConfigurationComboBox->addItem(tr("Release")); - - QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - sizePolicy.setHorizontalStretch(0); - sizePolicy.setVerticalStretch(0); - sizePolicy.setHeightForWidth(buildConfigurationComboBox->sizePolicy().hasHeightForWidth()); - buildConfigurationComboBox->setSizePolicy(sizePolicy); - - auto horizontalLayout_0 = new QHBoxLayout(buildConfigurationWidget); - horizontalLayout_0->setContentsMargins(0, 0, 0, 0); - horizontalLayout_0->addWidget(buildConfigurationComboBox); - horizontalLayout_0->addItem(new QSpacerItem(71, 20, QSizePolicy::Expanding, QSizePolicy::Minimum)); - auto qmakeArgsLabel = new QLabel(tr("Additional arguments:"), widget); qmakeAdditonalArgumentsLineEdit = new QLineEdit(widget); @@ -545,7 +532,7 @@ QWidget *QMakeStep::createConfigWidget() qmakeAdditonalArgumentsLineEdit->setText(m_userArgs); LayoutBuilder builder(widget); - builder.addRow({label_0, buildConfigurationWidget}); + builder.addRow(m_buildType); builder.addRow({qmakeArgsLabel, qmakeAdditonalArgumentsLineEdit}); builder.addRow({label, qmakeArgumentsEdit}); builder.addRow({abisLabel, abisListWidget}); @@ -558,8 +545,8 @@ QWidget *QMakeStep::createConfigWidget() connect(qmakeAdditonalArgumentsLineEdit, &QLineEdit::textEdited, this, &QMakeStep::qmakeArgumentsLineEdited); - connect(buildConfigurationComboBox, QOverload::of(&QComboBox::currentIndexChanged), - this, &QMakeStep::buildConfigurationSelected); + connect(m_buildType, &BaseAspect::changed, + widget, [this] { buildConfigurationSelected(); }); connect(qmakeBuildConfiguration(), &QmakeBuildConfiguration::qmlDebuggingChanged, widget, [this] { @@ -604,7 +591,7 @@ void QMakeStep::qmakeBuildConfigChanged() QmakeBuildConfiguration *bc = qmakeBuildConfiguration(); bool debug = bc->qmakeBuildConfiguration() & BaseQtVersion::DebugBuild; m_ignoreChange = true; - buildConfigurationComboBox->setCurrentIndex(debug? 0 : 1); + m_buildType->setValue(debug? 0 : 1); m_ignoreChange = false; updateAbiWidgets(); updateEffectiveQMakeCall(); @@ -686,7 +673,7 @@ void QMakeStep::buildConfigurationSelected() return; QmakeBuildConfiguration *bc = qmakeBuildConfiguration(); BaseQtVersion::QmakeBuildConfigs buildConfiguration = bc->qmakeBuildConfiguration(); - if (buildConfigurationComboBox->currentIndex() == 0) { // debug + if (m_buildType->value() == 0) { // debug buildConfiguration = buildConfiguration | BaseQtVersion::DebugBuild; } else { buildConfiguration = buildConfiguration & ~BaseQtVersion::DebugBuild; diff --git a/src/plugins/qmakeprojectmanager/qmakestep.h b/src/plugins/qmakeprojectmanager/qmakestep.h index 319d035b056..5bec2c2bbb3 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.h +++ b/src/plugins/qmakeprojectmanager/qmakestep.h @@ -210,7 +210,7 @@ private: bool m_ignoreChange = false; QLabel *abisLabel = nullptr; - QComboBox *buildConfigurationComboBox = nullptr; + Utils::SelectionAspect *m_buildType = nullptr; QLineEdit *qmakeAdditonalArgumentsLineEdit = nullptr; QPlainTextEdit *qmakeArgumentsEdit = nullptr; QListWidget *abisListWidget = nullptr;