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());