diff options
author | hjk <[email protected]> | 2018-10-17 13:01:19 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2018-10-22 09:01:59 +0000 |
commit | b4849f20e3200ed2654fd82fd8eb70a1d13a8b4e (patch) | |
tree | 2253ea3f7cc045ef494a7ec49c1885c908d3d81d /src/plugins/autotoolsprojectmanager/configurestep.cpp | |
parent | 95db30bd3a5808890c03864a1da84d443cc8bf38 (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.cpp | 87 |
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())); } |