Extract the layout logic to a view model to simplify the update logic in continuous scroll mode

This commit is contained in:
luisangelsm
2026-02-26 16:19:58 +01:00
committed by Luis Ángel San Martín
parent f61c5280c9
commit 0bd291ba98
7 changed files with 506 additions and 375 deletions

View File

@ -31,6 +31,7 @@ class YACReaderTranslator;
class GoToFlowWidget;
class Bookmarks;
class ContinuousPageWidget;
class ContinuousViewModel;
class PageLabelWidget;
class NotificationsLabelWidget;
@ -149,8 +150,10 @@ private:
QLabel *content;
QLabel *messageLabel;
ContinuousPageWidget *continuousWidget;
ContinuousViewModel *continuousViewModel;
int lastCenterPage = -1;
bool syncingRenderFromContinuousScroll = false;
bool applyingContinuousModelState = false;
YACReaderTranslator *translator;
int translatorXPos;
@ -191,7 +194,10 @@ private:
int animationDuration() const;
void animateScroll(QPropertyAnimation &scroller, const QScrollBar &scrollBar, int delta);
void onContinuousScroll(int value);
void onContinuousLayoutScrollRequested(int scrollY);
void onContinuousViewModelChanged();
void onContinuousPageRendered(int absolutePageIndex);
void probeContinuousBufferedPages();
void applyContinuousStateToUi();
void scrollToCurrentContinuousPage();
void onNumPagesReady(unsigned int numPages);
void onRenderPageChanged(int page);