diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index f49cdf57048..26eb97cf491 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -2479,7 +2479,6 @@ class Internal::AspectContainerPrivate public: QList m_items; // Both owned and non-owned. QList m_ownedItems; // Owned only. - bool m_autoApply = true; QStringList m_settingsGroup; std::function m_layouter; }; @@ -2501,7 +2500,7 @@ AspectContainer::~AspectContainer() */ void AspectContainer::registerAspect(BaseAspect *aspect, bool takeOwnership) { - aspect->setAutoApply(d->m_autoApply); + aspect->setAutoApply(isAutoApply()); d->m_items.append(aspect); if (takeOwnership) d->m_ownedItems.append(aspect); @@ -2631,7 +2630,8 @@ void AspectContainer::reset() void AspectContainer::setAutoApply(bool on) { - d->m_autoApply = on; + BaseAspect::setAutoApply(on); + for (BaseAspect *aspect : std::as_const(d->m_items)) aspect->setAutoApply(on); } diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index 909b19a5be5..793dcbb7bbd 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -79,7 +79,7 @@ public: void setVisible(bool visible); bool isAutoApply() const; - void setAutoApply(bool on); + virtual void setAutoApply(bool on); bool isEnabled() const; void setEnabled(bool enabled); @@ -860,7 +860,7 @@ public: void reset(); bool equals(const AspectContainer &other) const; void copyFrom(const AspectContainer &other); - void setAutoApply(bool on); + void setAutoApply(bool on) override; bool isDirty() override; template T *aspect() const