diff options
-rw-r--r-- | examples/webenginewidgets/demobrowser/browsermainwindow.cpp | 2 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 6 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 5 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.h | 3 | ||||
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 17 | ||||
-rw-r--r-- | tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 19 |
7 files changed, 27 insertions, 28 deletions
diff --git a/examples/webenginewidgets/demobrowser/browsermainwindow.cpp b/examples/webenginewidgets/demobrowser/browsermainwindow.cpp index 60b69ddd6..e3c7c466d 100644 --- a/examples/webenginewidgets/demobrowser/browsermainwindow.cpp +++ b/examples/webenginewidgets/demobrowser/browsermainwindow.cpp @@ -712,7 +712,7 @@ void BrowserMainWindow::slotFilePrintToPDF() if (dialog->exec() != QDialog::Accepted || printer.outputFileName().isEmpty()) return; - currentTab()->printToPDF(printer.outputFileName(), printer.pageLayout()); + currentTab()->page()->printToPDF(printer.outputFileName(), printer.pageLayout()); #endif // QT_NO_PRINTER } diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 8774c1c97..3115340ef 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -1633,6 +1633,12 @@ QSizeF QWebEnginePage::contentsSize() const return d->adapter->lastContentsSize(); } +void QWebEnginePage::printToPDF(const QString &filePath, const QPageLayout &pageLayout) +{ + Q_D(const QWebEnginePage); + d->adapter->printToPDF(pageLayout, filePath); +} + QT_END_NAMESPACE #include "moc_qwebenginepage.cpp" diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index 08663a05e..20fff3ab4 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -47,6 +47,7 @@ #include <QtCore/qobject.h> #include <QtCore/qurl.h> #include <QtCore/qvariant.h> +#include <QtGui/qpagelayout.h> #include <QtNetwork/qnetworkaccessmanager.h> #include <QtWidgets/qwidget.h> @@ -267,6 +268,8 @@ public: void setAudioMuted(bool muted); bool wasRecentlyAudible(); + void printToPDF(const QString &filePath, const QPageLayout &layout = QPageLayout()); + Q_SIGNALS: void loadStarted(); void loadProgress(int progress); diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index b40ff2b51..f5e180541 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -263,11 +263,6 @@ QWebEngineView *QWebEngineView::createWindow(QWebEnginePage::WebWindowType type) return 0; } -void QWebEngineView::printToPDF(const QString &filePath, const QPageLayout &pageLayout) -{ - page()->d_func()->adapter->printToPDF(pageLayout, filePath); -} - qreal QWebEngineView::zoomFactor() const { return page()->zoomFactor(); diff --git a/src/webenginewidgets/api/qwebengineview.h b/src/webenginewidgets/api/qwebengineview.h index 30125e575..91410fd2d 100644 --- a/src/webenginewidgets/api/qwebengineview.h +++ b/src/webenginewidgets/api/qwebengineview.h @@ -41,7 +41,6 @@ #define QWEBENGINEVIEW_H #include <QtGui/qpainter.h> -#include <QtGui/qpagelayout.h> #include <QtNetwork/qnetworkaccessmanager.h> #include <QtWidgets/qwidget.h> @@ -105,8 +104,6 @@ public: virtual QSize sizeHint() const Q_DECL_OVERRIDE; QWebEngineSettings *settings() const; - void printToPDF(const QString &filePath, const QPageLayout &layout = QPageLayout()); - public Q_SLOTS: void stop(); void back(); diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 207eb019a..685cb9ffc 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -244,6 +244,8 @@ private Q_SLOTS: void toPlainTextLoadFinishedRace_data(); void toPlainTextLoadFinishedRace(); + void printToPDF(); + private: QWebEngineView* m_view; QWebEnginePage* m_page; @@ -5148,5 +5150,20 @@ void tst_QWebEnginePage::toPlainTextLoadFinishedRace() QVERIFY(spy.count() == 3); } +void tst_QWebEnginePage::printToPDF() +{ + QTemporaryDir tempDir(QDir::tempPath() + "/tst_qwebengineview-XXXXXX"); + QVERIFY(tempDir.isValid()); + QWebEnginePage page; + QSignalSpy spy(&page, SIGNAL(loadFinished(bool))); + page.load(QUrl("qrc:///resources/basic_printing_page.html")); + QTRY_VERIFY(spy.count() == 1); + + QPageLayout layout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF(0.0, 0.0, 0.0, 0.0)); + QString path = tempDir.path() + "/print_success.pdf"; + page.printToPDF(path, layout); + QTRY_VERIFY(QFile::exists(path)); +} + QTEST_MAIN(tst_QWebEnginePage) #include "tst_qwebenginepage.moc" diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index b09e45646..773550922 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -61,7 +61,6 @@ private Q_SLOTS: void setPalette_data(); void setPalette(); #endif - void printToPDF(); }; // This will be called before the first test function is executed. @@ -531,24 +530,6 @@ void tst_QWebEngineView::setPalette() } #endif -void tst_QWebEngineView::printToPDF() -{ - QTemporaryDir tempDir(QDir::tempPath() + "/tst_qwebengineview-XXXXXX"); - QVERIFY(tempDir.isValid()); - QWebEngineView view; - QUrl url("qrc:///resources/basic_printing_page.html"); - view.page()->load(url); - QVERIFY(waitForSignal(&view, SIGNAL(loadFinished(bool)))); - view.show(); - - QTest::qWaitForWindowExposed(&view); - QPageLayout layout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF(0.0, 0.0, 0.0, 0.0)); - QString path = tempDir.path() + "/print_success.pdf"; - view.printToPDF(path, layout); - QTest::qWait(500); - QVERIFY(QFile::exists(path)); -} - void tst_QWebEngineView::renderingAfterMaxAndBack() { #if !defined(QWEBENGINEPAGE_RENDER) |