From d3f62d971dbed6f1c7e251743725b825fb9ac123 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 12 Jul 2022 16:44:34 +0300 Subject: [PATCH] Use unified StickersListFooter for emoji / stickers. --- Telegram/CMakeLists.txt | 2 + .../chat_helpers/emoji_list_widget.cpp | 111 +- .../chat_helpers/emoji_list_widget.h | 18 +- .../chat_helpers/stickers_list_footer.cpp | 936 +++++++++++++++ .../chat_helpers/stickers_list_footer.h | 207 ++++ .../chat_helpers/stickers_list_widget.cpp | 1030 +---------------- .../chat_helpers/stickers_list_widget.h | 15 +- .../chat_helpers/tabbed_selector.cpp | 2 +- 8 files changed, 1292 insertions(+), 1029 deletions(-) create mode 100644 Telegram/SourceFiles/chat_helpers/stickers_list_footer.cpp create mode 100644 Telegram/SourceFiles/chat_helpers/stickers_list_footer.h diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index e698cbb9b..ffa80a517 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -370,6 +370,8 @@ PRIVATE chat_helpers/stickers_emoji_pack.h chat_helpers/stickers_dice_pack.cpp chat_helpers/stickers_dice_pack.h + chat_helpers/stickers_list_footer.cpp + chat_helpers/stickers_list_footer.h chat_helpers/stickers_list_widget.cpp chat_helpers/stickers_list_widget.h chat_helpers/stickers_lottie.cpp diff --git a/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp index e0faaff5c..3f3714679 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp @@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/stickers/data_stickers.h" #include "data/stickers/data_custom_emoji.h" #include "chat_helpers/stickers_list_widget.h" +#include "chat_helpers/stickers_list_footer.h" #include "emoji_suggestions_data.h" #include "emoji_suggestions_helper.h" #include "main/main_session.h" @@ -85,6 +86,7 @@ private: }; +#if 0 class EmojiListWidget::Footer : public TabbedSelector::InnerFooter { public: Footer(not_null parent); @@ -102,6 +104,7 @@ private: std::array, kEmojiSectionCount> _sections; }; +#endif struct EmojiListWidget::CustomInstance { CustomInstance( @@ -127,6 +130,7 @@ EmojiListWidget::CustomInstance::CustomInstance( , object(&emoji, std::move(repaint)) { } +#if 0 EmojiListWidget::Footer::Footer(not_null parent) : InnerFooter(parent) , _pan(parent) @@ -185,6 +189,7 @@ void EmojiListWidget::Footer::setCurrentSectionIcon(Section section) { void EmojiListWidget::Footer::setActiveSection(Ui::Emoji::Section section) { _pan->showEmojiSection(section); } +#endif EmojiColorPicker::EmojiColorPicker(QWidget *parent) : RpWidget(parent) { @@ -552,7 +557,9 @@ void EmojiListWidget::visibleTopBottomUpdated( int visibleBottom) { Inner::visibleTopBottomUpdated(visibleTop, visibleBottom); if (_footer) { - _footer->setCurrentSectionIcon(currentSection(visibleTop)); + _footer->validateSelectedIcon( + currentSet(visibleTop), + ValidateIconAnimations::Full); } unloadNotSeenCustom(visibleTop, visibleBottom); } @@ -580,8 +587,19 @@ void EmojiListWidget::unloadNotSeenCustom( object_ptr EmojiListWidget::createFooter() { Expects(_footer == nullptr); - auto result = object_ptr