diff --git a/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp index d9068495f..931b84382 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp @@ -471,7 +471,7 @@ void EmojiListWidget::setupSearch() { InvokeQueued(this, [=] { applyNextSearchQuery(); }); - }, session, (_mode == Mode::EmojiStatus)); + }, session, (_mode == Mode::EmojiStatus), _mode == Mode::UserpicBuilder); } void EmojiListWidget::applyNextSearchQuery() { @@ -720,7 +720,8 @@ object_ptr EmojiListWidget::createFooter() { void EmojiListWidget::afterShown() { const auto steal = (_mode == Mode::EmojiStatus) - || (_mode == Mode::FullReactions); + || (_mode == Mode::FullReactions) + || (_mode == Mode::UserpicBuilder); if (_search && steal) { _search->stealFocus(); } @@ -1411,6 +1412,7 @@ void EmojiListWidget::mouseReleaseEvent(QMouseEvent *e) { _jumpedToPremium.fire({}); switch (_mode) { case Mode::Full: + case Mode::UserpicBuilder: Settings::ShowPremium(_controller, u"animated_emoji"_q); break; case Mode::FullReactions: diff --git a/Telegram/SourceFiles/chat_helpers/emoji_list_widget.h b/Telegram/SourceFiles/chat_helpers/emoji_list_widget.h index 990515daf..3a74da4a4 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_list_widget.h +++ b/Telegram/SourceFiles/chat_helpers/emoji_list_widget.h @@ -68,6 +68,7 @@ enum class EmojiListMode { EmojiStatus, FullReactions, RecentReactions, + UserpicBuilder, }; struct EmojiListDescriptor { diff --git a/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp b/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp index c8493a3a2..e1f22258f 100644 --- a/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp +++ b/Telegram/SourceFiles/chat_helpers/tabbed_selector.cpp @@ -295,12 +295,15 @@ std::unique_ptr MakeSearch( const style::EmojiPan &st, Fn&&)> callback, not_null session, - bool statusCategories) { + bool statusCategories, + bool profilePhotoCategories) { using Descriptor = Ui::SearchDescriptor; const auto owner = &session->data(); auto result = std::make_unique(parent, st, Descriptor{ .st = st.search, - .groups = (statusCategories + .groups = (profilePhotoCategories + ? owner->emojiStatuses().profilePhotoGroupsValue() + : statusCategories ? owner->emojiStatuses().statusGroupsValue() : owner->emojiStatuses().emojiGroupsValue()), .customEmojiFactory = owner->customEmojiManager().factory( diff --git a/Telegram/SourceFiles/chat_helpers/tabbed_selector.h b/Telegram/SourceFiles/chat_helpers/tabbed_selector.h index a57ee2efa..b8189c1e3 100644 --- a/Telegram/SourceFiles/chat_helpers/tabbed_selector.h +++ b/Telegram/SourceFiles/chat_helpers/tabbed_selector.h @@ -83,7 +83,8 @@ using InlineChosen = InlineBots::ResultSelected; const style::EmojiPan &st, Fn&&)> callback, not_null session, - bool statusCategories = false); + bool statusCategories = false, + bool profilePhotoCategories = false); class TabbedSelector : public Ui::RpWidget { public: 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 36600ee01..1f23c7af6 100644 --- a/Telegram/SourceFiles/info/userpic/info_userpic_emoji_builder_widget.cpp +++ b/Telegram/SourceFiles/info/userpic/info_userpic_emoji_builder_widget.cpp @@ -186,7 +186,7 @@ EmojiSelector::Selector EmojiSelector::createEmojiList( const auto tag = Data::CustomEmojiManager::SizeTag::Large; auto args = ChatHelpers::EmojiListDescriptor{ .session = session, - .mode = ChatHelpers::EmojiListMode::FullReactions, + .mode = ChatHelpers::EmojiListMode::UserpicBuilder, .controller = _controller, .paused = [=] { return true; }, .customRecentList = session->api().peerPhoto().profileEmojiList(),