From e6ad367c550e4834d43cacf590cbceeb168caf18 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 8 Aug 2023 13:02:02 +0200 Subject: [PATCH] Show reactions in story viewers list. --- .../media/stories/media_stories_recent_views.cpp | 12 +++++++----- .../media/stories/media_stories_recent_views.h | 2 +- Telegram/SourceFiles/media/view/media_view.style | 3 ++- .../ui/controls/who_reacted_context_action.cpp | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Telegram/SourceFiles/media/stories/media_stories_recent_views.cpp b/Telegram/SourceFiles/media/stories/media_stories_recent_views.cpp index 6155b9f0f..4bfe93d64 100644 --- a/Telegram/SourceFiles/media/stories/media_stories_recent_views.cpp +++ b/Telegram/SourceFiles/media/stories/media_stories_recent_views.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_who_reacted.h" // FormatReadDate. #include "chat_helpers/compose/compose_show.h" +#include "data/stickers/data_custom_emoji.h" #include "data/data_peer.h" #include "data/data_stories.h" #include "main/main_session.h" @@ -258,7 +259,7 @@ void RecentViews::updateText() { const auto text = _data.total ? (tr::lng_stories_views(tr::now, lt_count, _data.total) + (_data.reactions - ? (u" "_q + QChar(10084) + QString::number(_data.reactions)) + ? (u" "_q + QChar(10084) + QString::number(_data.reactions)) : QString())) : tr::lng_stories_no_views(tr::now); _text.setText(st::defaultTextStyle, text); @@ -281,6 +282,7 @@ void RecentViews::showMenu() { _widget.get(), st::storiesViewsMenu); auto count = 0; + const auto session = &_controller->story()->session(); const auto added = std::min(int(views.list.size()), kAddPerPage); const auto add = std::min(views.total, kAddPerPage); const auto now = QDateTime::currentDateTime(); @@ -291,7 +293,7 @@ void RecentViews::showMenu() { } } while (count++ < add) { - addMenuRowPlaceholder(); + addMenuRowPlaceholder(session); } rpl::merge( _controller->moreViewsLoaded(), @@ -366,7 +368,7 @@ void RecentViews::addMenuRow(Data::StoryView entry, const QDateTime &now) { auto customEntityData = data.customEntityData; auto action = base::make_unique_q( _menu->menu(), - nullptr, + Data::ReactedMenuFactory(&entry.peer->session()), _menu->menu()->st(), prepare(view)); const auto raw = action.get(); @@ -390,10 +392,10 @@ void RecentViews::addMenuRow(Data::StoryView entry, const QDateTime &now) { } } -void RecentViews::addMenuRowPlaceholder() { +void RecentViews::addMenuRowPlaceholder(not_null session) { auto action = base::make_unique_q( _menu->menu(), - nullptr, + Data::ReactedMenuFactory(session), _menu->menu()->st(), Ui::WhoReactedEntryData{ .preloader = true }); const auto raw = action.get(); diff --git a/Telegram/SourceFiles/media/stories/media_stories_recent_views.h b/Telegram/SourceFiles/media/stories/media_stories_recent_views.h index 294ea86f9..d469cbb5e 100644 --- a/Telegram/SourceFiles/media/stories/media_stories_recent_views.h +++ b/Telegram/SourceFiles/media/stories/media_stories_recent_views.h @@ -70,7 +70,7 @@ private: void showMenu(); void addMenuRow(Data::StoryView entry, const QDateTime &now); - void addMenuRowPlaceholder(); + void addMenuRowPlaceholder(not_null session); void rebuildMenuTail(); void subscribeToMenuUserpicsLoading(not_null session); void refreshClickHandler(); diff --git a/Telegram/SourceFiles/media/view/media_view.style b/Telegram/SourceFiles/media/view/media_view.style index 0d6f31042..db01d30fa 100644 --- a/Telegram/SourceFiles/media/view/media_view.style +++ b/Telegram/SourceFiles/media/view/media_view.style @@ -778,8 +778,9 @@ storiesViewsMenu: PopupMenu(storiesPopupMenuWithIcons) { scrollPadding: margins(0px, 6px, 0px, 4px); maxHeight: 320px; menu: Menu(storiesMenuWithIcons) { + itemPadding: margins(54px, 8px, 17px, 8px); widthMin: 215px; - widthMax: 215px; + widthMax: 250px; } radius: 7px; } diff --git a/Telegram/SourceFiles/ui/controls/who_reacted_context_action.cpp b/Telegram/SourceFiles/ui/controls/who_reacted_context_action.cpp index 4a7dcb337..3be58146a 100644 --- a/Telegram/SourceFiles/ui/controls/who_reacted_context_action.cpp +++ b/Telegram/SourceFiles/ui/controls/who_reacted_context_action.cpp @@ -617,7 +617,7 @@ void WhoReactedEntryAction::paint(Painter &&p) { .textColor = (selected ? _st.itemFgOver : _st.itemFg)->c, .now = crl::now(), .position = QPoint( - width() - _st.itemPadding.right() - (size / ratio) + skip, + width() - _st.itemPadding.right() - size + skip, (height() - _customSize) / 2), }); }