From 61c8a93522be5148d0104223a1278cc514d4bca4 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 14 Aug 2020 08:57:23 +0200 Subject: [PATCH] ProjectExplorer: Use new AspectContainer and TextDisplay ... as replacement for OverrideMakeflagsAspect. Change-Id: Id8a3ccde7bf3b7c62679e927a82ce7d6acd37e66 Reviewed-by: Christian Stenger --- src/plugins/projectexplorer/makestep.cpp | 56 +++++++----------------- src/plugins/projectexplorer/makestep.h | 11 ++--- 2 files changed, 23 insertions(+), 44 deletions(-) diff --git a/src/plugins/projectexplorer/makestep.cpp b/src/plugins/projectexplorer/makestep.cpp index 698d8dc069a..d698e6f41ee 100644 --- a/src/plugins/projectexplorer/makestep.cpp +++ b/src/plugins/projectexplorer/makestep.cpp @@ -67,37 +67,6 @@ const char MAKEFLAGS[] = "MAKEFLAGS"; namespace ProjectExplorer { namespace Internal { -class OverrideMakeflagsAspect final : public BoolAspect -{ -public: - OverrideMakeflagsAspect() {} - - void setWarningVisible(bool on) - { - if (m_nonOverrideWarning) - m_nonOverrideWarning->setVisible(on); - } - - void addToLayout(LayoutBuilder &builder) final - { - if (!m_nonOverrideWarning) { - const QString text = tr("Override MAKEFLAGS"); - setLabel(text, LabelPlacement::AtCheckBox); - m_nonOverrideWarning = new QLabel; - m_nonOverrideWarning->setToolTip("

" + - tr("MAKEFLAGS specifies parallel jobs. Check \"%1\" to override.") - .arg(text) + "

"); - m_nonOverrideWarning->setPixmap(Icons::WARNING.pixmap()); - } - - BoolAspect::addToLayout(builder); - builder.addItem(m_nonOverrideWarning.data()); - } - -private: - QPointer m_nonOverrideWarning; -}; - class MakeStepConfigWidget : public BuildStepConfigWidget { Q_DECLARE_TR_FUNCTIONS(ProjectExplorer::MakeStep) @@ -123,10 +92,9 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) m_disableInSubDirsCheckBox->setToolTip(tr("Runs this step only for a top-level build.")); LayoutBuilder builder(this); - makeStep->m_makeCommandAspect->addToLayout(builder.startNewRow()); - makeStep->m_userArgumentsAspect->addToLayout(builder.startNewRow()); - makeStep->m_userJobCountAspect->addToLayout(builder.startNewRow()); - makeStep->m_overrideMakeflagsAspect->addToLayout(builder); + builder.addRow(makeStep->m_makeCommandAspect); + builder.addRow(makeStep->m_userArgumentsAspect); + builder.addRow(makeStep->m_jobCountContainer); builder.startNewRow().addItems(disableInSubDirsLabel, m_disableInSubDirsCheckBox); builder.startNewRow().addItems(m_targetsLabel, m_targetsList); @@ -174,15 +142,25 @@ MakeStep::MakeStep(BuildStepList *parent, Utils::Id id) m_userArgumentsAspect->setLabelText(tr("Make arguments:")); m_userArgumentsAspect->setDisplayStyle(StringAspect::LineEditDisplay); - m_userJobCountAspect = addAspect(); + m_jobCountContainer = addAspect(); + + m_userJobCountAspect = m_jobCountContainer->addAspect(); m_userJobCountAspect->setSettingsKey(id.withSuffix(JOBCOUNT_SUFFIX).toString()); m_userJobCountAspect->setLabel(tr("Parallel jobs:")); m_userJobCountAspect->setRange(1, 999); m_userJobCountAspect->setValue(defaultJobCount()); m_userJobCountAspect->setDefaultValue(defaultJobCount()); - m_overrideMakeflagsAspect = addAspect(); + const QString text = tr("Override MAKEFLAGS"); + m_overrideMakeflagsAspect = m_jobCountContainer->addAspect(); m_overrideMakeflagsAspect->setSettingsKey(id.withSuffix(OVERRIDE_MAKEFLAGS_SUFFIX).toString()); + m_overrideMakeflagsAspect->setLabel(text, BoolAspect::LabelPlacement::AtCheckBox); + + m_nonOverrideWarning = m_jobCountContainer->addAspect(); + m_nonOverrideWarning->setToolTip("

" + + tr("MAKEFLAGS specifies parallel jobs. Check \"%1\" to override.") + .arg(text) + "

"); + m_nonOverrideWarning->setIconType(InfoLabel::Warning); m_cleanAspect = addAspect(); m_cleanAspect->setSettingsKey(id.withSuffix(CLEAN_SUFFIX).toString()); @@ -475,8 +453,8 @@ BuildStepConfigWidget *MakeStep::createConfigWidget() const bool jobCountEnabled = !userArgsContainsJobCount(); m_userJobCountAspect->setEnabled(jobCountEnabled); m_overrideMakeflagsAspect->setEnabled(jobCountEnabled); - m_overrideMakeflagsAspect->setWarningVisible(makeflagsJobCountMismatch() - && !jobCountOverridesMakeflags()); + m_nonOverrideWarning->setVisible(makeflagsJobCountMismatch() + && !jobCountOverridesMakeflags()); widget->m_disableInSubDirsCheckBox->setChecked(!enabledForSubDirs()); widget->recreateSummary(); diff --git a/src/plugins/projectexplorer/makestep.h b/src/plugins/projectexplorer/makestep.h index be04787f07e..1b924c80f88 100644 --- a/src/plugins/projectexplorer/makestep.h +++ b/src/plugins/projectexplorer/makestep.h @@ -33,15 +33,14 @@ namespace Utils { class Environment; } namespace ProjectExplorer { -namespace Internal { -class MakeStepConfigWidget; -class OverrideMakeflagsAspect; -} // Internal +namespace Internal { class MakeStepConfigWidget; } +class AspectContainer; class BoolAspect; class IntegerAspect; class StringAspect; class StringListAspect; +class TextDisplay; class PROJECTEXPLORER_EXPORT MakeStep : public ProjectExplorer::AbstractProcessStep { @@ -106,8 +105,10 @@ private: QStringList m_availableTargets; StringAspect *m_makeCommandAspect = nullptr; StringAspect *m_userArgumentsAspect = nullptr; + AspectContainer *m_jobCountContainer = nullptr; IntegerAspect *m_userJobCountAspect = nullptr; - Internal::OverrideMakeflagsAspect *m_overrideMakeflagsAspect = nullptr; + BoolAspect *m_overrideMakeflagsAspect = nullptr; + TextDisplay *m_nonOverrideWarning = nullptr; BoolAspect *m_cleanAspect = nullptr; bool m_disablingForSubDirsSupported = false; bool m_enabledForSubDirs = true;