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 <christian.kandeler@qt.io>
This commit is contained in:
hjk
2024-10-17 16:42:52 +02:00
parent 3d5e7a9f66
commit 7c23409e2a
4 changed files with 7 additions and 19 deletions

View File

@@ -93,6 +93,7 @@ BuildStep::BuildStep(BuildStepList *bsl, Id id)
QWidget *BuildStep::doCreateConfigWidget() QWidget *BuildStep::doCreateConfigWidget()
{ {
QWidget *widget = createConfigWidget(); QWidget *widget = createConfigWidget();
VariableChooser::addSupportForChildWidgets(widget, macroExpander());
const auto recreateSummary = [this] { const auto recreateSummary = [this] {
if (m_summaryUpdater) if (m_summaryUpdater)

View File

@@ -22,7 +22,6 @@
#include <utils/pathchooser.h> #include <utils/pathchooser.h>
#include <utils/qtcprocess.h> #include <utils/qtcprocess.h>
#include <utils/utilsicons.h> #include <utils/utilsicons.h>
#include <utils/variablechooser.h>
#include <QThread> #include <QThread>
@@ -322,8 +321,6 @@ QWidget *MakeStep::createConfigWidget()
auto widget = builder.emerge(); auto widget = builder.emerge();
VariableChooser::addSupportForChildWidgets(widget, macroExpander());
setSummaryUpdater([this] { setSummaryUpdater([this] {
const CommandLine make = effectiveMakeCommand(MakeStep::Display); const CommandLine make = effectiveMakeCommand(MakeStep::Display);
if (make.executable().isEmpty()) if (make.executable().isEmpty())

View File

@@ -22,11 +22,9 @@
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/guard.h> #include <utils/guard.h>
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
#include <utils/macroexpander.h>
#include <utils/outputformatter.h> #include <utils/outputformatter.h>
#include <utils/pathchooser.h> #include <utils/pathchooser.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/variablechooser.h>
#include <QCheckBox> #include <QCheckBox>
#include <QJsonArray> #include <QJsonArray>
@@ -486,8 +484,13 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step)
setContentsMargins(0, 0, 0, 0); setContentsMargins(0, 0, 0, 0);
propertyEdit = new FancyLineEdit(this); 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 = new QCheckBox(this);
defaultInstallDirCheckBox->setText(QbsProjectManager::Tr::tr("Use default location"));
installDirChooser = new PathChooser(this); installDirChooser = new PathChooser(this);
installDirChooser->setExpectedKind(PathChooser::Directory); installDirChooser->setExpectedKind(PathChooser::Directory);
@@ -514,17 +517,6 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step)
noMargin, noMargin,
}.attachTo(this); }.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, connect(defaultInstallDirCheckBox, &QCheckBox::toggled, this,
&QbsBuildStepConfigWidget::changeUseDefaultInstallDir); &QbsBuildStepConfigWidget::changeUseDefaultInstallDir);

View File

@@ -28,6 +28,7 @@
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/icontext.h> #include <coreplugin/icontext.h>
#include <qtsupport/qtkitaspect.h> #include <qtsupport/qtkitaspect.h>
#include <qtsupport/qtversionmanager.h> #include <qtsupport/qtversionmanager.h>
#include <qtsupport/qtsupportconstants.h> #include <qtsupport/qtsupportconstants.h>
@@ -39,7 +40,6 @@
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
#include <utils/qtcprocess.h> #include <utils/qtcprocess.h>
#include <utils/utilsicons.h> #include <utils/utilsicons.h>
#include <utils/variablechooser.h>
#include <QDir> #include <QDir>
#include <QLabel> #include <QLabel>
@@ -479,8 +479,6 @@ QWidget *QMakeStep::createConfigWidget()
abisListWidget = nullptr; abisListWidget = nullptr;
}); });
VariableChooser::addSupportForChildWidgets(widget, macroExpander());
return widget; return widget;
} }