From 5cf5b1ae3f94edcffab95044b9d361d5d6a28b17 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 12 May 2023 14:13:28 +0200 Subject: [PATCH] Utils: Add an AspectContainer::changed() signal In contrast to applied() only emitted if anything was dirty before. Ideally, applied() would not be needed, but I am not sure about downstream uses. Change-Id: Ie0c293b8730c503fc4409884a33207ee9ca5f129 Reviewed-by: Alessandro Portale --- src/libs/utils/aspects.cpp | 5 +++++ src/libs/utils/aspects.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index 0f75cfcbded..1eecb1de17d 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -2475,10 +2475,15 @@ void AspectContainer::setSettingsGroups(const QString &groupKey, const QString & void AspectContainer::apply() { + const bool willChange = isDirty(); + for (BaseAspect *aspect : std::as_const(d->m_items)) aspect->apply(); emit applied(); + + if (willChange) + emit changed(); } void AspectContainer::cancel() diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index 3e4bd9ca967..266a41f8ee1 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -695,6 +695,7 @@ public: signals: void applied(); + void changed(); void fromMapFinished(); private: