ProjectExplorer: Merge SimpleBuildStepWidget into BuildStepWidget

The extra m_step member is not worth the abstraction, especially
since almost all non-SimpleBuildStepWidget have something similar,
too. Also, as several derived classes needed to correct
SimpleBuildStepWidget's setShowWidget(false).

Change-Id: I6e80d8c84c363b90dc27c70abd7fa6cefa1ed91e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2018-09-20 11:19:41 +02:00
parent 51562b55e4
commit cbb98bedcf
29 changed files with 59 additions and 76 deletions

View File

@@ -57,7 +57,7 @@ namespace Android {
namespace Internal { namespace Internal {
AndroidBuildApkInnerWidget::AndroidBuildApkInnerWidget(AndroidBuildApkStep *step) AndroidBuildApkInnerWidget::AndroidBuildApkInnerWidget(AndroidBuildApkStep *step)
: ProjectExplorer::BuildStepConfigWidget(), : ProjectExplorer::BuildStepConfigWidget(step),
m_ui(new Ui::AndroidBuildApkWidget), m_ui(new Ui::AndroidBuildApkWidget),
m_step(step) m_step(step)
{ {
@@ -230,6 +230,7 @@ void AndroidBuildApkInnerWidget::updateSigningWarning()
// AndroidBuildApkWidget // AndroidBuildApkWidget
AndroidBuildApkWidget::AndroidBuildApkWidget(AndroidBuildApkStep *step) : AndroidBuildApkWidget::AndroidBuildApkWidget(AndroidBuildApkStep *step) :
BuildStepConfigWidget(step),
m_step(step) m_step(step)
{ {
m_extraLibraryListModel = new AndroidExtraLibraryListModel(m_step->target(), this); m_extraLibraryListModel = new AndroidExtraLibraryListModel(m_step->target(), this);

View File

@@ -36,7 +36,7 @@ using namespace Android;
using namespace Internal; using namespace Internal;
AndroidDeployQtWidget::AndroidDeployQtWidget(AndroidDeployQtStep *step) AndroidDeployQtWidget::AndroidDeployQtWidget(AndroidDeployQtStep *step)
: ProjectExplorer::BuildStepConfigWidget(), : ProjectExplorer::BuildStepConfigWidget(step),
m_ui(new Ui::AndroidDeployQtWidget), m_ui(new Ui::AndroidDeployQtWidget),
m_step(step) m_step(step)
{ {

View File

@@ -126,9 +126,8 @@ bool AndroidPackageInstallationStep::immutable() const
namespace Internal { namespace Internal {
AndroidPackageInstallationStepWidget::AndroidPackageInstallationStepWidget(AndroidPackageInstallationStep *step) AndroidPackageInstallationStepWidget::AndroidPackageInstallationStepWidget(AndroidPackageInstallationStep *step)
: m_step(step) : BuildStepConfigWidget(step, false)
{ {
setShowWidget(false);
} }
QString AndroidPackageInstallationStepWidget::summaryText() const QString AndroidPackageInstallationStepWidget::summaryText() const

View File

@@ -61,8 +61,6 @@ public:
QString summaryText() const override; QString summaryText() const override;
QString displayName() const override; QString displayName() const override;
private:
AndroidPackageInstallationStep *m_step;
}; };
class AndroidPackageInstallationFactory: public ProjectExplorer::BuildStepFactory class AndroidPackageInstallationFactory: public ProjectExplorer::BuildStepFactory

View File

@@ -156,6 +156,7 @@ bool AutogenStep::fromMap(const QVariantMap &map)
// AutogenStepConfigWidget class // AutogenStepConfigWidget class
////////////////////////////////// //////////////////////////////////
AutogenStepConfigWidget::AutogenStepConfigWidget(AutogenStep *autogenStep) : AutogenStepConfigWidget::AutogenStepConfigWidget(AutogenStep *autogenStep) :
BuildStepConfigWidget(autogenStep),
m_autogenStep(autogenStep), m_autogenStep(autogenStep),
m_additionalArguments(new QLineEdit) m_additionalArguments(new QLineEdit)
{ {

View File

@@ -149,6 +149,7 @@ bool AutoreconfStep::fromMap(const QVariantMap &map)
// AutoreconfStepConfigWidget class // AutoreconfStepConfigWidget class
////////////////////////////////////// //////////////////////////////////////
AutoreconfStepConfigWidget::AutoreconfStepConfigWidget(AutoreconfStep *autoreconfStep) : AutoreconfStepConfigWidget::AutoreconfStepConfigWidget(AutoreconfStep *autoreconfStep) :
BuildStepConfigWidget(autoreconfStep),
m_autoreconfStep(autoreconfStep), m_autoreconfStep(autoreconfStep),
m_additionalArguments(new QLineEdit(this)) m_additionalArguments(new QLineEdit(this))
{ {

View File

@@ -172,6 +172,7 @@ bool ConfigureStep::fromMap(const QVariantMap &map)
// ConfigureStepConfigWidget class // ConfigureStepConfigWidget class
///////////////////////////////////// /////////////////////////////////////
ConfigureStepConfigWidget::ConfigureStepConfigWidget(ConfigureStep *configureStep) : ConfigureStepConfigWidget::ConfigureStepConfigWidget(ConfigureStep *configureStep) :
BuildStepConfigWidget(configureStep),
m_configureStep(configureStep), m_configureStep(configureStep),
m_additionalArguments(new QLineEdit) m_additionalArguments(new QLineEdit)
{ {

View File

@@ -35,7 +35,7 @@ namespace Internal {
const char GdbCommandsKey[] = "BareMetal.GdbCommandsStep.Commands"; const char GdbCommandsKey[] = "BareMetal.GdbCommandsStep.Commands";
BareMetalGdbCommandsDeployStepWidget::BareMetalGdbCommandsDeployStepWidget(BareMetalGdbCommandsDeployStep &step) BareMetalGdbCommandsDeployStepWidget::BareMetalGdbCommandsDeployStepWidget(BareMetalGdbCommandsDeployStep &step)
: m_step(step) : BuildStepConfigWidget(&step), m_step(step)
{ {
QFormLayout *fl = new QFormLayout(this); QFormLayout *fl = new QFormLayout(this);
fl->setMargin(0); fl->setMargin(0);

View File

@@ -410,6 +410,7 @@ QStringList CMakeBuildStep::specialTargets()
// //
CMakeBuildStepConfigWidget::CMakeBuildStepConfigWidget(CMakeBuildStep *buildStep) : CMakeBuildStepConfigWidget::CMakeBuildStepConfigWidget(CMakeBuildStep *buildStep) :
BuildStepConfigWidget(buildStep),
m_buildStep(buildStep), m_buildStep(buildStep),
m_toolArguments(new QLineEdit), m_toolArguments(new QLineEdit),
m_buildTargetsList(new QListWidget) m_buildTargetsList(new QListWidget)

View File

@@ -206,7 +206,7 @@ QStringList IosBuildStep::baseArguments() const
// //
IosBuildStepConfigWidget::IosBuildStepConfigWidget(IosBuildStep *buildStep) IosBuildStepConfigWidget::IosBuildStepConfigWidget(IosBuildStep *buildStep)
: m_buildStep(buildStep) : BuildStepConfigWidget(buildStep), m_buildStep(buildStep)
{ {
m_ui = new Ui::IosBuildStep; m_ui = new Ui::IosBuildStep;
m_ui->setupUi(this); m_ui->setupUi(this);

View File

@@ -31,13 +31,11 @@
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <QFileDialog>
namespace Ios { namespace Ios {
namespace Internal { namespace Internal {
IosDeployStepWidget::IosDeployStepWidget(IosDeployStep *step) : IosDeployStepWidget::IosDeployStepWidget(IosDeployStep *step) :
ProjectExplorer::BuildStepConfigWidget(), ProjectExplorer::BuildStepConfigWidget(step),
ui(new Ui::IosDeployStepWidget), ui(new Ui::IosDeployStepWidget),
m_step(step) m_step(step)
{ {

View File

@@ -227,7 +227,7 @@ QStringList IosDsymBuildStep::arguments() const
// //
IosDsymBuildStepConfigWidget::IosDsymBuildStepConfigWidget(IosDsymBuildStep *buildStep) IosDsymBuildStepConfigWidget::IosDsymBuildStepConfigWidget(IosDsymBuildStep *buildStep)
: m_buildStep(buildStep) : BuildStepConfigWidget(buildStep), m_buildStep(buildStep)
{ {
m_ui = new Ui::IosPresetBuildStep; m_ui = new Ui::IosPresetBuildStep;
m_ui->setupUi(this); m_ui->setupUi(this);

View File

@@ -39,7 +39,7 @@ using namespace Utils;
namespace Nim { namespace Nim {
NimCompilerBuildStepConfigWidget::NimCompilerBuildStepConfigWidget(NimCompilerBuildStep *buildStep) NimCompilerBuildStepConfigWidget::NimCompilerBuildStepConfigWidget(NimCompilerBuildStep *buildStep)
: BuildStepConfigWidget() : BuildStepConfigWidget(buildStep)
, m_buildStep(buildStep) , m_buildStep(buildStep)
, m_ui(new Ui::NimCompilerBuildStepConfigWidget()) , m_ui(new Ui::NimCompilerBuildStepConfigWidget())
{ {

View File

@@ -36,8 +36,7 @@ using namespace ProjectExplorer;
namespace Nim { namespace Nim {
NimCompilerCleanStepConfigWidget::NimCompilerCleanStepConfigWidget(NimCompilerCleanStep *cleanStep) NimCompilerCleanStepConfigWidget::NimCompilerCleanStepConfigWidget(NimCompilerCleanStep *cleanStep)
: BuildStepConfigWidget() : BuildStepConfigWidget(cleanStep)
, m_cleanStep(cleanStep)
, m_ui(new Ui::NimCompilerCleanStepConfigWidget()) , m_ui(new Ui::NimCompilerCleanStepConfigWidget())
{ {
m_ui->setupUi(this); m_ui->setupUi(this);
@@ -60,7 +59,7 @@ QString NimCompilerCleanStepConfigWidget::displayName() const
void NimCompilerCleanStepConfigWidget::updateUi() void NimCompilerCleanStepConfigWidget::updateUi()
{ {
auto buildDiretory = m_cleanStep->buildConfiguration()->buildDirectory(); auto buildDiretory = step()->buildConfiguration()->buildDirectory();
m_ui->workingDirectoryLineEdit->setText(buildDiretory.toString()); m_ui->workingDirectoryLineEdit->setText(buildDiretory.toString());
} }

View File

@@ -49,7 +49,6 @@ public:
private: private:
void updateUi(); void updateUi();
NimCompilerCleanStep *m_cleanStep;
QScopedPointer<Ui::NimCompilerCleanStepConfigWidget> m_ui; QScopedPointer<Ui::NimCompilerCleanStepConfigWidget> m_ui;
}; };

View File

@@ -127,27 +127,9 @@ BuildStep::BuildStep(BuildStepList *bsl, Core::Id id) :
expander->registerSubProvider([this] { return projectConfiguration()->macroExpander(); }); 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 "<b>" + displayName() + "</b>"; }
QString displayName() const override { return m_step->displayName(); }
BuildStep *step() const { return m_step; }
private:
BuildStep *m_step;
};
BuildStepConfigWidget *BuildStep::createConfigWidget() BuildStepConfigWidget *BuildStep::createConfigWidget()
{ {
auto widget = new ConfigWidget(this); auto widget = new BuildStepConfigWidget(this, true);
auto formLayout = new QFormLayout(widget); auto formLayout = new QFormLayout(widget);
formLayout->setMargin(0); formLayout->setMargin(0);
@@ -381,4 +363,23 @@ BuildStep *BuildStepFactory::restore(BuildStepList *parent, const QVariantMap &m
return bs; 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 "<b>" + displayName() + "</b>";
}
QString BuildStepConfigWidget::displayName() const
{
return m_step->displayName();
}
} // ProjectExplorer } // ProjectExplorer

View File

@@ -171,38 +171,22 @@ class PROJECTEXPLORER_EXPORT BuildStepConfigWidget : public QWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
virtual QString summaryText() const = 0; BuildStepConfigWidget(BuildStep *step, bool showWidget = true);
virtual QString additionalSummaryText() const { return QString(); }
virtual QString displayName() const = 0;
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; } bool showWidget() const { return m_showWidget; }
void setShowWidget(bool showWidget) { m_showWidget = showWidget; }
signals: signals:
void updateSummary(); void updateSummary();
void updateAdditionalSummary(); void updateAdditionalSummary();
private: private:
bool m_showWidget = true; BuildStep *m_step = nullptr;
}; const 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("<b>") + displayName() + QLatin1String("</b>"); }
QString displayName() const override { return m_step->displayName(); }
BuildStep *step() const { return m_step; }
private:
BuildStep *m_step;
}; };
} // namespace ProjectExplorer } // namespace ProjectExplorer

View File

@@ -84,7 +84,7 @@ void DeviceCheckBuildStep::run(QFutureInterface<bool> &fi)
BuildStepConfigWidget *DeviceCheckBuildStep::createConfigWidget() BuildStepConfigWidget *DeviceCheckBuildStep::createConfigWidget()
{ {
return new SimpleBuildStepConfigWidget(this); return new BuildStepConfigWidget(this, false);
} }
Core::Id DeviceCheckBuildStep::stepId() Core::Id DeviceCheckBuildStep::stepId()

View File

@@ -331,8 +331,8 @@ QStringList MakeStep::availableTargets() const
// GenericMakeStepConfigWidget // GenericMakeStepConfigWidget
// //
MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) : MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep)
m_makeStep(makeStep) : BuildStepConfigWidget(makeStep), m_makeStep(makeStep)
{ {
m_ui = new Internal::Ui::MakeStep; m_ui = new Internal::Ui::MakeStep;
m_ui->setupUi(this); m_ui->setupUi(this);

View File

@@ -152,8 +152,8 @@ ProcessStepFactory::ProcessStepFactory()
// ProcessStepConfigWidget // ProcessStepConfigWidget
//******* //*******
ProcessStepConfigWidget::ProcessStepConfigWidget(ProcessStep *step) : ProcessStepConfigWidget::ProcessStepConfigWidget(ProcessStep *step)
m_step(step) : BuildStepConfigWidget(step), m_step(step)
{ {
m_ui.setupUi(this); m_ui.setupUi(this);
m_ui.command->setExpectedKind(Utils::PathChooser::Command); m_ui.command->setExpectedKind(Utils::PathChooser::Command);

View File

@@ -534,6 +534,7 @@ QbsProject *QbsBuildStep::qbsProject() const
// -------------------------------------------------------------------- // --------------------------------------------------------------------
QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) : QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) :
BuildStepConfigWidget(step),
m_step(step), m_step(step),
m_ignoreChange(false) m_ignoreChange(false)
{ {

View File

@@ -220,7 +220,7 @@ void QbsCleanStep::setMaxJobs(int jobcount)
// -------------------------------------------------------------------- // --------------------------------------------------------------------
QbsCleanStepConfigWidget::QbsCleanStepConfigWidget(QbsCleanStep *step) : QbsCleanStepConfigWidget::QbsCleanStepConfigWidget(QbsCleanStep *step) :
m_step(step) BuildStepConfigWidget(step), m_step(step)
{ {
connect(m_step, &ProjectExplorer::ProjectConfiguration::displayNameChanged, connect(m_step, &ProjectExplorer::ProjectConfiguration::displayNameChanged,
this, &QbsCleanStepConfigWidget::updateState); this, &QbsCleanStepConfigWidget::updateState);

View File

@@ -251,7 +251,7 @@ void QbsInstallStep::handleBuildConfigChanged()
// -------------------------------------------------------------------- // --------------------------------------------------------------------
QbsInstallStepConfigWidget::QbsInstallStepConfigWidget(QbsInstallStep *step) : QbsInstallStepConfigWidget::QbsInstallStepConfigWidget(QbsInstallStep *step) :
m_step(step), m_ignoreChange(false) BuildStepConfigWidget(step), m_step(step), m_ignoreChange(false)
{ {
connect(m_step, &ProjectExplorer::ProjectConfiguration::displayNameChanged, connect(m_step, &ProjectExplorer::ProjectConfiguration::displayNameChanged,
this, &QbsInstallStepConfigWidget::updateState); this, &QbsInstallStepConfigWidget::updateState);

View File

@@ -555,7 +555,7 @@ bool QMakeStep::fromMap(const QVariantMap &map)
//// ////
QMakeStepConfigWidget::QMakeStepConfigWidget(QMakeStep *step) 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); m_ui->setupUi(this);

View File

@@ -112,7 +112,7 @@ void AbstractRemoteLinuxDeployStep::cancel()
BuildStepConfigWidget *AbstractRemoteLinuxDeployStep::createConfigWidget() BuildStepConfigWidget *AbstractRemoteLinuxDeployStep::createConfigWidget()
{ {
return new SimpleBuildStepConfigWidget(this); return new BuildStepConfigWidget(this, false);
} }
RemoteLinuxDeployConfiguration *AbstractRemoteLinuxDeployStep::deployConfiguration() const RemoteLinuxDeployConfiguration *AbstractRemoteLinuxDeployStep::deployConfiguration() const

View File

@@ -43,7 +43,7 @@ class RemoteLinuxCheckForFreeDiskSpaceStepWidget : public BuildStepConfigWidget
public: public:
explicit RemoteLinuxCheckForFreeDiskSpaceStepWidget(RemoteLinuxCheckForFreeDiskSpaceStep &step) explicit RemoteLinuxCheckForFreeDiskSpaceStepWidget(RemoteLinuxCheckForFreeDiskSpaceStep &step)
: m_step(step) : BuildStepConfigWidget(&step), m_step(step)
{ {
m_ui.setupUi(this); m_ui.setupUi(this);
m_ui.requiredSpaceSpinBox->setSuffix(tr("MB")); m_ui.requiredSpaceSpinBox->setSuffix(tr("MB"));

View File

@@ -50,14 +50,12 @@ namespace {
const char IgnoreMissingFilesKey[] = "RemoteLinux.TarPackageCreationStep.IgnoreMissingFiles"; const char IgnoreMissingFilesKey[] = "RemoteLinux.TarPackageCreationStep.IgnoreMissingFiles";
const char IncrementalDeploymentKey[] = "RemoteLinux.TarPackageCreationStep.IncrementalDeployment"; const char IncrementalDeploymentKey[] = "RemoteLinux.TarPackageCreationStep.IncrementalDeployment";
class CreateTarStepWidget : public SimpleBuildStepConfigWidget class CreateTarStepWidget : public BuildStepConfigWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
CreateTarStepWidget(TarPackageCreationStep *step) : SimpleBuildStepConfigWidget(step) CreateTarStepWidget(TarPackageCreationStep *step) : BuildStepConfigWidget(step)
{ {
setShowWidget(true);
m_ignoreMissingFilesCheckBox.setText(tr("Ignore missing files")); m_ignoreMissingFilesCheckBox.setText(tr("Ignore missing files"));
m_incrementalDeploymentCheckBox.setText(tr("Package modified files only")); m_incrementalDeploymentCheckBox.setText(tr("Package modified files only"));

View File

@@ -83,7 +83,7 @@ bool UploadAndInstallTarPackageStep::initInternal(QString *error)
BuildStepConfigWidget *UploadAndInstallTarPackageStep::createConfigWidget() BuildStepConfigWidget *UploadAndInstallTarPackageStep::createConfigWidget()
{ {
return new SimpleBuildStepConfigWidget(this); return new BuildStepConfigWidget(this, false);
} }
Core::Id UploadAndInstallTarPackageStep::stepId() Core::Id UploadAndInstallTarPackageStep::stepId()

View File

@@ -32,7 +32,8 @@ namespace WinRt {
namespace Internal { namespace Internal {
WinRtPackageDeploymentStepWidget::WinRtPackageDeploymentStepWidget(WinRtPackageDeploymentStep *step) WinRtPackageDeploymentStepWidget::WinRtPackageDeploymentStepWidget(WinRtPackageDeploymentStep *step)
: m_ui(new Ui::WinRtPackageDeploymentStepWidget) : BuildStepConfigWidget(step)
, m_ui(new Ui::WinRtPackageDeploymentStepWidget)
, m_step(step) , m_step(step)
{ {
m_ui->setupUi(this); m_ui->setupUi(this);