diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp index eabce92bee2..8568fa365a4 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp @@ -207,13 +207,11 @@ void BuildSettingsWidget::updateBuildSettings() if (generalConfigWidget) addSubWidget(generalConfigWidget); - auto buildStepsWidget = new BuildStepListWidget(this); - buildStepsWidget->init(m_buildConfiguration->stepList(Constants::BUILDSTEPS_BUILD)); - addSubWidget(buildStepsWidget); + BuildStepList *buildSteps = m_buildConfiguration->stepList(Constants::BUILDSTEPS_BUILD); + addSubWidget(new BuildStepListWidget(buildSteps, this)); - auto cleanStepsWidget = new BuildStepListWidget(this); - cleanStepsWidget->init(m_buildConfiguration->stepList(Constants::BUILDSTEPS_CLEAN)); - addSubWidget(cleanStepsWidget); + BuildStepList *cleanSteps = m_buildConfiguration->stepList(Constants::BUILDSTEPS_CLEAN); + addSubWidget(new BuildStepListWidget(cleanSteps, this)); QList subConfigWidgets = m_buildConfiguration->createSubConfigWidgets(); foreach (NamedWidget *subConfigWidget, subConfigWidgets) diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp index de40258b116..579fbe96555 100644 --- a/src/plugins/projectexplorer/buildstepspage.cpp +++ b/src/plugins/projectexplorer/buildstepspage.cpp @@ -191,9 +191,35 @@ BuildStepsWidgetData::~BuildStepsWidgetData() // We do not own the step } -BuildStepListWidget::BuildStepListWidget(QWidget *parent) : - NamedWidget(parent) -{ } +BuildStepListWidget::BuildStepListWidget(BuildStepList *bsl, QWidget *parent) + : NamedWidget(parent), m_buildStepList(bsl) +{ + setupUi(); + + connect(bsl, &BuildStepList::stepInserted, this, &BuildStepListWidget::addBuildStep); + connect(bsl, &BuildStepList::stepRemoved, this, &BuildStepListWidget::removeBuildStep); + connect(bsl, &BuildStepList::stepMoved, this, &BuildStepListWidget::stepMoved); + + //: %1 is the name returned by BuildStepList::displayName + setDisplayName(tr("%1 Steps").arg(bsl->displayName())); + + for (int i = 0; i < bsl->count(); ++i) { + addBuildStep(i); + // addBuilStep expands the config widget by default, which we don't want here + if (m_buildStepsData.at(i)->step->widgetExpandedByDefault()) { + m_buildStepsData.at(i)->detailsWidget->setState( + m_buildStepsData.at(i)->step->wasUserExpanded() + ? DetailsWidget::Expanded : DetailsWidget::Collapsed); + } + } + + m_noStepsLabel->setVisible(bsl->isEmpty()); + m_noStepsLabel->setText(tr("No %1 Steps").arg(m_buildStepList->displayName())); + + m_addButton->setText(tr("Add %1 Step").arg(m_buildStepList->displayName())); + + updateBuildStepButtonsState(); +} BuildStepListWidget::~BuildStepListWidget() { @@ -227,52 +253,6 @@ void BuildStepListWidget::updateEnabledState() } } -void BuildStepListWidget::init(BuildStepList *bsl) -{ - Q_ASSERT(bsl); - if (bsl == m_buildStepList) - return; - - setupUi(); - - if (m_buildStepList) { - disconnect(m_buildStepList, &BuildStepList::stepInserted, - this, &BuildStepListWidget::addBuildStep); - disconnect(m_buildStepList, &BuildStepList::stepRemoved, - this, &BuildStepListWidget::removeBuildStep); - disconnect(m_buildStepList, &BuildStepList::stepMoved, - this, &BuildStepListWidget::stepMoved); - } - - connect(bsl, &BuildStepList::stepInserted, this, &BuildStepListWidget::addBuildStep); - connect(bsl, &BuildStepList::stepRemoved, this, &BuildStepListWidget::removeBuildStep); - connect(bsl, &BuildStepList::stepMoved, this, &BuildStepListWidget::stepMoved); - - qDeleteAll(m_buildStepsData); - m_buildStepsData.clear(); - - m_buildStepList = bsl; - //: %1 is the name returned by BuildStepList::displayName - setDisplayName(tr("%1 Steps").arg(m_buildStepList->displayName())); - - for (int i = 0; i < bsl->count(); ++i) { - addBuildStep(i); - // addBuilStep expands the config widget by default, which we don't want here - if (m_buildStepsData.at(i)->step->widgetExpandedByDefault()) { - m_buildStepsData.at(i)->detailsWidget->setState( - m_buildStepsData.at(i)->step->wasUserExpanded() - ? DetailsWidget::Expanded : DetailsWidget::Collapsed); - } - } - - m_noStepsLabel->setVisible(bsl->isEmpty()); - m_noStepsLabel->setText(tr("No %1 Steps").arg(m_buildStepList->displayName())); - - m_addButton->setText(tr("Add %1 Step").arg(m_buildStepList->displayName())); - - updateBuildStepButtonsState(); -} - void BuildStepListWidget::updateAddBuildStepMenu() { QMap > map; diff --git a/src/plugins/projectexplorer/buildstepspage.h b/src/plugins/projectexplorer/buildstepspage.h index 2453c9e784e..7eade2d663e 100644 --- a/src/plugins/projectexplorer/buildstepspage.h +++ b/src/plugins/projectexplorer/buildstepspage.h @@ -97,11 +97,9 @@ class BuildStepListWidget : public NamedWidget Q_OBJECT public: - BuildStepListWidget(QWidget *parent = nullptr); + BuildStepListWidget(BuildStepList *bsl, QWidget *parent = nullptr); ~BuildStepListWidget() override; - void init(BuildStepList *bsl); - private: void updateAddBuildStepMenu(); void addBuildStep(int pos); diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index 4695eff651e..1cde0b89d43 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -424,8 +424,7 @@ void RunSettingsWidget::updateDeployConfiguration(DeployConfiguration *dc) if (m_deployConfigurationWidget) m_deployLayout->addWidget(m_deployConfigurationWidget); - m_deploySteps = new BuildStepListWidget; - m_deploySteps->init(dc->stepList()); + m_deploySteps = new BuildStepListWidget(dc->stepList()); m_deployLayout->addWidget(m_deploySteps); }