ProjectExplorer: Use new AspectContainer and TextDisplay

... as replacement for OverrideMakeflagsAspect.

Change-Id: Id8a3ccde7bf3b7c62679e927a82ce7d6acd37e66
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2020-08-14 08:57:23 +02:00
parent e6c750bd13
commit 61c8a93522
2 changed files with 23 additions and 44 deletions

View File

@@ -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("<html><body><p>" +
tr("<code>MAKEFLAGS</code> specifies parallel jobs. Check \"%1\" to override.")
.arg(text) + "</p></body></html>");
m_nonOverrideWarning->setPixmap(Icons::WARNING.pixmap());
}
BoolAspect::addToLayout(builder);
builder.addItem(m_nonOverrideWarning.data());
}
private:
QPointer<QLabel> 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<IntegerAspect>();
m_jobCountContainer = addAspect<AspectContainer>();
m_userJobCountAspect = m_jobCountContainer->addAspect<IntegerAspect>();
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<Internal::OverrideMakeflagsAspect>();
const QString text = tr("Override MAKEFLAGS");
m_overrideMakeflagsAspect = m_jobCountContainer->addAspect<BoolAspect>();
m_overrideMakeflagsAspect->setSettingsKey(id.withSuffix(OVERRIDE_MAKEFLAGS_SUFFIX).toString());
m_overrideMakeflagsAspect->setLabel(text, BoolAspect::LabelPlacement::AtCheckBox);
m_nonOverrideWarning = m_jobCountContainer->addAspect<TextDisplay>();
m_nonOverrideWarning->setToolTip("<html><body><p>" +
tr("<code>MAKEFLAGS</code> specifies parallel jobs. Check \"%1\" to override.")
.arg(text) + "</p></body></html>");
m_nonOverrideWarning->setIconType(InfoLabel::Warning);
m_cleanAspect = addAspect<BoolAspect>();
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();

View File

@@ -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;