From 61048fa7376ea4a3f4be0b319ad768d54319fec8 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 26 Sep 2023 09:57:35 +0200 Subject: [PATCH] Utils: Add AspectList::clear() Change-Id: Ic3e90bc76d271c1bb3b84e545fae5ba1c7a10468 Reviewed-by: hjk --- src/libs/utils/aspects.cpp | 15 +++++++++++++++ src/libs/utils/aspects.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index d9bf38688ac..04cf8b786d0 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -3154,6 +3154,21 @@ void AspectList::removeItem(const std::shared_ptr &item) actualRemoveItem(item); } +void AspectList::clear() +{ + if (undoStack()) { + undoStack()->beginMacro("Clear"); + + for (auto item : volatileItems()) + undoStack()->push(new RemoveItemCommand(this, item)); + + undoStack()->endMacro(); + } else { + for (auto item : volatileItems()) + actualRemoveItem(item); + } +} + void AspectList::apply() { d->items = d->volatileItems; diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index ccdaadcc631..d5d47a79d7e 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -1031,6 +1031,7 @@ public: void removeItem(const std::shared_ptr &item); void actualRemoveItem(const std::shared_ptr &item); + void clear(); void apply() override;