Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qpdfview.h
Go to the documentation of this file.
1// Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Tobias König <tobias.koenig@kdab.com>
2// Copyright (C) 2023 The Qt Company Ltd.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5#ifndef QPDFVIEW_H
6#define QPDFVIEW_H
7
8#include <QtPdf/QPdfLink>
9#include <QtPdfWidgets/qtpdfwidgetsglobal.h>
10#include <QtWidgets/qabstractscrollarea.h>
11
12QT_BEGIN_NAMESPACE
13
14class QPdfDocument;
15class QPdfPageNavigator;
16class QPdfSearchModel;
17class QPdfViewPrivate;
18
19class Q_PDF_WIDGETS_EXPORT QPdfView : public QAbstractScrollArea
20{
21 Q_OBJECT
22
23 Q_PROPERTY(QPdfDocument* document READ document WRITE setDocument NOTIFY documentChanged)
24
25 Q_PROPERTY(PageMode pageMode READ pageMode WRITE setPageMode NOTIFY pageModeChanged)
26 Q_PROPERTY(ZoomMode zoomMode READ zoomMode WRITE setZoomMode NOTIFY zoomModeChanged)
27 Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged)
28
29 Q_PROPERTY(int pageSpacing READ pageSpacing WRITE setPageSpacing NOTIFY pageSpacingChanged)
30 Q_PROPERTY(QMargins documentMargins READ documentMargins WRITE setDocumentMargins NOTIFY documentMarginsChanged)
31
32 Q_PROPERTY(QPdfSearchModel* searchModel READ searchModel WRITE setSearchModel NOTIFY searchModelChanged)
33 Q_PROPERTY(int currentSearchResultIndex READ currentSearchResultIndex WRITE setCurrentSearchResultIndex NOTIFY currentSearchResultIndexChanged)
34
35public:
36 enum class PageMode
37 {
38 SinglePage,
39 MultiPage
40 };
41 Q_ENUM(PageMode)
42
43 enum class ZoomMode
44 {
45 Custom,
46 FitToWidth,
47 FitInView
48 };
49 Q_ENUM(ZoomMode)
50
51 QPdfView() : QPdfView(nullptr) {}
52 explicit QPdfView(QWidget *parent);
53 ~QPdfView();
54
55 void setDocument(QPdfDocument *document);
56 QPdfDocument *document() const;
57
58 QPdfSearchModel *searchModel() const;
59 void setSearchModel(QPdfSearchModel *searchModel);
60
61 int currentSearchResultIndex() const;
62
63 QPdfPageNavigator *pageNavigator() const;
64
65 PageMode pageMode() const;
66 ZoomMode zoomMode() const;
67 qreal zoomFactor() const;
68
69 int pageSpacing() const;
70 void setPageSpacing(int spacing);
71
72 QMargins documentMargins() const;
73 void setDocumentMargins(QMargins margins);
74
75public Q_SLOTS:
76 void setPageMode(QPdfView::PageMode mode);
77 void setZoomMode(QPdfView::ZoomMode mode);
78 void setZoomFactor(qreal factor);
79 void setCurrentSearchResultIndex(int currentResult);
80
81Q_SIGNALS:
82 void documentChanged(QPdfDocument *document);
83 void pageModeChanged(QPdfView::PageMode pageMode);
84 void zoomModeChanged(QPdfView::ZoomMode zoomMode);
85 void zoomFactorChanged(qreal zoomFactor);
86 void pageSpacingChanged(int pageSpacing);
87 void documentMarginsChanged(QMargins documentMargins);
88 void searchModelChanged(QPdfSearchModel *searchModel);
89 void currentSearchResultIndexChanged(int currentResult);
90
91protected:
92 void paintEvent(QPaintEvent *event) override;
93 void resizeEvent(QResizeEvent *event) override;
94 void scrollContentsBy(int dx, int dy) override;
95 void mousePressEvent(QMouseEvent *event) override;
96 void mouseMoveEvent(QMouseEvent *event) override;
97 void mouseReleaseEvent(QMouseEvent *event) override;
98
99private:
100 Q_DECLARE_PRIVATE(QPdfView)
101 QScopedPointer<QPdfViewPrivate> d_ptr;
102};
103
104QT_END_NAMESPACE
105
106#endif // QPDFVIEW_H
QTransform screenScaleTransform(int page) const
Definition qpdfview.cpp:316
void updateScrollBars()
Definition qpdfview.cpp:134
void setViewport(QRect viewport)
Definition qpdfview.cpp:92
QPdfPageRenderer * m_pageRenderer
Definition qpdfview_p.h:66
void updateDocumentLayout()
Definition qpdfview.cpp:331
QPdfPageNavigator * m_pageNavigator
Definition qpdfview_p.h:65
void documentStatusChanged(QPdfDocument::Status status)
Definition qpdfview.cpp:54
qreal yPositionForPage(int page) const
Definition qpdfview.cpp:307
void invalidatePageCache()
Definition qpdfview.cpp:224
void currentZoomChanged(qreal currentZoom)
Definition qpdfview.cpp:74
void invalidateDocumentLayout()
Definition qpdfview.cpp:218
void currentPageChanged(int currentPage)
Definition qpdfview.cpp:61
bool m_blockPageScrolling
Definition qpdfview_p.h:78
void calculateViewport()
Definition qpdfview.cpp:80
DocumentLayout calculateDocumentLayout() const
Definition qpdfview.cpp:232
void pageRendered(int pageNumber, QSize imageSize, const QImage &image, quint64 requestId)
Definition qpdfview.cpp:199
void scrollTo(const QPdfLink &link)
Definition qpdfview.cpp:151
\inmodule QtPdf
Definition qpdfview.h:20
Combined button and popup list for selecting options.
static const QColor CurrentSearchResultHighlight(Qt::cyan)
static const int CurrentSearchResultWidth(2)