From 7c23409e2ae45a9e00a409e47d1d95ebf55dde6c Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 17 Oct 2024 16:42:52 +0200 Subject: [PATCH] Qbs/Qmake: Centralize build step variable chooser creation This is nothing individual steps should worry about anymore. Similar to what RunConfiguration::createConfigurationWidget() did already. Change-Id: I5e29e7ceff5b6761952a0a123d9198a0d381cf4f Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/buildstep.cpp | 1 + src/plugins/projectexplorer/makestep.cpp | 3 --- src/plugins/qbsprojectmanager/qbsbuildstep.cpp | 18 +++++------------- src/plugins/qmakeprojectmanager/qmakestep.cpp | 4 +--- 4 files changed, 7 insertions(+), 19 deletions(-) diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index 1b07968338e..581addb5dc4 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -93,6 +93,7 @@ BuildStep::BuildStep(BuildStepList *bsl, Id id) QWidget *BuildStep::doCreateConfigWidget() { QWidget *widget = createConfigWidget(); + VariableChooser::addSupportForChildWidgets(widget, macroExpander()); const auto recreateSummary = [this] { if (m_summaryUpdater) diff --git a/src/plugins/projectexplorer/makestep.cpp b/src/plugins/projectexplorer/makestep.cpp index 36051201008..6a4db951059 100644 --- a/src/plugins/projectexplorer/makestep.cpp +++ b/src/plugins/projectexplorer/makestep.cpp @@ -22,7 +22,6 @@ #include #include #include -#include #include @@ -322,8 +321,6 @@ QWidget *MakeStep::createConfigWidget() auto widget = builder.emerge(); - VariableChooser::addSupportForChildWidgets(widget, macroExpander()); - setSummaryUpdater([this] { const CommandLine make = effectiveMakeCommand(MakeStep::Display); if (make.executable().isEmpty()) diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index 89a3e562889..c28e52e0262 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -22,11 +22,9 @@ #include #include #include -#include #include #include #include -#include #include #include @@ -486,8 +484,13 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) setContentsMargins(0, 0, 0, 0); propertyEdit = new FancyLineEdit(this); + propertyEdit->setToolTip(QbsProjectManager::Tr::tr("Properties to pass to the project.")); + propertyEdit->setValidationFunction([this](FancyLineEdit *edit, QString *errorMessage) { + return validateProperties(edit, errorMessage); + }); defaultInstallDirCheckBox = new QCheckBox(this); + defaultInstallDirCheckBox->setText(QbsProjectManager::Tr::tr("Use default location")); installDirChooser = new PathChooser(this); installDirChooser->setExpectedKind(PathChooser::Directory); @@ -514,17 +517,6 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) noMargin, }.attachTo(this); - propertyEdit->setToolTip(QbsProjectManager::Tr::tr("Properties to pass to the project.")); - defaultInstallDirCheckBox->setText(QbsProjectManager::Tr::tr("Use default location")); - - auto chooser = new VariableChooser(this); - chooser->addMacroExpanderProvider([this] { return m_qbsStep->macroExpander(); }); - chooser->addSupportedWidget(propertyEdit); - chooser->addSupportedWidget(installDirChooser->lineEdit()); - propertyEdit->setValidationFunction([this](FancyLineEdit *edit, QString *errorMessage) { - return validateProperties(edit, errorMessage); - }); - connect(defaultInstallDirCheckBox, &QCheckBox::toggled, this, &QbsBuildStepConfigWidget::changeUseDefaultInstallDir); diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index 179e1796728..1f39c4c04da 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -28,6 +28,7 @@ #include #include + #include #include #include @@ -39,7 +40,6 @@ #include #include #include -#include #include #include @@ -479,8 +479,6 @@ QWidget *QMakeStep::createConfigWidget() abisListWidget = nullptr; }); - VariableChooser::addSupportForChildWidgets(widget, macroExpander()); - return widget; }