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;