Utils: Make Aspect::addToLayout() const

It's conceptionally const, and would be useful to use as such, but
the current implementations often modifie mutable state.

To ease the transition pain, rename the previous non-const version to
addToLayoutImpl() and call it after const_cast'ing.

Change-Id: Ic8ca38e40f5df69c3d11121f96ea37648cf4feb7
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
hjk
2024-07-02 15:24:47 +02:00
parent d34d716c37
commit 9e413cb458
35 changed files with 108 additions and 100 deletions

View File

@@ -149,7 +149,7 @@ private:
// KitAspectWidget interface
void makeReadOnly() override { m_comboBox->setEnabled(false); }
void addToLayoutImpl(Layouting::Layout &builder) override
void addToInnerLayout(Layouting::Layout &builder) override
{
addMutableAction(m_comboBox);
builder.addItem(m_comboBox);
@@ -377,7 +377,7 @@ private:
// KitAspectWidget interface
void makeReadOnly() override { m_changeButton->setEnabled(false); }
void addToLayoutImpl(Layouting::Layout &parent) override
void addToInnerLayout(Layouting::Layout &parent) override
{
addMutableAction(m_label);
parent.addItem(m_label);
@@ -888,7 +888,7 @@ public:
private:
// KitAspectWidget interface
void addToLayoutImpl(Layouting::Layout &parent) override
void addToInnerLayout(Layouting::Layout &parent) override
{
addMutableAction(m_summaryLabel);
parent.addItem(m_summaryLabel);

View File

@@ -91,7 +91,7 @@ void LibrarySelectionAspect::setVariantValue(const QVariant &value, Announcement
setValue(map, howToAnnounce);
}
void LibrarySelectionAspect::addToLayout(Layouting::Layout &parent)
void LibrarySelectionAspect::addToLayoutImpl(Layouting::Layout &parent)
{
using namespace Layouting;

View File

@@ -68,7 +68,7 @@ public:
LibrarySelectionAspect(Utils::AspectContainer *container = nullptr);
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
using ResultCallback = std::function<void(QList<QStandardItem *>)>;
using FillCallback = std::function<void(ResultCallback)>;

View File

@@ -25,7 +25,7 @@ public:
void fromMap(const Utils::Store &map) override;
void toMap(Utils::Store &map) const override;
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
void readSettings() override;
void writeSettings() const override;

View File

@@ -66,7 +66,7 @@ public:
}
private:
void addToLayoutImpl(Layouting::Layout &parent) override
void addToInnerLayout(Layouting::Layout &parent) override
{
addMutableAction(m_comboBox);
parent.addItem(m_comboBox);

View File

@@ -467,7 +467,7 @@ bool SourcePathMapAspect::isDirty()
return m_internal != m_buffer;
}
void SourcePathMapAspect::addToLayout(Layouting::Layout &parent)
void SourcePathMapAspect::addToLayoutImpl(Layouting::Layout &parent)
{
QTC_CHECK(!d->m_widget);
d->m_widget = createSubWidget<DebuggerSourcePathMappingWidget>();

View File

@@ -112,7 +112,7 @@ void CommandBuilderAspectPrivate::tryToMigrate()
}
}
void CommandBuilderAspect::addToLayout(Layouting::Layout &parent)
void CommandBuilderAspect::addToLayoutImpl(Layouting::Layout &parent)
{
if (!d->commandBuilder) {
d->commandBuilder = new QComboBox;

View File

@@ -23,7 +23,7 @@ public:
QString fullCommandFlag(bool keepJobNum) const;
private:
void addToLayout(Layouting::Layout &parent) final;
void addToLayoutImpl(Layouting::Layout &parent) final;
void fromMap(const Utils::Store &map) final;
void toMap(Utils::Store &map) const final;

View File

@@ -337,7 +337,7 @@ IosDeviceTypeAspect::IosDeviceTypeAspect(AspectContainer *container, IosRunConfi
this, &IosDeviceTypeAspect::deviceChanges);
}
void IosDeviceTypeAspect::addToLayout(Layouting::Layout &parent)
void IosDeviceTypeAspect::addToLayoutImpl(Layouting::Layout &parent)
{
m_deviceTypeComboBox = new QComboBox;
m_deviceTypeComboBox->setModel(&m_deviceTypeModel);

View File

@@ -31,7 +31,7 @@ public:
void fromMap(const Utils::Store &map) override;
void toMap(Utils::Store &map) const override;
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
IosDeviceType deviceType() const;
void setDeviceType(const IosDeviceType &deviceType);

View File

@@ -317,7 +317,7 @@ public:
Layouting::LayoutModifier settingsLayout()
{
if (m_aspects)
return [this](Layouting::Layout *iface) { m_aspects->addToLayout(*iface); };
return [this](Layouting::Layout *iface) { m_aspects->addToLayoutImpl(*iface); };
return {};
}

View File

@@ -24,7 +24,7 @@ public:
void makeReadOnly() override {}
void refresh() override {}
void addToLayoutImpl(Layouting::Layout &) override {}
void addToInnerLayout(Layouting::Layout &) override {}
};
Utils::Id McuDependenciesKitAspect::id()

View File

@@ -36,7 +36,7 @@ private:
void makeReadOnly() override { m_toolsComboBox->setEnabled(false); }
void addToLayoutImpl(Layouting::Layout &parent) override
void addToInnerLayout(Layouting::Layout &parent) override
{
addMutableAction(m_toolsComboBox);
parent.addItem(m_toolsComboBox);

View File

@@ -123,9 +123,9 @@ void BuildDirectoryAspect::fromMap(const Store &map)
}
}
void BuildDirectoryAspect::addToLayout(Layouting::Layout &parent)
void BuildDirectoryAspect::addToLayoutImpl(Layouting::Layout &parent)
{
FilePathAspect::addToLayout(parent);
FilePathAspect::addToLayoutImpl(parent);
d->genericProblemSpacer = new QLabel;
d->specialProblemSpacer = new QLabel;
d->genericProblemLabel = new InfoLabel({}, InfoLabel::Warning);

View File

@@ -23,7 +23,7 @@ public:
bool isShadowBuild() const;
void setProblem(const QString &description);
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
static Utils::FilePath fixupDir(const Utils::FilePath &dir);

View File

@@ -61,7 +61,7 @@ public:
private:
void makeReadOnly() override { m_chooser->setReadOnly(true); }
void addToLayoutImpl(Layouting::Layout &builder) override
void addToInnerLayout(Layouting::Layout &builder) override
{
addMutableAction(m_chooser);
builder.addItem(Layouting::Span(2, m_chooser));
@@ -238,7 +238,7 @@ public:
}
private:
void addToLayoutImpl(Layouting::Layout &builder) override
void addToInnerLayout(Layouting::Layout &builder) override
{
addMutableAction(m_mainWidget);
builder.addItem(m_mainWidget);
@@ -739,7 +739,7 @@ public:
~DeviceTypeKitAspectImpl() override { delete m_comboBox; }
private:
void addToLayoutImpl(Layouting::Layout &builder) override
void addToInnerLayout(Layouting::Layout &builder) override
{
addMutableAction(m_comboBox);
builder.addItem(m_comboBox);
@@ -889,7 +889,7 @@ public:
}
private:
void addToLayoutImpl(Layouting::Layout &builder) override
void addToInnerLayout(Layouting::Layout &builder) override
{
addMutableAction(m_comboBox);
builder.addItem(m_comboBox);
@@ -1170,7 +1170,7 @@ public:
}
private:
void addToLayoutImpl(Layouting::Layout &builder) override
void addToInnerLayout(Layouting::Layout &builder) override
{
addMutableAction(m_comboBox);
builder.addItem(m_comboBox);
@@ -1433,7 +1433,7 @@ public:
}
private:
void addToLayoutImpl(Layouting::Layout &builder) override
void addToInnerLayout(Layouting::Layout &builder) override
{
addMutableAction(m_mainWidget);
builder.addItem(m_mainWidget);

View File

@@ -798,7 +798,7 @@ void KitAspect::makeStickySubWidgetsReadOnly()
makeReadOnly();
}
void KitAspect::addToLayout(Layouting::Layout &parentItem)
void KitAspect::addToLayoutImpl(Layouting::Layout &layout)
{
auto label = createSubWidget<QLabel>(m_factory->displayName() + ':');
label->setToolTip(m_factory->description());
@@ -806,16 +806,16 @@ void KitAspect::addToLayout(Layouting::Layout &parentItem)
emit labelLinkActivated(link);
});
parentItem.addItem(label);
addToLayoutImpl(parentItem);
layout.addItem(label);
addToInnerLayout(layout);
if (m_managingPageId.isValid()) {
m_manageButton = createSubWidget<QPushButton>(msgManage());
connect(m_manageButton, &QPushButton::clicked, [this] {
Core::ICore::showOptionsDialog(m_managingPageId, settingsPageItemToPreselect());
});
parentItem.addItem(m_manageButton);
layout.addItem(m_manageButton);
}
parentItem.addItem(Layouting::br);
layout.addItem(Layouting::br);
}
void KitAspect::addMutableAction(QWidget *child)

View File

@@ -110,8 +110,7 @@ public:
virtual void refresh() = 0;
void addToLayout(Layouting::Layout &parentItem) override;
void addToLayoutImpl(Layouting::Layout &layout) override;
static QString msgManage();
Kit *kit() const { return m_kit; }
@@ -124,7 +123,7 @@ public:
protected:
virtual void makeReadOnly() {}
virtual void addToLayoutImpl(Layouting::Layout &parentItem) = 0;
virtual void addToInnerLayout(Layouting::Layout &parentItem) = 0;
virtual Utils::Id settingsPageItemToPreselect() const { return {}; }
Kit *m_kit;

View File

@@ -63,7 +63,7 @@ TerminalAspect::TerminalAspect(AspectContainer *container)
/*!
\reimp
*/
void TerminalAspect::addToLayout(Layout &parent)
void TerminalAspect::addToLayoutImpl(Layout &parent)
{
QTC_CHECK(!m_checkBox);
m_checkBox = createSubWidget<QCheckBox>(Tr::tr("Run in terminal"));
@@ -174,7 +174,7 @@ void WorkingDirectoryAspect::setEnvironment(EnvironmentAspect *envAspect)
/*!
\reimp
*/
void WorkingDirectoryAspect::addToLayout(Layout &builder)
void WorkingDirectoryAspect::addToLayoutImpl(Layout &builder)
{
QTC_CHECK(!m_chooser);
m_chooser = new PathChooser;
@@ -457,7 +457,7 @@ QWidget *ArgumentsAspect::setupChooser()
/*!
\reimp
*/
void ArgumentsAspect::addToLayout(Layout &builder)
void ArgumentsAspect::addToLayoutImpl(Layout &builder)
{
QTC_CHECK(!m_chooser && !m_multiLineChooser && !m_multiLineButton);
@@ -650,7 +650,7 @@ FilePath ExecutableAspect::executable() const
/*!
\reimp
*/
void ExecutableAspect::addToLayout(Layout &builder)
void ExecutableAspect::addToLayoutImpl(Layout &builder)
{
builder.addItem(m_executable);
if (m_alternativeExecutable) {
@@ -896,7 +896,7 @@ void LauncherAspect::toMap(Store &map) const
saveToMap(map, m_currentId, QString(), settingsKey());
}
void LauncherAspect::addToLayout(Layout &builder)
void LauncherAspect::addToLayoutImpl(Layout &builder)
{
if (QTC_GUARD(m_comboBox.isNull()))
m_comboBox = new QComboBox;

View File

@@ -29,7 +29,7 @@ class PROJECTEXPLORER_EXPORT TerminalAspect : public Utils::BaseAspect
public:
explicit TerminalAspect(Utils::AspectContainer *container = nullptr);
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
bool useTerminal() const;
void setUseTerminalHint(bool useTerminal);
@@ -61,7 +61,7 @@ class PROJECTEXPLORER_EXPORT WorkingDirectoryAspect : public Utils::BaseAspect
public:
explicit WorkingDirectoryAspect(Utils::AspectContainer *container = nullptr);
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
Utils::FilePath operator()() const { return workingDirectory(); }
Utils::FilePath workingDirectory() const;
@@ -93,7 +93,7 @@ class PROJECTEXPLORER_EXPORT ArgumentsAspect : public Utils::BaseAspect
public:
explicit ArgumentsAspect(Utils::AspectContainer *container = nullptr);
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
QString operator()() const { return arguments(); }
QString arguments() const;
@@ -171,7 +171,7 @@ public:
void setDeviceSelector(Target *target, ExecutionDeviceSelector selector);
void setSettingsKey(const Utils::Key &key);
void makeOverridable(const Utils::Key &overridingKey, const Utils::Key &useOverridableKey);
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
void setLabelText(const QString &labelText);
void setPlaceHolderText(const QString &placeHolderText);
void setHistoryCompleter(const Utils::Key &historyCompleterKey);
@@ -242,7 +242,7 @@ public:
void fromMap(const Utils::Store &) override;
void toMap(Utils::Store &) const override;
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
struct Data : Utils::BaseAspect::Data { Launcher launcher; };

View File

@@ -73,7 +73,7 @@ public:
}
protected:
void addToLayoutImpl(Layouting::Layout &parent) override
void addToInnerLayout(Layouting::Layout &parent) override
{
addMutableAction(m_comboBox);
parent.addItem(m_comboBox);

View File

@@ -60,9 +60,9 @@ ArchitecturesAspect::ArchitecturesAspect(AspectContainer *container)
setAllValues(m_abisToArchMap.keys());
}
void ArchitecturesAspect::addToLayout(Layouting::Layout &parent)
void ArchitecturesAspect::addToLayoutImpl(Layouting::Layout &parent)
{
MultiSelectionAspect::addToLayout(parent);
MultiSelectionAspect::addToLayoutImpl(parent);
const auto changeHandler = [this] {
const QtVersion *qtVersion = QtKitAspect::qtVersion(m_kit);
if (!qtVersion) {

View File

@@ -20,7 +20,7 @@ public:
ArchitecturesAspect(Utils::AspectContainer *container = nullptr);
void setKit(const ProjectExplorer::Kit *kit) { m_kit = kit; }
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
QStringList selectedArchitectures() const;
void setSelectedArchitectures(const QStringList& architectures);
bool isManagedByTarget() const { return m_isManagedByTarget; }

View File

@@ -34,7 +34,7 @@ private:
void makeReadOnly() override { m_changeButton->setEnabled(false); }
void refresh() override { m_contentLabel->setText(QbsKitAspect::representation(kit())); }
void addToLayoutImpl(Layouting::Layout &parent) override
void addToInnerLayout(Layouting::Layout &parent) override
{
addMutableAction(m_contentLabel);
parent.addItem(m_contentLabel);

View File

@@ -39,7 +39,7 @@ public:
~QmakeKitAspectImpl() override { delete m_lineEdit; }
private:
void addToLayoutImpl(Layouting::Layout &parent) override
void addToInnerLayout(Layouting::Layout &parent) override
{
addMutableAction(m_lineEdit);
parent.addItem(m_lineEdit);

View File

@@ -60,7 +60,7 @@ QmlMainFileAspect::~QmlMainFileAspect()
delete m_fileListCombo;
}
void QmlMainFileAspect::addToLayout(Layouting::Layout &parent)
void QmlMainFileAspect::addToLayoutImpl(Layouting::Layout &parent)
{
QTC_ASSERT(!m_fileListCombo, delete m_fileListCombo);
m_fileListCombo = new QComboBox;

View File

@@ -42,7 +42,7 @@ public:
Utils::FilePath currentFile;
};
void addToLayout(Layouting::Layout &parent) final;
void addToLayoutImpl(Layouting::Layout &parent) final;
void toMap(Utils::Store &map) const final;
void fromMap(const Utils::Store &map) final;

View File

@@ -30,9 +30,9 @@ QmlDebuggingAspect::QmlDebuggingAspect(AspectContainer *container)
setValue(buildPropertiesSettings().qmlDebugging());
}
void QmlDebuggingAspect::addToLayout(Layouting::Layout &parent)
void QmlDebuggingAspect::addToLayoutImpl(Layouting::Layout &parent)
{
SelectionAspect::addToLayout(parent);
SelectionAspect::addToLayoutImpl(parent);
const auto warningLabel = createSubWidget<InfoLabel>(QString(), InfoLabel::Warning);
warningLabel->setElideMode(Qt::ElideNone);
parent.addRow({Layouting::empty, warningLabel});
@@ -78,9 +78,9 @@ void QtQuickCompilerAspect::setBuildConfiguration(const BuildConfiguration *buil
m_buildConfig = buildConfig;
}
void QtQuickCompilerAspect::addToLayout(Layouting::Layout &parent)
void QtQuickCompilerAspect::addToLayoutImpl(Layouting::Layout &parent)
{
SelectionAspect::addToLayout(parent);
SelectionAspect::addToLayoutImpl(parent);
const auto warningLabel = createSubWidget<InfoLabel>(QString(), InfoLabel::Warning);
warningLabel->setElideMode(Qt::ElideNone);
warningLabel->setVisible(false);

View File

@@ -21,7 +21,7 @@ public:
void setBuildConfiguration(const ProjectExplorer::BuildConfiguration *newBuildConfig);
private:
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
const ProjectExplorer::BuildConfiguration *m_buildConfig = nullptr;
};
@@ -36,7 +36,7 @@ public:
void setBuildConfiguration(const ProjectExplorer::BuildConfiguration *newBuildConfig);
private:
void addToLayout(Layouting::Layout &parent) override;
void addToLayoutImpl(Layouting::Layout &parent) override;
const ProjectExplorer::BuildConfiguration *m_buildConfig = nullptr;
};

View File

@@ -62,7 +62,7 @@ public:
private:
void makeReadOnly() final { m_combo->setEnabled(false); }
void addToLayoutImpl(Layouting::Layout &parent) override
void addToInnerLayout(Layouting::Layout &parent) override
{
addMutableAction(m_combo);
parent.addItem(m_combo);

View File

@@ -116,7 +116,7 @@ SuppressionAspect::~SuppressionAspect()
delete d;
}
void SuppressionAspect::addToLayout(Layouting::Layout &parent)
void SuppressionAspect::addToLayoutImpl(Layouting::Layout &parent)
{
QTC_CHECK(!d->addEntry);
QTC_CHECK(!d->removeEntry);

View File

@@ -20,7 +20,7 @@ public:
SuppressionAspect(Utils::AspectContainer *container, bool global);
~SuppressionAspect() final;
void addToLayout(Layouting::Layout &parent) final;
void addToLayoutImpl(Layouting::Layout &parent) final;
void fromMap(const Utils::Store &map) final;
void toMap(Utils::Store &map) const final;

View File

@@ -131,7 +131,7 @@ public:
addDataExtractor(this, &WebBrowserSelectionAspect::currentBrowser, &Data::currentBrowser);
}
void addToLayout(Layouting::Layout &parent) override
void addToLayoutImpl(Layouting::Layout &parent) override
{
QTC_CHECK(!m_webBrowserComboBox);
m_webBrowserComboBox = new QComboBox;