ProjectExplorer: Use BuildStep member to decide on initial expansion

Previously, the build step implementation had the same power as it
decided on the widget to use, and the widget had such a member.

Change-Id: Id9c783e29610b68cfbbe2c9aa91da831d41c3286
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2018-10-19 17:40:33 +02:00
parent fb9865444d
commit 44a545bb2c
10 changed files with 25 additions and 30 deletions

View File

@@ -52,6 +52,7 @@ AndroidPackageInstallationStep::AndroidPackageInstallationStep(BuildStepList *bs
const QString name = tr("Copy application data"); const QString name = tr("Copy application data");
setDefaultDisplayName(name); setDefaultDisplayName(name);
setDisplayName(name); setDisplayName(name);
setWidgetExpandedByDefault(false);
} }
bool AndroidPackageInstallationStep::init(QList<const BuildStep *> &earlierSteps) bool AndroidPackageInstallationStep::init(QList<const BuildStep *> &earlierSteps)
@@ -126,7 +127,7 @@ bool AndroidPackageInstallationStep::immutable() const
namespace Internal { namespace Internal {
AndroidPackageInstallationStepWidget::AndroidPackageInstallationStepWidget(AndroidPackageInstallationStep *step) AndroidPackageInstallationStepWidget::AndroidPackageInstallationStepWidget(AndroidPackageInstallationStep *step)
: BuildStepConfigWidget(step, false) : BuildStepConfigWidget(step)
{ {
setDisplayName(tr("Make install")); setDisplayName(tr("Make install"));
setSummaryText("<b>" + tr("Make install") + "</b>"); setSummaryText("<b>" + tr("Make install") + "</b>");

View File

@@ -129,7 +129,7 @@ BuildStep::BuildStep(BuildStepList *bsl, Core::Id id) :
BuildStepConfigWidget *BuildStep::createConfigWidget() BuildStepConfigWidget *BuildStep::createConfigWidget()
{ {
auto widget = new BuildStepConfigWidget(this, true); auto widget = new BuildStepConfigWidget(this);
auto formLayout = new QFormLayout(widget); auto formLayout = new QFormLayout(widget);
formLayout->setMargin(0); formLayout->setMargin(0);
@@ -200,6 +200,16 @@ bool BuildStep::isActive() const
return projectConfiguration()->isActive(); return projectConfiguration()->isActive();
} }
bool BuildStep::widgetExpandedByDefault() const
{
return m_widgetExpandedByDefault;
}
void BuildStep::setWidgetExpandedByDefault(bool widgetExpandedByDefault)
{
m_widgetExpandedByDefault = widgetExpandedByDefault;
}
/*! /*!
If this function returns \c true, the user cannot delete this build step for If this function returns \c true, the user cannot delete this build step for
this target and the user is prevented from changing the order in which this target and the user is prevented from changing the order in which
@@ -365,8 +375,8 @@ BuildStep *BuildStepFactory::restore(BuildStepList *parent, const QVariantMap &m
// BuildStepConfigWidget // BuildStepConfigWidget
BuildStepConfigWidget::BuildStepConfigWidget(BuildStep *step, bool showWidget) BuildStepConfigWidget::BuildStepConfigWidget(BuildStep *step)
: m_step(step), m_showWidget(showWidget) : m_step(step)
{ {
m_displayName = step->displayName(); m_displayName = step->displayName();
m_summaryText = "<b>" + m_displayName + "</b>"; m_summaryText = "<b>" + m_displayName + "</b>";

View File

@@ -84,6 +84,9 @@ public:
bool isActive() const override; bool isActive() const override;
bool widgetExpandedByDefault() const;
void setWidgetExpandedByDefault(bool widgetExpandedByDefault);
signals: signals:
/// Adds a \p task to the Issues pane. /// Adds a \p task to the Issues pane.
/// Do note that for linking compile output with tasks, you should first emit the task /// Do note that for linking compile output with tasks, you should first emit the task
@@ -99,6 +102,7 @@ signals:
private: private:
bool m_enabled = true; bool m_enabled = true;
bool m_widgetExpandedByDefault = true;
}; };
class PROJECTEXPLORER_EXPORT BuildStepInfo class PROJECTEXPLORER_EXPORT BuildStepInfo
@@ -171,12 +175,11 @@ class PROJECTEXPLORER_EXPORT BuildStepConfigWidget : public QWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
BuildStepConfigWidget(BuildStep *step, bool showWidget = true); explicit BuildStepConfigWidget(BuildStep *step);
QString summaryText() const; QString summaryText() const;
QString displayName() const; QString displayName() const;
BuildStep *step() const { return m_step; } BuildStep *step() const { return m_step; }
bool showWidget() const { return m_showWidget; }
void setDisplayName(const QString &displayName); void setDisplayName(const QString &displayName);
void setSummaryText(const QString &summaryText); void setSummaryText(const QString &summaryText);
@@ -186,7 +189,6 @@ signals:
private: private:
BuildStep *m_step = nullptr; BuildStep *m_step = nullptr;
const bool m_showWidget = true;
QString m_displayName; QString m_displayName;
QString m_summaryText; QString m_summaryText;
}; };

View File

@@ -257,7 +257,7 @@ void BuildStepListWidget::init(BuildStepList *bsl)
for (int i = 0; i < bsl->count(); ++i) { for (int i = 0; i < bsl->count(); ++i) {
addBuildStep(i); addBuildStep(i);
// addBuilStep expands the config widget by default, which we don't want here // addBuilStep expands the config widget by default, which we don't want here
if (m_buildStepsData.at(i)->widget->showWidget()) if (m_buildStepsData.at(i)->step->widgetExpandedByDefault())
m_buildStepsData.at(i)->detailsWidget->setState(DetailsWidget::Collapsed); m_buildStepsData.at(i)->detailsWidget->setState(DetailsWidget::Collapsed);
} }
@@ -326,7 +326,7 @@ void BuildStepListWidget::addBuildStep(int pos)
addBuildStepWidget(pos, newStep); addBuildStepWidget(pos, newStep);
BuildStepsWidgetData *s = m_buildStepsData.at(pos); BuildStepsWidgetData *s = m_buildStepsData.at(pos);
// Expand new build steps by default // Expand new build steps by default
if (s->widget->showWidget()) if (newStep->widgetExpandedByDefault())
s->detailsWidget->setState(DetailsWidget::Expanded); s->detailsWidget->setState(DetailsWidget::Expanded);
else else
s->detailsWidget->setState(DetailsWidget::OnlySummary); s->detailsWidget->setState(DetailsWidget::OnlySummary);

View File

@@ -39,6 +39,7 @@ DeviceCheckBuildStep::DeviceCheckBuildStep(BuildStepList *bsl)
: BuildStep(bsl, stepId()) : BuildStep(bsl, stepId())
{ {
setDefaultDisplayName(displayName()); setDefaultDisplayName(displayName());
setWidgetExpandedByDefault(false);
} }
bool DeviceCheckBuildStep::init(QList<const BuildStep *> &earlierSteps) bool DeviceCheckBuildStep::init(QList<const BuildStep *> &earlierSteps)
@@ -82,11 +83,6 @@ void DeviceCheckBuildStep::run(QFutureInterface<bool> &fi)
reportRunResult(fi, true); reportRunResult(fi, true);
} }
BuildStepConfigWidget *DeviceCheckBuildStep::createConfigWidget()
{
return new BuildStepConfigWidget(this, false);
}
Core::Id DeviceCheckBuildStep::stepId() Core::Id DeviceCheckBuildStep::stepId()
{ {
return "ProjectExplorer.DeviceCheckBuildStep"; return "ProjectExplorer.DeviceCheckBuildStep";

View File

@@ -42,8 +42,6 @@ public:
void run(QFutureInterface<bool> &fi) override; void run(QFutureInterface<bool> &fi) override;
BuildStepConfigWidget *createConfigWidget() override;
static Core::Id stepId(); static Core::Id stepId();
static QString displayName(); static QString displayName();
}; };

View File

@@ -41,6 +41,7 @@ RemoteLinuxKillAppStep::RemoteLinuxKillAppStep(BuildStepList *bsl, Core::Id id)
: AbstractRemoteLinuxDeployStep(bsl, id), m_service(new RemoteLinuxKillAppService(this)) : AbstractRemoteLinuxDeployStep(bsl, id), m_service(new RemoteLinuxKillAppService(this))
{ {
setDefaultDisplayName(displayName()); setDefaultDisplayName(displayName());
setWidgetExpandedByDefault(false);
} }
bool RemoteLinuxKillAppStep::initInternal(QString *error) bool RemoteLinuxKillAppStep::initInternal(QString *error)
@@ -69,9 +70,4 @@ QString RemoteLinuxKillAppStep::displayName()
return tr("Kill current application instance"); return tr("Kill current application instance");
} }
BuildStepConfigWidget *RemoteLinuxKillAppStep::createConfigWidget()
{
return new BuildStepConfigWidget(this, false);
}
} // namespace RemoteLinux } // namespace RemoteLinux

View File

@@ -41,8 +41,6 @@ public:
static QString displayName(); static QString displayName();
private: private:
ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
bool initInternal(QString *error) override; bool initInternal(QString *error) override;
AbstractRemoteLinuxDeployService *deployService() const override; AbstractRemoteLinuxDeployService *deployService() const override;

View File

@@ -66,6 +66,7 @@ UploadAndInstallTarPackageStep::UploadAndInstallTarPackageStep(BuildStepList *bs
{ {
m_deployService = new UploadAndInstallTarPackageService(this); m_deployService = new UploadAndInstallTarPackageService(this);
setDefaultDisplayName(displayName()); setDefaultDisplayName(displayName());
setWidgetExpandedByDefault(false);
} }
bool UploadAndInstallTarPackageStep::initInternal(QString *error) bool UploadAndInstallTarPackageStep::initInternal(QString *error)
@@ -81,11 +82,6 @@ bool UploadAndInstallTarPackageStep::initInternal(QString *error)
return m_deployService->isDeploymentPossible(error); return m_deployService->isDeploymentPossible(error);
} }
BuildStepConfigWidget *UploadAndInstallTarPackageStep::createConfigWidget()
{
return new BuildStepConfigWidget(this, false);
}
Core::Id UploadAndInstallTarPackageStep::stepId() Core::Id UploadAndInstallTarPackageStep::stepId()
{ {
return "MaemoUploadAndInstallTarPackageStep"; return "MaemoUploadAndInstallTarPackageStep";

View File

@@ -57,8 +57,6 @@ public:
bool initInternal(QString *error = 0) override; bool initInternal(QString *error = 0) override;
ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
static Core::Id stepId(); static Core::Id stepId();
static QString displayName(); static QString displayName();