| 406 | } |
| 407 | |
| 408 | void ContinuousPageWidget::managedPageRange(int &minPageIndex, int &maxPageIndex) const |
| 409 | { |
| 410 | minPageIndex = 0; |
| 411 | maxPageIndex = -1; |
| 412 | |
| 413 | if (!continuousViewModel || continuousViewModel->numPages() <= 0) { |
| 414 | return; |
| 415 | } |
| 416 | |
| 417 | const int numPages = continuousViewModel->numPages(); |
| 418 | const int viewportHeight = continuousViewModel->viewportHeight() > 0 ? continuousViewModel->viewportHeight() : height(); |
| 419 | const int visibleTop = continuousViewModel->scrollY(); |
| 420 | const int visibleBottom = visibleTop + std::max(0, viewportHeight - 1); |
| 421 | |
| 422 | const int firstVisiblePage = qBound(0, continuousViewModel->pageAtY(visibleTop), numPages - 1); |
| 423 | const int lastVisiblePage = qBound(0, continuousViewModel->pageAtY(visibleBottom), numPages - 1); |
| 424 | |
| 425 | minPageIndex = std::max(0, firstVisiblePage - kPrefetchBehind); |
| 426 | maxPageIndex = std::min(numPages - 1, lastVisiblePage + kPrefetchAhead); |
| 427 | } |
nothing calls this directly
no test coverage detected