From d71c87535fb2bcecce6aa5ab0ca6ec9b9bb3c853 Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Mon, 29 Apr 2024 20:40:42 +0200 Subject: [PATCH] Add RemoveItemsByName() Helper function to remove Items by name from std::queue of Item --- lib/utils/item-selection-helpers.cpp | 14 ++++++++++++++ lib/utils/item-selection-helpers.hpp | 3 +++ 2 files changed, 17 insertions(+) diff --git a/lib/utils/item-selection-helpers.cpp b/lib/utils/item-selection-helpers.cpp index 10400bbd..74315d77 100644 --- a/lib/utils/item-selection-helpers.cpp +++ b/lib/utils/item-selection-helpers.cpp @@ -347,4 +347,18 @@ void Item::Save(obs_data_t *obj) const obs_data_set_string(obj, "name", _name.c_str()); } +void RemoveItemsByName(std::deque> &items, + const QStringList &names) +{ + for (const auto &name : names) { + items.erase(std::remove_if( + items.begin(), items.end(), + [name](const std::shared_ptr &item) { + return item->Name() == + name.toStdString(); + }), + items.end()); + } +} + } // namespace advss diff --git a/lib/utils/item-selection-helpers.hpp b/lib/utils/item-selection-helpers.hpp index fe5aaeb6..95b1e2ca 100644 --- a/lib/utils/item-selection-helpers.hpp +++ b/lib/utils/item-selection-helpers.hpp @@ -32,6 +32,9 @@ protected: friend ItemSettingsDialog; }; +void EXPORT RemoveItemsByName(std::deque> &items, + const QStringList &names); + class ItemSettingsDialog : public QDialog { Q_OBJECT