diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index 4c1403c2d06..07918f5e8b4 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -2089,8 +2089,8 @@ public: } // Internal -AspectContainer::AspectContainer() - : d(new Internal::AspectContainerPrivate) +AspectContainer::AspectContainer(QObject *parent) + : QObject(parent), d(new Internal::AspectContainerPrivate) {} /*! @@ -2192,6 +2192,8 @@ void AspectContainer::apply() { for (BaseAspect *aspect : qAsConst(d->m_items)) aspect->apply(); + + emit applied(); } void AspectContainer::cancel() diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index 0ed2c3b4796..7ee6f54bfc6 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -483,10 +483,12 @@ private: std::unique_ptr d; }; -class QTCREATOR_UTILS_EXPORT AspectContainer +class QTCREATOR_UTILS_EXPORT AspectContainer : public QObject { + Q_OBJECT + public: - AspectContainer(); + AspectContainer(QObject *parent = nullptr); ~AspectContainer(); AspectContainer(const AspectContainer &) = delete; @@ -547,6 +549,9 @@ public: const_iterator begin() const; const_iterator end() const; +signals: + void applied(); + private: std::unique_ptr d; }; diff --git a/src/plugins/docker/dockersettings.h b/src/plugins/docker/dockersettings.h index 8a0df8f4adb..42470427cb0 100644 --- a/src/plugins/docker/dockersettings.h +++ b/src/plugins/docker/dockersettings.h @@ -33,7 +33,7 @@ namespace Docker { namespace Internal { -class DockerSettings : public QObject, public Utils::AspectContainer +class DockerSettings : public Utils::AspectContainer { public: DockerSettings(); diff --git a/src/plugins/qmakeprojectmanager/qmakesettings.h b/src/plugins/qmakeprojectmanager/qmakesettings.h index c131472fba6..6287dc57049 100644 --- a/src/plugins/qmakeprojectmanager/qmakesettings.h +++ b/src/plugins/qmakeprojectmanager/qmakesettings.h @@ -32,7 +32,7 @@ namespace QmakeProjectManager { namespace Internal { -class QmakeSettings : public QObject, public Utils::AspectContainer +class QmakeSettings : public Utils::AspectContainer { Q_OBJECT