diff --git a/src/khtmlview.h b/src/khtmlview.h --- a/src/khtmlview.h +++ b/src/khtmlview.h @@ -32,6 +32,7 @@ #include class QPainter; +class QPrinter; class QRect; template< typename T > class QVector; template class QStack; @@ -199,6 +200,15 @@ */ void print(bool quick = false); + /** + * Prints the HTML document. + * @param printer shared printer instance + * @param quick if true, fully automated printing, without print dialog + * + * @since 5.64 + */ + void print(QPrinter *printer, bool quick = false); + /** * Display all accesskeys in small tooltips */ diff --git a/src/khtmlview.cpp b/src/khtmlview.cpp --- a/src/khtmlview.cpp +++ b/src/khtmlview.cpp @@ -3126,6 +3126,12 @@ } void KHTMLView::print(bool quick) +{ + QPrinter printer; + print(&printer, quick); +} + +void KHTMLView::print(QPrinter *_printer, bool quick) { if (!m_part->xmlDocImpl()) { return; @@ -3135,7 +3141,7 @@ return; } - QPrinter printer; + QPrinter &printer = *_printer; QPointer dialog(new QPrintDialog(&printer, this)); QPointer printSettings(new KHTMLPrintSettings(dialog)); //XXX: doesn't save settings between prints like this dialog->setOptionTabs(QList() << printSettings.data());