From df14515927bd13d62cd6cc7b45c98e47038f705a Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 8 Feb 2026 11:02:17 +0300 Subject: [PATCH] Added ability to check if peer can be added to specific filter. --- Telegram/SourceFiles/boxes/choose_filter_box.cpp | 11 +++++++++++ Telegram/SourceFiles/boxes/choose_filter_box.h | 1 + 2 files changed, 12 insertions(+) diff --git a/Telegram/SourceFiles/boxes/choose_filter_box.cpp b/Telegram/SourceFiles/boxes/choose_filter_box.cpp index da0be24a9a..f713eacd94 100644 --- a/Telegram/SourceFiles/boxes/choose_filter_box.cpp +++ b/Telegram/SourceFiles/boxes/choose_filter_box.cpp @@ -216,6 +216,17 @@ bool ChooseFilterValidator::canAdd() const { return false; } +bool ChooseFilterValidator::canAdd(FilterId filterId) const { + Expects(filterId != 0); + + const auto list = _history->owner().chatsFilters().list(); + const auto i = ranges::find(list, filterId, &Data::ChatFilter::id); + if (i != end(list)) { + return !i->contains(_history); + } + return false; +} + bool ChooseFilterValidator::canRemove(FilterId filterId) const { Expects(filterId != 0); diff --git a/Telegram/SourceFiles/boxes/choose_filter_box.h b/Telegram/SourceFiles/boxes/choose_filter_box.h index 84417d6ec7..d551b47727 100644 --- a/Telegram/SourceFiles/boxes/choose_filter_box.h +++ b/Telegram/SourceFiles/boxes/choose_filter_box.h @@ -26,6 +26,7 @@ public: }; [[nodiscard]] bool canAdd() const; + [[nodiscard]] bool canAdd(FilterId filterId) const; [[nodiscard]] bool canRemove(FilterId filterId) const; [[nodiscard]] LimitData limitReached( FilterId filterId,