diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-02-24 13:18:52 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-02-25 08:31:57 +0000 |
commit | 66e01f2866479fe9f27f663ddcdc32fefb52e193 (patch) | |
tree | e65fa99c568dbb82056fb1bc2f0f57eb4c04f7ff | |
parent | 26db8c70baa518843ec5ceba04196608f4b82bf0 (diff) |
Move printToPDF to page
The API needs nothing from view and view just forwards it to the page
anyway. This is an page level API, this also makes it work without
being shown.
Change-Id: I3b8555ab472ec2c7632db3655bcc31925fcfa001
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
-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) |