Utils: Merge BaseAspects and AspectContainer

They were quite similar, largest difference was the ownership of
subaspects, which is now handled by a bool property.

Change-Id: Ib3f2f20b9a84ef40ea8a9eb59da9c89c9a281750
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2021-03-31 08:57:26 +02:00
parent d8770be95e
commit 4cc6fef901
9 changed files with 80 additions and 113 deletions

View File

@@ -43,6 +43,8 @@ ProjectConfiguration::ProjectConfiguration(QObject *parent, Utils::Id id)
: QObject(parent)
, m_id(id)
{
m_aspects.setOwnsSubAspects(true);
QTC_CHECK(parent);
QTC_CHECK(id.isValid());
setObjectName(id.toString());

View File

@@ -82,7 +82,7 @@ public:
return m_aspects.addAspect<Aspect>(std::forward<Args>(args)...);
}
const Utils::BaseAspects &aspects() const { return m_aspects; }
const Utils::AspectContainer &aspects() const { return m_aspects; }
Utils::BaseAspect *aspect(Utils::Id id) const;
template <typename T> T *aspect() const { return m_aspects.aspect<T>(); }
@@ -94,7 +94,7 @@ signals:
void toolTipChanged();
protected:
Utils::BaseAspects m_aspects;
Utils::AspectContainer m_aspects;
private:
QPointer<Target> m_target;

View File

@@ -543,7 +543,7 @@ RunConfiguration *RunConfigurationFactory::create(Target *target) const
// Add the universal aspects.
for (const RunConfiguration::AspectFactory &factory : theAspectFactories)
rc->m_aspects.append(factory(target));
rc->m_aspects.registerAspect(factory(target));
rc->acquaintAspects();
return rc;

View File

@@ -203,7 +203,7 @@ void WorkingDirectoryAspect::addToLayout(LayoutBuilder &builder)
builder.addItems({tr("Working directory:"), m_chooser.data(), m_resetButton.data()});
}
void WorkingDirectoryAspect::acquaintSiblings(const BaseAspects &siblings)
void WorkingDirectoryAspect::acquaintSiblings(const AspectContainer &siblings)
{
m_envAspect = siblings.aspect<EnvironmentAspect>();
}

View File

@@ -76,7 +76,7 @@ public:
WorkingDirectoryAspect();
void addToLayout(Utils::LayoutBuilder &builder) override;
void acquaintSiblings(const Utils::BaseAspects &) override;
void acquaintSiblings(const Utils::AspectContainer &) override;
Utils::FilePath workingDirectory(const Utils::MacroExpander *expander) const;
Utils::FilePath defaultWorkingDirectory() const;

View File

@@ -113,7 +113,7 @@ void QtQuickCompilerAspect::addToLayout(LayoutBuilder &builder)
changeHandler();
}
void QtQuickCompilerAspect::acquaintSiblings(const BaseAspects &siblings)
void QtQuickCompilerAspect::acquaintSiblings(const AspectContainer &siblings)
{
m_qmlDebuggingAspect = siblings.aspect<QmlDebuggingAspect>();
}

View File

@@ -56,7 +56,7 @@ public:
private:
void addToLayout(Utils::LayoutBuilder &builder) override;
void acquaintSiblings(const Utils::BaseAspects &siblings) override;
void acquaintSiblings(const Utils::AspectContainer &siblings) override;
const ProjectExplorer::Kit *m_kit = nullptr;
const QmlDebuggingAspect *m_qmlDebuggingAspect = nullptr;