diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index 46283b4c9fa..32be37048e9 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -147,7 +147,7 @@ QWidget *BuildStep::doCreateConfigWidget() setSummaryText(m_summaryUpdater()); }; - for (BaseAspect *aspect : std::as_const(m_aspects)) + for (BaseAspect *aspect : std::as_const(*this)) connect(aspect, &BaseAspect::changed, widget, recreateSummary); connect(buildConfiguration(), &BuildConfiguration::buildDirectoryChanged, @@ -161,7 +161,7 @@ QWidget *BuildStep::doCreateConfigWidget() QWidget *BuildStep::createConfigWidget() { Layouting::Form form; - for (BaseAspect *aspect : std::as_const(m_aspects)) { + for (BaseAspect *aspect : std::as_const(*this)) { if (aspect->isVisible()) form.addItem(aspect); } diff --git a/src/plugins/projectexplorer/projectconfiguration.cpp b/src/plugins/projectexplorer/projectconfiguration.cpp index 6d5fa797a67..5d23d65c8b8 100644 --- a/src/plugins/projectexplorer/projectconfiguration.cpp +++ b/src/plugins/projectexplorer/projectconfiguration.cpp @@ -19,10 +19,10 @@ const char DISPLAY_NAME_KEY[] = "ProjectExplorer.ProjectConfiguration.DisplayNam // ProjectConfiguration ProjectConfiguration::ProjectConfiguration(QObject *parent, Utils::Id id) - : QObject(parent) + : AspectContainer(parent) , m_id(id) { - m_aspects.setOwnsSubAspects(true); + setOwnsSubAspects(true); QTC_CHECK(parent); QTC_CHECK(id.isValid()); @@ -89,7 +89,7 @@ QVariantMap ProjectConfiguration::toMap() const QVariantMap map; map.insert(QLatin1String(CONFIGURATION_ID_KEY), m_id.toSetting()); m_displayName.toMap(map, DISPLAY_NAME_KEY); - m_aspects.toMap(map); + AspectContainer::toMap(map); return map; } @@ -106,15 +106,10 @@ bool ProjectConfiguration::fromMap(const QVariantMap &map) QTC_ASSERT(id.toString().startsWith(m_id.toString()), return false); m_displayName.fromMap(map, DISPLAY_NAME_KEY); - m_aspects.fromMap(map); + AspectContainer::fromMap(map); return true; } -BaseAspect *ProjectConfiguration::aspect(Id id) const -{ - return m_aspects.aspect(id); -} - FilePath ProjectConfiguration::mapFromBuildDeviceToGlobalPath(const FilePath &path) const { IDevice::ConstPtr dev = BuildDeviceKitAspect::device(kit()); diff --git a/src/plugins/projectexplorer/projectconfiguration.h b/src/plugins/projectexplorer/projectconfiguration.h index cb716bf66e5..8c5dac1d902 100644 --- a/src/plugins/projectexplorer/projectconfiguration.h +++ b/src/plugins/projectexplorer/projectconfiguration.h @@ -21,7 +21,7 @@ class Kit; class Project; class Target; -class PROJECTEXPLORER_EXPORT ProjectConfiguration : public QObject +class PROJECTEXPLORER_EXPORT ProjectConfiguration : public Utils::AspectContainer { Q_OBJECT @@ -54,26 +54,12 @@ public: static QString settingsIdKey(); - template - Aspect *addAspect(Args && ...args) - { - return m_aspects.addAspect(std::forward(args)...); - } - - const Utils::AspectContainer &aspects() const { return m_aspects; } - - Utils::BaseAspect *aspect(Utils::Id id) const; - template T *aspect() const { return m_aspects.aspect(); } - Utils::FilePath mapFromBuildDeviceToGlobalPath(const Utils::FilePath &path) const; signals: void displayNameChanged(); void toolTipChanged(); -protected: - Utils::AspectContainer m_aspects; - private: QPointer m_target; const Utils::Id m_id; diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index d05c23eaf51..29b59ad8984 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -217,7 +217,7 @@ bool RunConfiguration::isEnabled() const QWidget *RunConfiguration::createConfigurationWidget() { Layouting::Form form; - for (BaseAspect *aspect : std::as_const(m_aspects)) { + for (BaseAspect *aspect : std::as_const(*this)) { if (aspect->isVisible()) { form.addItem(aspect); form.addItem(Layouting::br); @@ -247,7 +247,7 @@ void RunConfiguration::addAspectFactory(const AspectFactory &aspectFactory) QMap RunConfiguration::settingsData() const { QMap data; - for (BaseAspect *aspect : m_aspects) + for (BaseAspect *aspect : *this) aspect->toActiveMap(data[aspect->id()]); return data; } @@ -255,7 +255,7 @@ QMap RunConfiguration::settingsData() const AspectContainerData RunConfiguration::aspectData() const { AspectContainerData data; - for (BaseAspect *aspect : m_aspects) + for (BaseAspect *aspect : *this) data.append(aspect->extractData()); return data; } @@ -566,7 +566,7 @@ RunConfiguration *RunConfigurationFactory::create(Target *target) const // Add the universal aspects. for (const RunConfiguration::AspectFactory &factory : theAspectFactories) - rc->m_aspects.registerAspect(factory(target)); + rc->registerAspect(factory(target)); return rc; } diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index a0d83ebb488..59704141562 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -138,6 +138,7 @@ public: return nullptr; } + using ProjectConfiguration::registerAspect; using AspectFactory = std::function; template static void registerAspect() {