forked from qt-creator/qt-creator
Utils: Remove BaseAspect base from AspectContainer again
Turns out to get into the way more often than it helps, e.g. 'setAutoApply' operated on the base class' m_autoAspect flag instead of spreading it over the items in the container. Change-Id: I2711f2a488d1a6c30ec21d3fc481563cec6e55d4 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -41,7 +41,6 @@
|
|||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QFormLayout>
|
#include <QFormLayout>
|
||||||
#include <QGroupBox>
|
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QListWidget>
|
#include <QListWidget>
|
||||||
@@ -2018,8 +2017,6 @@ class AspectContainerPrivate
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QList<BaseAspect *> m_items; // Not owned
|
QList<BaseAspect *> m_items; // Not owned
|
||||||
|
|
||||||
QPointer<QGroupBox> m_groupBox; // Not owned, owned by configuration widget
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // Internal
|
} // Internal
|
||||||
@@ -2039,40 +2036,20 @@ AspectContainer::~AspectContainer() = default;
|
|||||||
void AspectContainer::registerAspect(BaseAspect *aspect)
|
void AspectContainer::registerAspect(BaseAspect *aspect)
|
||||||
{
|
{
|
||||||
d->m_items.append(aspect);
|
d->m_items.append(aspect);
|
||||||
connect(aspect, &BaseAspect::changed, this, &BaseAspect::changed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
void AspectContainer::registerAspects(const AspectContainer &aspects)
|
||||||
Adds all visible sub-aspects to \a builder.
|
|
||||||
*/
|
|
||||||
void AspectContainer::addToLayout(LayoutBuilder &builder)
|
|
||||||
{
|
{
|
||||||
if (!d->m_groupBox) {
|
for (BaseAspect *aspect : qAsConst(aspects.d->m_items))
|
||||||
d->m_groupBox = createSubWidget<QGroupBox>();
|
d->m_items.append(aspect);
|
||||||
d->m_groupBox->setTitle(displayName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LayoutBuilder innerBuilder(d->m_groupBox);
|
|
||||||
for (BaseAspect *aspect : qAsConst(d->m_items)) {
|
|
||||||
if (aspect->isVisible())
|
|
||||||
aspect->addToLayout(innerBuilder);
|
|
||||||
}
|
|
||||||
|
|
||||||
builder.addItem(d->m_groupBox.data());
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\reimp
|
|
||||||
*/
|
|
||||||
void AspectContainer::fromMap(const QVariantMap &map)
|
void AspectContainer::fromMap(const QVariantMap &map)
|
||||||
{
|
{
|
||||||
for (BaseAspect *aspect : qAsConst(d->m_items))
|
for (BaseAspect *aspect : qAsConst(d->m_items))
|
||||||
aspect->fromMap(map);
|
aspect->fromMap(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
\reimp
|
|
||||||
*/
|
|
||||||
void AspectContainer::toMap(QVariantMap &map) const
|
void AspectContainer::toMap(QVariantMap &map) const
|
||||||
{
|
{
|
||||||
for (BaseAspect *aspect : qAsConst(d->m_items))
|
for (BaseAspect *aspect : qAsConst(d->m_items))
|
||||||
|
@@ -506,13 +506,11 @@ private:
|
|||||||
std::unique_ptr<Internal::TextDisplayPrivate> d;
|
std::unique_ptr<Internal::TextDisplayPrivate> d;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QTCREATOR_UTILS_EXPORT AspectContainer : public BaseAspect
|
class QTCREATOR_UTILS_EXPORT AspectContainer
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AspectContainer();
|
AspectContainer();
|
||||||
~AspectContainer() override;
|
~AspectContainer();
|
||||||
|
|
||||||
template <class Aspect, typename ...Args>
|
template <class Aspect, typename ...Args>
|
||||||
Aspect *addAspect(Args && ...args)
|
Aspect *addAspect(Args && ...args)
|
||||||
@@ -522,18 +520,17 @@ public:
|
|||||||
return aspect;
|
return aspect;
|
||||||
}
|
}
|
||||||
void registerAspect(BaseAspect *aspect);
|
void registerAspect(BaseAspect *aspect);
|
||||||
|
void registerAspects(const AspectContainer &aspects);
|
||||||
|
|
||||||
void addToLayout(LayoutBuilder &builder) override;
|
void fromMap(const QVariantMap &map);
|
||||||
|
void toMap(QVariantMap &map) const;
|
||||||
|
|
||||||
void fromMap(const QVariantMap &map) override;
|
void readSettings(const QSettings *settings);
|
||||||
void toMap(QVariantMap &map) const override;
|
void writeSettings(QSettings *settings) const;
|
||||||
|
|
||||||
void readSettings(const QSettings *settings) override;
|
void apply();
|
||||||
void writeSettings(QSettings *settings) const override;
|
void cancel();
|
||||||
|
void finish();
|
||||||
void apply() override;
|
|
||||||
void cancel() override;
|
|
||||||
void finish() override;
|
|
||||||
|
|
||||||
void reset();
|
void reset();
|
||||||
void fromMap(const QString &prefix, const QVariantMap &map);
|
void fromMap(const QString &prefix, const QVariantMap &map);
|
||||||
|
@@ -677,12 +677,12 @@ DebuggerSettings::DebuggerSettings()
|
|||||||
all.registerAspect(&breakOnCatch); // ??
|
all.registerAspect(&breakOnCatch); // ??
|
||||||
|
|
||||||
// Collect all
|
// Collect all
|
||||||
all.registerAspect(&page1);
|
all.registerAspects(page1);
|
||||||
all.registerAspect(&page2);
|
all.registerAspects(page2);
|
||||||
all.registerAspect(&page3);
|
all.registerAspects(page3);
|
||||||
all.registerAspect(&page4);
|
all.registerAspects(page4);
|
||||||
all.registerAspect(&page5);
|
all.registerAspects(page5);
|
||||||
all.registerAspect(&page6);
|
all.registerAspects(page6);
|
||||||
|
|
||||||
all.forEachAspect([](BaseAspect *aspect) {
|
all.forEachAspect([](BaseAspect *aspect) {
|
||||||
aspect->setAutoApply(false);
|
aspect->setAutoApply(false);
|
||||||
|
@@ -83,9 +83,7 @@ MakeStep::MakeStep(BuildStepList *parent, 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_jobCountContainer = addAspect<AspectContainer>();
|
m_userJobCountAspect = addAspect<IntegerAspect>();
|
||||||
|
|
||||||
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);
|
||||||
@@ -93,11 +91,11 @@ MakeStep::MakeStep(BuildStepList *parent, Id id)
|
|||||||
m_userJobCountAspect->setDefaultValue(defaultJobCount());
|
m_userJobCountAspect->setDefaultValue(defaultJobCount());
|
||||||
|
|
||||||
const QString text = tr("Override MAKEFLAGS");
|
const QString text = tr("Override MAKEFLAGS");
|
||||||
m_overrideMakeflagsAspect = m_jobCountContainer->addAspect<BoolAspect>();
|
m_overrideMakeflagsAspect = 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_overrideMakeflagsAspect->setLabel(text, BoolAspect::LabelPlacement::AtCheckBox);
|
||||||
|
|
||||||
m_nonOverrideWarning = m_jobCountContainer->addAspect<TextDisplay>();
|
m_nonOverrideWarning = addAspect<TextDisplay>();
|
||||||
m_nonOverrideWarning->setToolTip("<html><body><p>" +
|
m_nonOverrideWarning->setToolTip("<html><body><p>" +
|
||||||
tr("<code>MAKEFLAGS</code> specifies parallel jobs. Check \"%1\" to override.")
|
tr("<code>MAKEFLAGS</code> specifies parallel jobs. Check \"%1\" to override.")
|
||||||
.arg(text) + "</p></body></html>");
|
.arg(text) + "</p></body></html>");
|
||||||
@@ -353,7 +351,7 @@ QWidget *MakeStep::createConfigWidget()
|
|||||||
LayoutBuilder builder(widget);
|
LayoutBuilder builder(widget);
|
||||||
builder.addRow(m_makeCommandAspect);
|
builder.addRow(m_makeCommandAspect);
|
||||||
builder.addRow(m_userArgumentsAspect);
|
builder.addRow(m_userArgumentsAspect);
|
||||||
builder.addRow(m_jobCountContainer);
|
builder.addRow({m_userJobCountAspect, m_overrideMakeflagsAspect, m_nonOverrideWarning});
|
||||||
if (m_disablingForSubDirsSupported)
|
if (m_disablingForSubDirsSupported)
|
||||||
builder.addRow(m_disabledForSubdirsAspect);
|
builder.addRow(m_disabledForSubdirsAspect);
|
||||||
builder.addRow(m_buildTargetsAspect);
|
builder.addRow(m_buildTargetsAspect);
|
||||||
|
@@ -95,7 +95,6 @@ private:
|
|||||||
QStringList m_availableTargets; // FIXME: Unused, remove in 4.15.
|
QStringList m_availableTargets; // FIXME: Unused, remove in 4.15.
|
||||||
Utils::StringAspect *m_makeCommandAspect = nullptr;
|
Utils::StringAspect *m_makeCommandAspect = nullptr;
|
||||||
Utils::StringAspect *m_userArgumentsAspect = nullptr;
|
Utils::StringAspect *m_userArgumentsAspect = nullptr;
|
||||||
Utils::AspectContainer *m_jobCountContainer = nullptr;
|
|
||||||
Utils::IntegerAspect *m_userJobCountAspect = nullptr;
|
Utils::IntegerAspect *m_userJobCountAspect = nullptr;
|
||||||
Utils::BoolAspect *m_overrideMakeflagsAspect = nullptr;
|
Utils::BoolAspect *m_overrideMakeflagsAspect = nullptr;
|
||||||
Utils::BoolAspect *m_disabledForSubdirsAspect = nullptr;
|
Utils::BoolAspect *m_disabledForSubdirsAspect = nullptr;
|
||||||
|
Reference in New Issue
Block a user