forked from qt-creator/qt-creator
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:
@@ -67,37 +67,6 @@ const char MAKEFLAGS[] = "MAKEFLAGS";
|
|||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
namespace Internal {
|
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
|
class MakeStepConfigWidget : public BuildStepConfigWidget
|
||||||
{
|
{
|
||||||
Q_DECLARE_TR_FUNCTIONS(ProjectExplorer::MakeStep)
|
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."));
|
m_disableInSubDirsCheckBox->setToolTip(tr("Runs this step only for a top-level build."));
|
||||||
|
|
||||||
LayoutBuilder builder(this);
|
LayoutBuilder builder(this);
|
||||||
makeStep->m_makeCommandAspect->addToLayout(builder.startNewRow());
|
builder.addRow(makeStep->m_makeCommandAspect);
|
||||||
makeStep->m_userArgumentsAspect->addToLayout(builder.startNewRow());
|
builder.addRow(makeStep->m_userArgumentsAspect);
|
||||||
makeStep->m_userJobCountAspect->addToLayout(builder.startNewRow());
|
builder.addRow(makeStep->m_jobCountContainer);
|
||||||
makeStep->m_overrideMakeflagsAspect->addToLayout(builder);
|
|
||||||
builder.startNewRow().addItems(disableInSubDirsLabel, m_disableInSubDirsCheckBox);
|
builder.startNewRow().addItems(disableInSubDirsLabel, m_disableInSubDirsCheckBox);
|
||||||
builder.startNewRow().addItems(m_targetsLabel, m_targetsList);
|
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->setLabelText(tr("Make arguments:"));
|
||||||
m_userArgumentsAspect->setDisplayStyle(StringAspect::LineEditDisplay);
|
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->setSettingsKey(id.withSuffix(JOBCOUNT_SUFFIX).toString());
|
||||||
m_userJobCountAspect->setLabel(tr("Parallel jobs:"));
|
m_userJobCountAspect->setLabel(tr("Parallel jobs:"));
|
||||||
m_userJobCountAspect->setRange(1, 999);
|
m_userJobCountAspect->setRange(1, 999);
|
||||||
m_userJobCountAspect->setValue(defaultJobCount());
|
m_userJobCountAspect->setValue(defaultJobCount());
|
||||||
m_userJobCountAspect->setDefaultValue(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->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 = addAspect<BoolAspect>();
|
||||||
m_cleanAspect->setSettingsKey(id.withSuffix(CLEAN_SUFFIX).toString());
|
m_cleanAspect->setSettingsKey(id.withSuffix(CLEAN_SUFFIX).toString());
|
||||||
@@ -475,8 +453,8 @@ BuildStepConfigWidget *MakeStep::createConfigWidget()
|
|||||||
const bool jobCountEnabled = !userArgsContainsJobCount();
|
const bool jobCountEnabled = !userArgsContainsJobCount();
|
||||||
m_userJobCountAspect->setEnabled(jobCountEnabled);
|
m_userJobCountAspect->setEnabled(jobCountEnabled);
|
||||||
m_overrideMakeflagsAspect->setEnabled(jobCountEnabled);
|
m_overrideMakeflagsAspect->setEnabled(jobCountEnabled);
|
||||||
m_overrideMakeflagsAspect->setWarningVisible(makeflagsJobCountMismatch()
|
m_nonOverrideWarning->setVisible(makeflagsJobCountMismatch()
|
||||||
&& !jobCountOverridesMakeflags());
|
&& !jobCountOverridesMakeflags());
|
||||||
widget->m_disableInSubDirsCheckBox->setChecked(!enabledForSubDirs());
|
widget->m_disableInSubDirsCheckBox->setChecked(!enabledForSubDirs());
|
||||||
|
|
||||||
widget->recreateSummary();
|
widget->recreateSummary();
|
||||||
|
@@ -33,15 +33,14 @@ namespace Utils { class Environment; }
|
|||||||
|
|
||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal { class MakeStepConfigWidget; }
|
||||||
class MakeStepConfigWidget;
|
|
||||||
class OverrideMakeflagsAspect;
|
|
||||||
} // Internal
|
|
||||||
|
|
||||||
|
class AspectContainer;
|
||||||
class BoolAspect;
|
class BoolAspect;
|
||||||
class IntegerAspect;
|
class IntegerAspect;
|
||||||
class StringAspect;
|
class StringAspect;
|
||||||
class StringListAspect;
|
class StringListAspect;
|
||||||
|
class TextDisplay;
|
||||||
|
|
||||||
class PROJECTEXPLORER_EXPORT MakeStep : public ProjectExplorer::AbstractProcessStep
|
class PROJECTEXPLORER_EXPORT MakeStep : public ProjectExplorer::AbstractProcessStep
|
||||||
{
|
{
|
||||||
@@ -106,8 +105,10 @@ private:
|
|||||||
QStringList m_availableTargets;
|
QStringList m_availableTargets;
|
||||||
StringAspect *m_makeCommandAspect = nullptr;
|
StringAspect *m_makeCommandAspect = nullptr;
|
||||||
StringAspect *m_userArgumentsAspect = nullptr;
|
StringAspect *m_userArgumentsAspect = nullptr;
|
||||||
|
AspectContainer *m_jobCountContainer = nullptr;
|
||||||
IntegerAspect *m_userJobCountAspect = nullptr;
|
IntegerAspect *m_userJobCountAspect = nullptr;
|
||||||
Internal::OverrideMakeflagsAspect *m_overrideMakeflagsAspect = nullptr;
|
BoolAspect *m_overrideMakeflagsAspect = nullptr;
|
||||||
|
TextDisplay *m_nonOverrideWarning = nullptr;
|
||||||
BoolAspect *m_cleanAspect = nullptr;
|
BoolAspect *m_cleanAspect = nullptr;
|
||||||
bool m_disablingForSubDirsSupported = false;
|
bool m_disablingForSubDirsSupported = false;
|
||||||
bool m_enabledForSubDirs = true;
|
bool m_enabledForSubDirs = true;
|
||||||
|
Reference in New Issue
Block a user