aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/autotoolsprojectmanager/configurestep.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2018-10-17 13:01:19 +0200
committerhjk <[email protected]>2018-10-22 09:01:59 +0000
commitb4849f20e3200ed2654fd82fd8eb70a1d13a8b4e (patch)
tree2253ea3f7cc045ef494a7ec49c1885c908d3d81d /src/plugins/autotoolsprojectmanager/configurestep.cpp
parent95db30bd3a5808890c03864a1da84d443cc8bf38 (diff)
AutoTools: Use aspects in build steps
Less code. And there's more room for consolidation. Change-Id: Iccdaf5570155ec2783b7cf6528d3887f6efd5dbb Reviewed-by: Christian Stenger <[email protected]>
Diffstat (limited to 'src/plugins/autotoolsprojectmanager/configurestep.cpp')
-rw-r--r--src/plugins/autotoolsprojectmanager/configurestep.cpp87
1 files changed, 24 insertions, 63 deletions
diff --git a/src/plugins/autotoolsprojectmanager/configurestep.cpp b/src/plugins/autotoolsprojectmanager/configurestep.cpp
index 88966567d45..f91c0067902 100644
--- a/src/plugins/autotoolsprojectmanager/configurestep.cpp
+++ b/src/plugins/autotoolsprojectmanager/configurestep.cpp
@@ -81,6 +81,12 @@ ConfigureStepFactory::ConfigureStepFactory()
ConfigureStep::ConfigureStep(BuildStepList *bsl) : AbstractProcessStep(bsl, CONFIGURE_STEP_ID)
{
setDefaultDisplayName(tr("Configure"));
+
+ m_additionalArgumentsAspect = addAspect<BaseStringAspect>();
+ m_additionalArgumentsAspect->setDisplayStyle(BaseStringAspect::LineEditDisplay);
+ m_additionalArgumentsAspect->setSettingsKey(CONFIGURE_ADDITIONAL_ARGUMENTS_KEY);
+ m_additionalArgumentsAspect->setLabelText(tr("Arguments:"));
+ m_additionalArgumentsAspect->setHistoryCompleter("AutotoolsPM.History.ConfigureArgs");
}
bool ConfigureStep::init(QList<const BuildStep *> &earlierSteps)
@@ -92,7 +98,7 @@ bool ConfigureStep::init(QList<const BuildStep *> &earlierSteps)
pp->setEnvironment(bc->environment());
pp->setWorkingDirectory(bc->buildDirectory().toString());
pp->setCommand(projectDirRelativeToBuildDir(bc) + "configure");
- pp->setArguments(additionalArguments());
+ pp->setArguments(m_additionalArgumentsAspect->value());
pp->resolveAll();
return AbstractProcessStep::init(earlierSteps);
@@ -124,86 +130,41 @@ void ConfigureStep::run(QFutureInterface<bool>& fi)
BuildStepConfigWidget *ConfigureStep::createConfigWidget()
{
- return new ConfigureStepConfigWidget(this);
-}
-
-bool ConfigureStep::immutable() const
-{
- return false;
-}
-
-void ConfigureStep::setAdditionalArguments(const QString &list)
-{
- if (list == m_additionalArguments)
- return;
-
- m_additionalArguments = list;
- m_runConfigure = true;
-
- emit additionalArgumentsChanged(list);
-}
-
-void ConfigureStep::notifyBuildDirectoryChanged()
-{
- emit buildDirectoryChanged();
-}
+ m_widget = AbstractProcessStep::createConfigWidget();
-QString ConfigureStep::additionalArguments() const
-{
- return m_additionalArguments;
-}
+ updateDetails();
-QVariantMap ConfigureStep::toMap() const
-{
- QVariantMap map = AbstractProcessStep::toMap();
+ connect(m_additionalArgumentsAspect, &ProjectConfigurationAspect::changed, this, [this] {
+ m_runConfigure = true;
+ updateDetails();
+ });
- map.insert(CONFIGURE_ADDITIONAL_ARGUMENTS_KEY, m_additionalArguments);
- return map;
+ return m_widget.data();
}
-bool ConfigureStep::fromMap(const QVariantMap &map)
+bool ConfigureStep::immutable() const
{
- m_additionalArguments = map.value(CONFIGURE_ADDITIONAL_ARGUMENTS_KEY).toString();
-
- return BuildStep::fromMap(map);
+ return false;
}
-/////////////////////////////////////
-// ConfigureStepConfigWidget class
-/////////////////////////////////////
-ConfigureStepConfigWidget::ConfigureStepConfigWidget(ConfigureStep *configureStep) :
- BuildStepConfigWidget(configureStep),
- m_configureStep(configureStep),
- m_additionalArguments(new QLineEdit)
+void ConfigureStep::notifyBuildDirectoryChanged()
{
- QFormLayout *fl = new QFormLayout(this);
- fl->setMargin(0);
- fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
- setLayout(fl);
-
- fl->addRow(tr("Arguments:"), m_additionalArguments);
- m_additionalArguments->setText(m_configureStep->additionalArguments());
-
updateDetails();
-
- connect(m_additionalArguments, &QLineEdit::textChanged,
- configureStep, &ConfigureStep::setAdditionalArguments);
- connect(configureStep, &ConfigureStep::additionalArgumentsChanged,
- this, &ConfigureStepConfigWidget::updateDetails);
- connect(configureStep, &ConfigureStep::buildDirectoryChanged,
- this, &ConfigureStepConfigWidget::updateDetails);
}
-void ConfigureStepConfigWidget::updateDetails()
+void ConfigureStep::updateDetails()
{
- BuildConfiguration *bc = m_configureStep->buildConfiguration();
+ if (!m_widget)
+ return;
+
+ BuildConfiguration *bc = buildConfiguration();
ProcessParameters param;
param.setMacroExpander(bc->macroExpander());
param.setEnvironment(bc->environment());
param.setWorkingDirectory(bc->buildDirectory().toString());
param.setCommand(projectDirRelativeToBuildDir(bc) + "configure");
- param.setArguments(m_configureStep->additionalArguments());
+ param.setArguments(m_additionalArgumentsAspect->value());
- setSummaryText(param.summaryInWorkdir(displayName()));
+ m_widget->setSummaryText(param.summaryInWorkdir(displayName()));
}