summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-02-24 13:18:52 +0100
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-02-25 08:31:57 +0000
commit66e01f2866479fe9f27f663ddcdc32fefb52e193 (patch)
treee65fa99c568dbb82056fb1bc2f0f57eb4c04f7ff
parent26db8c70baa518843ec5ceba04196608f4b82bf0 (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.cpp2
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp6
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h3
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp5
-rw-r--r--src/webenginewidgets/api/qwebengineview.h3
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp17
-rw-r--r--tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp19
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)