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");
setDefaultDisplayName(name);
setDisplayName(name);
setWidgetExpandedByDefault(false);
}
bool AndroidPackageInstallationStep::init(QList<const BuildStep *> &earlierSteps)
@@ -126,7 +127,7 @@ bool AndroidPackageInstallationStep::immutable() const
namespace Internal {
AndroidPackageInstallationStepWidget::AndroidPackageInstallationStepWidget(AndroidPackageInstallationStep *step)
: BuildStepConfigWidget(step, false)
: BuildStepConfigWidget(step)
{
setDisplayName(tr("Make install"));
setSummaryText("<b>" + tr("Make install") + "</b>");

View File

@@ -129,7 +129,7 @@ BuildStep::BuildStep(BuildStepList *bsl, Core::Id id) :
BuildStepConfigWidget *BuildStep::createConfigWidget()
{
auto widget = new BuildStepConfigWidget(this, true);
auto widget = new BuildStepConfigWidget(this);
auto formLayout = new QFormLayout(widget);
formLayout->setMargin(0);
@@ -200,6 +200,16 @@ bool BuildStep::isActive() const
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
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(BuildStep *step, bool showWidget)
: m_step(step), m_showWidget(showWidget)
BuildStepConfigWidget::BuildStepConfigWidget(BuildStep *step)
: m_step(step)
{
m_displayName = step->displayName();
m_summaryText = "<b>" + m_displayName + "</b>";

View File

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

View File

@@ -257,7 +257,7 @@ void BuildStepListWidget::init(BuildStepList *bsl)
for (int i = 0; i < bsl->count(); ++i) {
addBuildStep(i);
// 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);
}
@@ -326,7 +326,7 @@ void BuildStepListWidget::addBuildStep(int pos)
addBuildStepWidget(pos, newStep);
BuildStepsWidgetData *s = m_buildStepsData.at(pos);
// Expand new build steps by default
if (s->widget->showWidget())
if (newStep->widgetExpandedByDefault())
s->detailsWidget->setState(DetailsWidget::Expanded);
else
s->detailsWidget->setState(DetailsWidget::OnlySummary);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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