diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2022-03-28 12:31:13 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2022-04-08 14:56:56 +0200 |
commit | 3ad445f9f24a9d3f259ed1781460a63346a728e4 (patch) | |
tree | dd20d47c7dcdb10d3e66a5b8e6728a38e2c404e6 /src/pdfwidgets/qpdfview.cpp | |
parent | a4e32eac5cb858ffa5668b01cef10cc42854713b (diff) |
Move QQuickPdfNavStack core into QPdfNavigationStack; use in QPdfView
QQuickPdfNavigationStack was implemented independently until now, but
users will need the same functionality in widget-based PDF viewers.
QPdfPageNavigation on the other hand may have eventually had the same
aspiration, but was just a glorified up/down counter thus far, with
questionable API; so we get rid of it, and make the API for page
navigation as much the same as possible between Quick and Widgets.
We rename push() to jump() along with removing the emitJumped argument.
Now jump() always emits (so we have to be more careful when to call it).
Change-Id: Icb07158a351e29b81e58ec037cd323bc0f54a1a1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'src/pdfwidgets/qpdfview.cpp')
-rw-r--r-- | src/pdfwidgets/qpdfview.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/pdfwidgets/qpdfview.cpp b/src/pdfwidgets/qpdfview.cpp index 9b161809f..5680daabf 100644 --- a/src/pdfwidgets/qpdfview.cpp +++ b/src/pdfwidgets/qpdfview.cpp @@ -46,7 +46,7 @@ #include <QPainter> #include <QPaintEvent> #include <QPdfDocument> -#include <QPdfPageNavigation> +#include <QPdfNavigationStack> #include <QScreen> #include <QScrollBar> #include <QScroller> @@ -73,7 +73,7 @@ void QPdfViewPrivate::init() { Q_Q(QPdfView); - m_pageNavigation = new QPdfPageNavigation(q); + m_pageNavigation = new QPdfNavigationStack(q); m_pageRenderer = new QPdfPageRenderer(q); m_pageRenderer->setRenderMode(QPdfPageRenderer::RenderMode::MultiThreaded); } @@ -129,7 +129,7 @@ void QPdfViewPrivate::setViewport(QRect viewport) if (m_pageMode == QPdfView::MultiPage) { // An imaginary, 2px height line at the upper half of the viewport, which is used to // determine which page is currently located there -> we propagate that as 'current' page - // to the QPdfPageNavigation object + // to the QPdfNavigationStack object const QRect currentPageLine(m_viewport.x(), m_viewport.y() + m_viewport.height() * 0.4, m_viewport.width(), 2); int currentPage = 0; @@ -143,7 +143,8 @@ void QPdfViewPrivate::setViewport(QRect viewport) if (currentPage != m_pageNavigation->currentPage()) { m_blockPageScrolling = true; - m_pageNavigation->setCurrentPage(currentPage); + // ΤODO give location on the page + m_pageNavigation->jump(currentPage, {}, m_zoomFactor); m_blockPageScrolling = false; } } @@ -289,7 +290,7 @@ QPdfView::QPdfView(QWidget *parent) d->init(); - connect(d->m_pageNavigation, &QPdfPageNavigation::currentPageChanged, this, [d](int page){ d->currentPageChanged(page); }); + connect(d->m_pageNavigation, &QPdfNavigationStack::currentPageChanged, this, [d](int page){ d->currentPageChanged(page); }); connect(d->m_pageRenderer, &QPdfPageRenderer::pageRendered, this, [d](int pageNumber, QSize imageSize, const QImage &image, QPdfDocumentRenderOptions, quint64 requestId){ d->pageRendered(pageNumber, imageSize, image, requestId); }); @@ -322,7 +323,6 @@ void QPdfView::setDocument(QPdfDocument *document) if (d->m_document) d->m_documentStatusChangedConnection = connect(d->m_document.data(), &QPdfDocument::statusChanged, this, [d](){ d->documentStatusChanged(); }); - d->m_pageNavigation->setDocument(d->m_document); d->m_pageRenderer->setDocument(d->m_document); d->documentStatusChanged(); @@ -335,7 +335,7 @@ QPdfDocument *QPdfView::document() const return d->m_document; } -QPdfPageNavigation *QPdfView::pageNavigation() const +QPdfNavigationStack *QPdfView::pageNavigation() const { Q_D(const QPdfView); |