From df222f8ccb2151e519b92d3d2046ee74f221902e Mon Sep 17 00:00:00 2001 From: Michael Bruning Date: Thu, 25 Feb 2016 13:40:01 +0100 Subject: Add callback to printing API Also corrects and updates the printToPDF docs to reflect recent changes. Change-Id: Iffe276a1046d6d55923939f9d72b97cd533017ff Reviewed-by: Joerg Bornemann --- .../demobrowser/browsermainwindow.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'examples/webenginewidgets/demobrowser/browsermainwindow.cpp') diff --git a/examples/webenginewidgets/demobrowser/browsermainwindow.cpp b/examples/webenginewidgets/demobrowser/browsermainwindow.cpp index e3c7c466d..e72a2b5fe 100644 --- a/examples/webenginewidgets/demobrowser/browsermainwindow.cpp +++ b/examples/webenginewidgets/demobrowser/browsermainwindow.cpp @@ -701,6 +701,21 @@ void BrowserMainWindow::slotFilePrint() #endif } +void BrowserMainWindow::slotHandlePdfPrinted(const QByteArray& result) +{ + if (!result.size()) + return; + + QFile file(m_printerOutputFileName); + + m_printerOutputFileName.clear(); + if (!file.open(QFile::WriteOnly)) + return; + + file.write(result.data(), result.size()); + file.close(); +} + void BrowserMainWindow::slotFilePrintToPDF() { #ifndef QT_NO_PRINTER @@ -709,10 +724,13 @@ void BrowserMainWindow::slotFilePrintToPDF() QPrinter printer; QPrintDialog *dialog = new QPrintDialog(&printer, this); dialog->setWindowTitle(tr("Print Document")); - if (dialog->exec() != QDialog::Accepted || printer.outputFileName().isEmpty()) + if (dialog->exec() != QDialog::Accepted || printer.outputFileName().isEmpty() || !m_printerOutputFileName.isEmpty()) return; - currentTab()->page()->printToPDF(printer.outputFileName(), printer.pageLayout()); + m_printerOutputFileName = printer.outputFileName(); + + currentTab()->page()->printToPdf(printer.pageLayout(), invoke(this, &BrowserMainWindow::slotHandlePdfPrinted)); + #endif // QT_NO_PRINTER } -- cgit v1.2.3