summaryrefslogtreecommitdiff
path: root/src/libs
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-05-12 14:13:28 +0200
committerhjk <hjk@qt.io>2023-05-12 14:29:11 +0000
commit5cf5b1ae3f94edcffab95044b9d361d5d6a28b17 (patch)
tree5c6e8c1f6fa17d5d35ff2ee73f673bebde2cb393 /src/libs
parentddee1c92a48dde69d236eb14570f5a03d07dbe42 (diff)
downloadqt-creator-5cf5b1ae3f94edcffab95044b9d361d5d6a28b17.tar.gz
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 <alessandro.portale@qt.io>
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/utils/aspects.cpp5
-rw-r--r--src/libs/utils/aspects.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp
index 0f75cfcbde..1eecb1de17 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 3e4bd9ca96..266a41f8ee 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: