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;
@@ -200,6 +201,13 @@
void print(bool quick = false);
/**
+ * Prints the HTML document.
+ * @param printer shared printer instance
+ * @param quick if true, fully automated printing, without print dialog
+ */
+ void print(QPrinter *printer, bool quick = false);
+
+ /**
* Display all accesskeys in small tooltips
*/
void displayAccessKeys();
diff --git a/src/khtmlview.cpp b/src/khtmlview.cpp
--- a/src/khtmlview.cpp
+++ b/src/khtmlview.cpp
@@ -3127,15 +3127,21 @@
void KHTMLView::print(bool quick)
{
+ QPrinter printer;
+ print(&printer, quick);
+}
+
+void KHTMLView::print(QPrinter *_printer, bool quick)
+{
if (!m_part->xmlDocImpl()) {
return;
}
khtml::RenderCanvas *root = static_cast(m_part->xmlDocImpl()->renderer());
if (!root) {
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());