From b96e09534dfba482e10087016ccad4fdcb44ad04 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 2 Aug 2022 12:38:28 +0300 Subject: [PATCH] Fix blocked list loading. Fixes #24783. --- .../settings/settings_blocked_peers.cpp | 22 +++++++++++-------- .../settings/settings_blocked_peers.h | 7 ++++++ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/Telegram/SourceFiles/settings/settings_blocked_peers.cpp b/Telegram/SourceFiles/settings/settings_blocked_peers.cpp index 7ea81f1073..620433d736 100644 --- a/Telegram/SourceFiles/settings/settings_blocked_peers.cpp +++ b/Telegram/SourceFiles/settings/settings_blocked_peers.cpp @@ -30,7 +30,8 @@ Blocked::Blocked( QWidget *parent, not_null controller) : Section(parent) -, _controller(controller) { +, _controller(controller) +, _container(Ui::CreateChild(this)) { setupContent(); @@ -117,12 +118,11 @@ QPointer Blocked::createPinnedToTop(not_null parent) { void Blocked::setupContent() { using namespace rpl::mappers; - const auto container = Ui::CreateChild(this); - const auto listWrap = container->add( + const auto listWrap = _container->add( object_ptr>( - container, - object_ptr(container))); + _container, + object_ptr(_container))); listWrap->toggleOn( _emptinessChanges.events_starting_with(true) | rpl::map(!_1), anim::type::instant); @@ -152,10 +152,10 @@ void Blocked::setupContent() { _countBlocked = content->fullRowsCount(); } - const auto emptyWrap = container->add( + const auto emptyWrap = _container->add( object_ptr>( - container, - object_ptr(container))); + _container, + object_ptr(_container))); emptyWrap->toggleOn( _emptinessChanges.events_starting_with(false), anim::type::instant); @@ -200,7 +200,7 @@ void Blocked::setupContent() { AddSkip(content, st::blockedUsersListIconPadding.top()); } - Ui::ResizeFitChild(this, container); + Ui::ResizeFitChild(this, _container); } void Blocked::checkTotal(int total) { @@ -208,6 +208,10 @@ void Blocked::checkTotal(int total) { _emptinessChanges.fire(total <= 0); } +void Blocked::visibleTopBottomUpdated(int visibleTop, int visibleBottom) { + setChildVisibleTopBottom(_container, visibleTop, visibleBottom); +} + void Blocked::showFinished() { _showFinished.fire({}); } diff --git a/Telegram/SourceFiles/settings/settings_blocked_peers.h b/Telegram/SourceFiles/settings/settings_blocked_peers.h index a5642faa9f..f70726e01a 100644 --- a/Telegram/SourceFiles/settings/settings_blocked_peers.h +++ b/Telegram/SourceFiles/settings/settings_blocked_peers.h @@ -9,6 +9,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "settings/settings_common.h" +namespace Ui { +class VerticalLayout; +} // namespace Ui + namespace Window { class Controller; } // namespace Window @@ -32,7 +36,10 @@ private: void setupContent(); void checkTotal(int total); + void visibleTopBottomUpdated(int visibleTop, int visibleBottom) override; + const not_null _controller; + const not_null _container; base::unique_qptr _loading;