From 547a5a14df561d9f5a7364ed8d27ee0d068f03f8 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 26 Sep 2023 12:12:33 +0400 Subject: [PATCH] Correct stories count in the Info title. --- Telegram/SourceFiles/dialogs/ui/dialogs_stories_content.cpp | 6 ++++-- Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h | 1 + Telegram/SourceFiles/info/info_top_bar.cpp | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_content.cpp b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_content.cpp index 68368ebaa..0b3777d7a 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_content.cpp +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_content.cpp @@ -330,8 +330,8 @@ State::State(not_null data, Data::StorySourcesList list) } Content State::next() { - auto result = Content(); const auto &sources = _data->sources(_list); + auto result = Content{ .total = int(sources.size()) }; result.elements.reserve(sources.size()); for (const auto &info : sources) { const auto source = _data->source(info.id); @@ -390,8 +390,10 @@ rpl::producer LastForPeer(not_null peer) { ) | rpl::map([=] { auto ids = std::vector(); auto readTill = StoryId(); + auto total = 0; if (const auto source = stories->source(peerId)) { readTill = source->readTill; + total = int(source->ids.size()); ids = ranges::views::all(source->ids) | ranges::views::reverse | ranges::views::take(kShownLastCount) @@ -420,7 +422,7 @@ rpl::producer LastForPeer(not_null peer) { } auto done = true; auto resolving = false; - auto result = Content{}; + auto result = Content{ .total = total }; for (const auto id : ids) { const auto storyId = FullStoryId{ peerId, id }; const auto maybe = stories->lookup(storyId); diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h index 24468850a..03d8b1e73 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h @@ -49,6 +49,7 @@ struct Element { struct Content { std::vector elements; + int total = 0; friend inline bool operator==( const Content &a, diff --git a/Telegram/SourceFiles/info/info_top_bar.cpp b/Telegram/SourceFiles/info/info_top_bar.cpp index 1172ea9e1..04985c617 100644 --- a/Telegram/SourceFiles/info/info_top_bar.cpp +++ b/Telegram/SourceFiles/info/info_top_bar.cpp @@ -514,7 +514,7 @@ void TopBar::setStories(rpl::producer content) { rpl::duplicate( last ) | rpl::start_with_next([=](const Content &content) { - const auto count = int(content.elements.size()); + const auto count = content.total; if (_storiesCount != count) { const auto was = (_storiesCount > 0); _storiesCount = count;