diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index bc3f4beb233..32c7a2ec6c6 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -52,6 +52,8 @@ namespace Internal { class BaseAspectPrivate { public: + explicit BaseAspectPrivate(AspectContainer *container) : m_container(container) {} + Id m_id; std::function m_toSettings; std::function m_fromSettings; @@ -64,6 +66,7 @@ public: QIcon m_icon; QPointer m_label; // Owned by configuration widget QPointer m_action; // Owned by us. + AspectContainer *m_container = nullptr; // Not owned by us. bool m_visible = true; bool m_enabled = true; @@ -106,7 +109,7 @@ public: If \a container is non-null, the aspect is made known to the container. */ BaseAspect::BaseAspect(AspectContainer *container) - : d(new Internal::BaseAspectPrivate) + : d(new Internal::BaseAspectPrivate(container)) { if (container) container->registerAspect(this); @@ -438,6 +441,11 @@ QAction *BaseAspect::action() return d->m_action; } +AspectContainer *BaseAspect::container() const +{ + return d->m_container; +} + /*! Adds the visual representation of this aspect to the layout with the specified \a parent using a layout builder. diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index f6faac16b4c..c23375e1132 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -94,6 +94,8 @@ public: virtual QAction *action(); + AspectContainer *container() const; + virtual void fromMap(const QVariantMap &map); virtual void toMap(QVariantMap &map) const; virtual void toActiveMap(QVariantMap &map) const { toMap(map); }