From 08644a9c31805c4971a9e63b25c79d000bd78e31 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Wed, 8 Feb 2023 18:51:11 +0300 Subject: [PATCH] Fixed search categories in list of stickers from userpic emoji builder. --- .../chat_helpers/stickers_list_widget.cpp | 7 ++++--- .../SourceFiles/chat_helpers/stickers_list_widget.h | 12 +++++++++++- .../SourceFiles/chat_helpers/tabbed_selector.cpp | 2 +- .../userpic/info_userpic_emoji_builder_widget.cpp | 3 ++- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp index 891c856ec..463c25ae3 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp @@ -165,17 +165,18 @@ StickersListWidget::StickersListWidget( QWidget *parent, not_null controller, Window::GifPauseReason level, - bool masks) + Mode mode) : Inner( parent, st::defaultEmojiPan, &controller->session(), Window::PausedIn(controller, level)) +, _mode(mode) , _controller(controller) , _api(&session().mtp()) , _localSetsManager(std::make_unique(&session())) , _section(Section::Stickers) -, _isMasks(masks) +, _isMasks(mode == Mode::Masks) , _updateItemsTimer([=] { updateItems(); }) , _updateSetsTimer([=] { updateSets(); }) , _trendingAddBgOver( @@ -2565,7 +2566,7 @@ void StickersListWidget::setupSearch() { return a.isEmpty() ? b : (a + ' ' + b); }); searchForSets(std::move(text), SearchEmoji(query, set)); - }, session); + }, session, false, (_mode == Mode::UserpicBuilder)); } void StickersListWidget::displaySet(uint64 setId) { diff --git a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.h b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.h index d89ed8c5d..0a76937b9 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.h +++ b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.h @@ -59,13 +59,21 @@ enum class ValidateIconAnimations; class StickersListFooter; class LocalStickersManager; +enum class StickersListMode { + Full, + Masks, + UserpicBuilder, +}; + class StickersListWidget final : public TabbedSelector::Inner { public: + using Mode = StickersListMode; + StickersListWidget( QWidget *parent, not_null controller, Window::GifPauseReason level, - bool masks = false); + Mode mode = Mode::Full); rpl::producer chosen() const; rpl::producer<> scrollUpdated() const; @@ -331,6 +339,8 @@ private: int index, not_null document); + const Mode _mode; + not_null _controller; std::unique_ptr _search; MTP::Sender _api; diff --git a/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp b/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp index 95fa113fe..9e510f28b 100644 --- a/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp +++ b/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp @@ -500,7 +500,7 @@ TabbedSelector::Tab TabbedSelector::createTab(SelectorTab type, int index) { this, _controller, _level, - true); + StickersListWidget::Mode::Masks); } Unexpected("Type in TabbedSelector::createTab."); }; diff --git a/Telegram/SourceFiles/info/userpic/info_userpic_emoji_builder_widget.cpp b/Telegram/SourceFiles/info/userpic/info_userpic_emoji_builder_widget.cpp index 919cc900f..8a54cb0ab 100644 --- a/Telegram/SourceFiles/info/userpic/info_userpic_emoji_builder_widget.cpp +++ b/Telegram/SourceFiles/info/userpic/info_userpic_emoji_builder_widget.cpp @@ -274,7 +274,8 @@ EmojiSelector::Selector EmojiSelector::createStickersList( object_ptr( scroll, _controller, - Window::GifPauseReason::Any)); + Window::GifPauseReason::Any, + ChatHelpers::StickersListMode::UserpicBuilder)); const auto footer = list->createFooter().data(); list->refreshRecent(); list->chosen(