diff --git a/src/plugins/android/androidbuildapkwidget.cpp b/src/plugins/android/androidbuildapkwidget.cpp index d436a38827e..e725c07b1e0 100644 --- a/src/plugins/android/androidbuildapkwidget.cpp +++ b/src/plugins/android/androidbuildapkwidget.cpp @@ -57,7 +57,7 @@ namespace Android { namespace Internal { AndroidBuildApkInnerWidget::AndroidBuildApkInnerWidget(AndroidBuildApkStep *step) - : ProjectExplorer::BuildStepConfigWidget(), + : ProjectExplorer::BuildStepConfigWidget(step), m_ui(new Ui::AndroidBuildApkWidget), m_step(step) { @@ -230,6 +230,7 @@ void AndroidBuildApkInnerWidget::updateSigningWarning() // AndroidBuildApkWidget AndroidBuildApkWidget::AndroidBuildApkWidget(AndroidBuildApkStep *step) : + BuildStepConfigWidget(step), m_step(step) { m_extraLibraryListModel = new AndroidExtraLibraryListModel(m_step->target(), this); diff --git a/src/plugins/android/androiddeployqtwidget.cpp b/src/plugins/android/androiddeployqtwidget.cpp index 314120a6856..a5d609be14c 100644 --- a/src/plugins/android/androiddeployqtwidget.cpp +++ b/src/plugins/android/androiddeployqtwidget.cpp @@ -36,7 +36,7 @@ using namespace Android; using namespace Internal; AndroidDeployQtWidget::AndroidDeployQtWidget(AndroidDeployQtStep *step) - : ProjectExplorer::BuildStepConfigWidget(), + : ProjectExplorer::BuildStepConfigWidget(step), m_ui(new Ui::AndroidDeployQtWidget), m_step(step) { diff --git a/src/plugins/android/androidpackageinstallationstep.cpp b/src/plugins/android/androidpackageinstallationstep.cpp index cc6b8fc9466..228bae79cf3 100644 --- a/src/plugins/android/androidpackageinstallationstep.cpp +++ b/src/plugins/android/androidpackageinstallationstep.cpp @@ -126,9 +126,8 @@ bool AndroidPackageInstallationStep::immutable() const namespace Internal { AndroidPackageInstallationStepWidget::AndroidPackageInstallationStepWidget(AndroidPackageInstallationStep *step) - : m_step(step) + : BuildStepConfigWidget(step, false) { - setShowWidget(false); } QString AndroidPackageInstallationStepWidget::summaryText() const diff --git a/src/plugins/android/androidpackageinstallationstep.h b/src/plugins/android/androidpackageinstallationstep.h index 9e314a6f8f8..5143ad021d8 100644 --- a/src/plugins/android/androidpackageinstallationstep.h +++ b/src/plugins/android/androidpackageinstallationstep.h @@ -61,8 +61,6 @@ public: QString summaryText() const override; QString displayName() const override; -private: - AndroidPackageInstallationStep *m_step; }; class AndroidPackageInstallationFactory: public ProjectExplorer::BuildStepFactory diff --git a/src/plugins/autotoolsprojectmanager/autogenstep.cpp b/src/plugins/autotoolsprojectmanager/autogenstep.cpp index 3bcb90d052c..385c45ef11e 100644 --- a/src/plugins/autotoolsprojectmanager/autogenstep.cpp +++ b/src/plugins/autotoolsprojectmanager/autogenstep.cpp @@ -156,6 +156,7 @@ bool AutogenStep::fromMap(const QVariantMap &map) // AutogenStepConfigWidget class ////////////////////////////////// AutogenStepConfigWidget::AutogenStepConfigWidget(AutogenStep *autogenStep) : + BuildStepConfigWidget(autogenStep), m_autogenStep(autogenStep), m_additionalArguments(new QLineEdit) { diff --git a/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp b/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp index 51e2e34751f..3b55382f322 100644 --- a/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp +++ b/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp @@ -149,6 +149,7 @@ bool AutoreconfStep::fromMap(const QVariantMap &map) // AutoreconfStepConfigWidget class ////////////////////////////////////// AutoreconfStepConfigWidget::AutoreconfStepConfigWidget(AutoreconfStep *autoreconfStep) : + BuildStepConfigWidget(autoreconfStep), m_autoreconfStep(autoreconfStep), m_additionalArguments(new QLineEdit(this)) { diff --git a/src/plugins/autotoolsprojectmanager/configurestep.cpp b/src/plugins/autotoolsprojectmanager/configurestep.cpp index 5ae119553d7..923484b4f72 100644 --- a/src/plugins/autotoolsprojectmanager/configurestep.cpp +++ b/src/plugins/autotoolsprojectmanager/configurestep.cpp @@ -172,6 +172,7 @@ bool ConfigureStep::fromMap(const QVariantMap &map) // ConfigureStepConfigWidget class ///////////////////////////////////// ConfigureStepConfigWidget::ConfigureStepConfigWidget(ConfigureStep *configureStep) : + BuildStepConfigWidget(configureStep), m_configureStep(configureStep), m_additionalArguments(new QLineEdit) { diff --git a/src/plugins/baremetal/baremetalgdbcommandsdeploystep.cpp b/src/plugins/baremetal/baremetalgdbcommandsdeploystep.cpp index 8affd8d6593..5d40e66fcad 100644 --- a/src/plugins/baremetal/baremetalgdbcommandsdeploystep.cpp +++ b/src/plugins/baremetal/baremetalgdbcommandsdeploystep.cpp @@ -35,7 +35,7 @@ namespace Internal { const char GdbCommandsKey[] = "BareMetal.GdbCommandsStep.Commands"; BareMetalGdbCommandsDeployStepWidget::BareMetalGdbCommandsDeployStepWidget(BareMetalGdbCommandsDeployStep &step) - : m_step(step) + : BuildStepConfigWidget(&step), m_step(step) { QFormLayout *fl = new QFormLayout(this); fl->setMargin(0); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index 306ec7b4e19..81ae32126e1 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -410,6 +410,7 @@ QStringList CMakeBuildStep::specialTargets() // CMakeBuildStepConfigWidget::CMakeBuildStepConfigWidget(CMakeBuildStep *buildStep) : + BuildStepConfigWidget(buildStep), m_buildStep(buildStep), m_toolArguments(new QLineEdit), m_buildTargetsList(new QListWidget) diff --git a/src/plugins/ios/iosbuildstep.cpp b/src/plugins/ios/iosbuildstep.cpp index 3c04cc70805..dcaa67232b5 100644 --- a/src/plugins/ios/iosbuildstep.cpp +++ b/src/plugins/ios/iosbuildstep.cpp @@ -206,7 +206,7 @@ QStringList IosBuildStep::baseArguments() const // IosBuildStepConfigWidget::IosBuildStepConfigWidget(IosBuildStep *buildStep) - : m_buildStep(buildStep) + : BuildStepConfigWidget(buildStep), m_buildStep(buildStep) { m_ui = new Ui::IosBuildStep; m_ui->setupUi(this); diff --git a/src/plugins/ios/iosdeploystepwidget.cpp b/src/plugins/ios/iosdeploystepwidget.cpp index 252aa6f47ea..d2e5d1e6e07 100644 --- a/src/plugins/ios/iosdeploystepwidget.cpp +++ b/src/plugins/ios/iosdeploystepwidget.cpp @@ -31,13 +31,11 @@ #include -#include - namespace Ios { namespace Internal { IosDeployStepWidget::IosDeployStepWidget(IosDeployStep *step) : - ProjectExplorer::BuildStepConfigWidget(), + ProjectExplorer::BuildStepConfigWidget(step), ui(new Ui::IosDeployStepWidget), m_step(step) { diff --git a/src/plugins/ios/iosdsymbuildstep.cpp b/src/plugins/ios/iosdsymbuildstep.cpp index 3fc3c090dc9..cfde8d50b34 100644 --- a/src/plugins/ios/iosdsymbuildstep.cpp +++ b/src/plugins/ios/iosdsymbuildstep.cpp @@ -227,7 +227,7 @@ QStringList IosDsymBuildStep::arguments() const // IosDsymBuildStepConfigWidget::IosDsymBuildStepConfigWidget(IosDsymBuildStep *buildStep) - : m_buildStep(buildStep) + : BuildStepConfigWidget(buildStep), m_buildStep(buildStep) { m_ui = new Ui::IosPresetBuildStep; m_ui->setupUi(this); diff --git a/src/plugins/nim/project/nimcompilerbuildstepconfigwidget.cpp b/src/plugins/nim/project/nimcompilerbuildstepconfigwidget.cpp index ef4b9be9437..cf7b91d6193 100644 --- a/src/plugins/nim/project/nimcompilerbuildstepconfigwidget.cpp +++ b/src/plugins/nim/project/nimcompilerbuildstepconfigwidget.cpp @@ -39,7 +39,7 @@ using namespace Utils; namespace Nim { NimCompilerBuildStepConfigWidget::NimCompilerBuildStepConfigWidget(NimCompilerBuildStep *buildStep) - : BuildStepConfigWidget() + : BuildStepConfigWidget(buildStep) , m_buildStep(buildStep) , m_ui(new Ui::NimCompilerBuildStepConfigWidget()) { diff --git a/src/plugins/nim/project/nimcompilercleanstepconfigwidget.cpp b/src/plugins/nim/project/nimcompilercleanstepconfigwidget.cpp index 3dade2e330f..4ab41189d6c 100644 --- a/src/plugins/nim/project/nimcompilercleanstepconfigwidget.cpp +++ b/src/plugins/nim/project/nimcompilercleanstepconfigwidget.cpp @@ -36,8 +36,7 @@ using namespace ProjectExplorer; namespace Nim { NimCompilerCleanStepConfigWidget::NimCompilerCleanStepConfigWidget(NimCompilerCleanStep *cleanStep) - : BuildStepConfigWidget() - , m_cleanStep(cleanStep) + : BuildStepConfigWidget(cleanStep) , m_ui(new Ui::NimCompilerCleanStepConfigWidget()) { m_ui->setupUi(this); @@ -60,7 +59,7 @@ QString NimCompilerCleanStepConfigWidget::displayName() const void NimCompilerCleanStepConfigWidget::updateUi() { - auto buildDiretory = m_cleanStep->buildConfiguration()->buildDirectory(); + auto buildDiretory = step()->buildConfiguration()->buildDirectory(); m_ui->workingDirectoryLineEdit->setText(buildDiretory.toString()); } diff --git a/src/plugins/nim/project/nimcompilercleanstepconfigwidget.h b/src/plugins/nim/project/nimcompilercleanstepconfigwidget.h index 409f412b842..f051df46b87 100644 --- a/src/plugins/nim/project/nimcompilercleanstepconfigwidget.h +++ b/src/plugins/nim/project/nimcompilercleanstepconfigwidget.h @@ -49,7 +49,6 @@ public: private: void updateUi(); - NimCompilerCleanStep *m_cleanStep; QScopedPointer m_ui; }; diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index 242ffea2a29..06af9984341 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -127,27 +127,9 @@ BuildStep::BuildStep(BuildStepList *bsl, Core::Id id) : expander->registerSubProvider([this] { return projectConfiguration()->macroExpander(); }); } -class ConfigWidget : public BuildStepConfigWidget -{ -public: - ConfigWidget(BuildStep *step) : m_step(step) - { - setShowWidget(true); - connect(m_step, &ProjectConfiguration::displayNameChanged, - this, &BuildStepConfigWidget::updateSummary); - } - - QString summaryText() const override { return "" + displayName() + ""; } - QString displayName() const override { return m_step->displayName(); } - BuildStep *step() const { return m_step; } - -private: - BuildStep *m_step; -}; - BuildStepConfigWidget *BuildStep::createConfigWidget() { - auto widget = new ConfigWidget(this); + auto widget = new BuildStepConfigWidget(this, true); auto formLayout = new QFormLayout(widget); formLayout->setMargin(0); @@ -381,4 +363,23 @@ BuildStep *BuildStepFactory::restore(BuildStepList *parent, const QVariantMap &m return bs; } +// BuildStepConfigWidget + +BuildStepConfigWidget::BuildStepConfigWidget(BuildStep *step, bool showWidget) + : m_step(step), m_showWidget(showWidget) +{ + connect(m_step, &ProjectConfiguration::displayNameChanged, + this, &BuildStepConfigWidget::updateSummary); +} + +QString BuildStepConfigWidget::summaryText() const +{ + return "" + displayName() + ""; +} + +QString BuildStepConfigWidget::displayName() const +{ + return m_step->displayName(); +} + } // ProjectExplorer diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h index 72f83c1bb37..9fabcf82d42 100644 --- a/src/plugins/projectexplorer/buildstep.h +++ b/src/plugins/projectexplorer/buildstep.h @@ -171,38 +171,22 @@ class PROJECTEXPLORER_EXPORT BuildStepConfigWidget : public QWidget { Q_OBJECT public: - virtual QString summaryText() const = 0; - virtual QString additionalSummaryText() const { return QString(); } - virtual QString displayName() const = 0; + BuildStepConfigWidget(BuildStep *step, bool showWidget = true); + virtual QString summaryText() const; + virtual QString additionalSummaryText() const { return QString(); } + virtual QString displayName() const; + + BuildStep *step() const { return m_step; } bool showWidget() const { return m_showWidget; } - void setShowWidget(bool showWidget) { m_showWidget = showWidget; } signals: void updateSummary(); void updateAdditionalSummary(); private: - bool m_showWidget = true; -}; - -class PROJECTEXPLORER_EXPORT SimpleBuildStepConfigWidget : public BuildStepConfigWidget -{ - Q_OBJECT -public: - SimpleBuildStepConfigWidget(BuildStep *step) : m_step(step) - { - connect(m_step, &ProjectConfiguration::displayNameChanged, - this, &BuildStepConfigWidget::updateSummary); - setShowWidget(false); - } - - QString summaryText() const override { return QLatin1String("") + displayName() + QLatin1String(""); } - QString displayName() const override { return m_step->displayName(); } - BuildStep *step() const { return m_step; } - -private: - BuildStep *m_step; + BuildStep *m_step = nullptr; + const bool m_showWidget = true; }; } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp index 4d1e8c894fb..1d21f897d8f 100644 --- a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp @@ -84,7 +84,7 @@ void DeviceCheckBuildStep::run(QFutureInterface &fi) BuildStepConfigWidget *DeviceCheckBuildStep::createConfigWidget() { - return new SimpleBuildStepConfigWidget(this); + return new BuildStepConfigWidget(this, false); } Core::Id DeviceCheckBuildStep::stepId() diff --git a/src/plugins/projectexplorer/makestep.cpp b/src/plugins/projectexplorer/makestep.cpp index 4473c1b5e8f..7e7c2c69600 100644 --- a/src/plugins/projectexplorer/makestep.cpp +++ b/src/plugins/projectexplorer/makestep.cpp @@ -331,8 +331,8 @@ QStringList MakeStep::availableTargets() const // GenericMakeStepConfigWidget // -MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) : - m_makeStep(makeStep) +MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) + : BuildStepConfigWidget(makeStep), m_makeStep(makeStep) { m_ui = new Internal::Ui::MakeStep; m_ui->setupUi(this); diff --git a/src/plugins/projectexplorer/processstep.cpp b/src/plugins/projectexplorer/processstep.cpp index 81e463eb10c..d6ddbe4c7ee 100644 --- a/src/plugins/projectexplorer/processstep.cpp +++ b/src/plugins/projectexplorer/processstep.cpp @@ -152,8 +152,8 @@ ProcessStepFactory::ProcessStepFactory() // ProcessStepConfigWidget //******* -ProcessStepConfigWidget::ProcessStepConfigWidget(ProcessStep *step) : - m_step(step) +ProcessStepConfigWidget::ProcessStepConfigWidget(ProcessStep *step) + : BuildStepConfigWidget(step), m_step(step) { m_ui.setupUi(this); m_ui.command->setExpectedKind(Utils::PathChooser::Command); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index e5ddbc42f78..ca69d1f4c06 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -534,6 +534,7 @@ QbsProject *QbsBuildStep::qbsProject() const // -------------------------------------------------------------------- QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) : + BuildStepConfigWidget(step), m_step(step), m_ignoreChange(false) { diff --git a/src/plugins/qbsprojectmanager/qbscleanstep.cpp b/src/plugins/qbsprojectmanager/qbscleanstep.cpp index 9ddf533395c..16cadabc469 100644 --- a/src/plugins/qbsprojectmanager/qbscleanstep.cpp +++ b/src/plugins/qbsprojectmanager/qbscleanstep.cpp @@ -220,7 +220,7 @@ void QbsCleanStep::setMaxJobs(int jobcount) // -------------------------------------------------------------------- QbsCleanStepConfigWidget::QbsCleanStepConfigWidget(QbsCleanStep *step) : - m_step(step) + BuildStepConfigWidget(step), m_step(step) { connect(m_step, &ProjectExplorer::ProjectConfiguration::displayNameChanged, this, &QbsCleanStepConfigWidget::updateState); diff --git a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp index a5a8430c0c2..99a47b5effe 100644 --- a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp @@ -251,7 +251,7 @@ void QbsInstallStep::handleBuildConfigChanged() // -------------------------------------------------------------------- QbsInstallStepConfigWidget::QbsInstallStepConfigWidget(QbsInstallStep *step) : - m_step(step), m_ignoreChange(false) + BuildStepConfigWidget(step), m_step(step), m_ignoreChange(false) { connect(m_step, &ProjectExplorer::ProjectConfiguration::displayNameChanged, this, &QbsInstallStepConfigWidget::updateState); diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index aa4c6ba2675..d489870a9eb 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -555,7 +555,7 @@ bool QMakeStep::fromMap(const QVariantMap &map) //// QMakeStepConfigWidget::QMakeStepConfigWidget(QMakeStep *step) - : BuildStepConfigWidget(), m_ui(new Internal::Ui::QMakeStep), m_step(step) + : BuildStepConfigWidget(step), m_ui(new Internal::Ui::QMakeStep), m_step(step) { m_ui->setupUi(this); diff --git a/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp b/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp index 71744b57248..607581dca22 100644 --- a/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp +++ b/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp @@ -112,7 +112,7 @@ void AbstractRemoteLinuxDeployStep::cancel() BuildStepConfigWidget *AbstractRemoteLinuxDeployStep::createConfigWidget() { - return new SimpleBuildStepConfigWidget(this); + return new BuildStepConfigWidget(this, false); } RemoteLinuxDeployConfiguration *AbstractRemoteLinuxDeployStep::deployConfiguration() const diff --git a/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp b/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp index 8361eb3240c..237a85b6c09 100644 --- a/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp +++ b/src/plugins/remotelinux/remotelinuxcheckforfreediskspacestep.cpp @@ -43,7 +43,7 @@ class RemoteLinuxCheckForFreeDiskSpaceStepWidget : public BuildStepConfigWidget public: explicit RemoteLinuxCheckForFreeDiskSpaceStepWidget(RemoteLinuxCheckForFreeDiskSpaceStep &step) - : m_step(step) + : BuildStepConfigWidget(&step), m_step(step) { m_ui.setupUi(this); m_ui.requiredSpaceSpinBox->setSuffix(tr("MB")); diff --git a/src/plugins/remotelinux/tarpackagecreationstep.cpp b/src/plugins/remotelinux/tarpackagecreationstep.cpp index 475a9dfc4e4..2a2955d3f50 100644 --- a/src/plugins/remotelinux/tarpackagecreationstep.cpp +++ b/src/plugins/remotelinux/tarpackagecreationstep.cpp @@ -50,14 +50,12 @@ namespace { const char IgnoreMissingFilesKey[] = "RemoteLinux.TarPackageCreationStep.IgnoreMissingFiles"; const char IncrementalDeploymentKey[] = "RemoteLinux.TarPackageCreationStep.IncrementalDeployment"; -class CreateTarStepWidget : public SimpleBuildStepConfigWidget +class CreateTarStepWidget : public BuildStepConfigWidget { Q_OBJECT public: - CreateTarStepWidget(TarPackageCreationStep *step) : SimpleBuildStepConfigWidget(step) + CreateTarStepWidget(TarPackageCreationStep *step) : BuildStepConfigWidget(step) { - setShowWidget(true); - m_ignoreMissingFilesCheckBox.setText(tr("Ignore missing files")); m_incrementalDeploymentCheckBox.setText(tr("Package modified files only")); diff --git a/src/plugins/remotelinux/uploadandinstalltarpackagestep.cpp b/src/plugins/remotelinux/uploadandinstalltarpackagestep.cpp index a2b00a3f490..96a68e62c44 100644 --- a/src/plugins/remotelinux/uploadandinstalltarpackagestep.cpp +++ b/src/plugins/remotelinux/uploadandinstalltarpackagestep.cpp @@ -83,7 +83,7 @@ bool UploadAndInstallTarPackageStep::initInternal(QString *error) BuildStepConfigWidget *UploadAndInstallTarPackageStep::createConfigWidget() { - return new SimpleBuildStepConfigWidget(this); + return new BuildStepConfigWidget(this, false); } Core::Id UploadAndInstallTarPackageStep::stepId() diff --git a/src/plugins/winrt/winrtpackagedeploymentstepwidget.cpp b/src/plugins/winrt/winrtpackagedeploymentstepwidget.cpp index c7198717b5d..7f75bdf3478 100644 --- a/src/plugins/winrt/winrtpackagedeploymentstepwidget.cpp +++ b/src/plugins/winrt/winrtpackagedeploymentstepwidget.cpp @@ -32,7 +32,8 @@ namespace WinRt { namespace Internal { WinRtPackageDeploymentStepWidget::WinRtPackageDeploymentStepWidget(WinRtPackageDeploymentStep *step) - : m_ui(new Ui::WinRtPackageDeploymentStepWidget) + : BuildStepConfigWidget(step) + , m_ui(new Ui::WinRtPackageDeploymentStepWidget) , m_step(step) { m_ui->setupUi(this);