From 74c65f30f75afdfdfa2024ec568f1fc5994aeff5 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 18 Apr 2019 13:31:16 +0400 Subject: [PATCH] Load folder dialogs while scrolling. --- Telegram/SourceFiles/dialogs/dialogs_widget.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index 6b424c35a..4a3d4173a 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -36,6 +36,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_channel.h" #include "data/data_chat.h" #include "data/data_user.h" +#include "data/data_folder.h" #include "styles/style_dialogs.h" #include "styles/style_history.h" #include "styles/style_window.h" @@ -1055,12 +1056,20 @@ void DialogsWidget::dropEvent(QDropEvent *e) { } void DialogsWidget::onListScroll() { - auto scrollTop = _scroll->scrollTop(); + const auto scrollTop = _scroll->scrollTop(); _inner->setVisibleTopBottom(scrollTop, scrollTop + _scroll->height()); updateScrollUpVisibility(); // Fix button rendering glitch, Qt bug with WA_OpaquePaintEvent widgets. _scrollToTop->update(); + + if (const auto folder = _inner->shownFolder()) { + if (!folder->chatsListLoaded() + && (scrollTop + height() * PreloadHeightsCount + >= _scroll->scrollTopMax())) { + session().api().requestFolderDialogs(folder->id()); + } + } } void DialogsWidget::applyFilterUpdate(bool force) {