File 0001-Make-KHtmlView-print-be-able-to-use-a-predefined-QPr.patch of Package kdelibs4

From 33419207e1f99e326ce87323e2d2f9d6473d288a Mon Sep 17 00:00:00 2001
From: Ralf Habacker <ralf.habacker@freenet.de>
Date: Tue, 5 Mar 2019 21:15:41 +0100
Subject: [PATCH] Make KHtmlView::print() be able to use a predefined QPrinter
 instance

This is required to share printer setting inside an application.
---
 CMakeLists.txt      | 2 +-
 khtml/khtmlview.cpp | 8 +++++++-
 khtml/khtmlview.h   | 2 ++
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 50225a5..38dae86 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,7 +11,7 @@ include(CPack)
 
 set (KDE_VERSION_MAJOR 4)
 set (KDE_VERSION_MINOR 14)
-set (KDE_VERSION_RELEASE 38)
+set (KDE_VERSION_RELEASE 65)
 set (KDE_VERSION "${KDE_VERSION_MAJOR}.${KDE_VERSION_MINOR}.${KDE_VERSION_RELEASE}" )
 set (KDE_VERSION_STRING "${KDE_VERSION}")
 
diff --git a/khtml/khtmlview.cpp b/khtml/khtmlview.cpp
index 1ac2339..f341fa8 100644
--- a/khtml/khtmlview.cpp
+++ b/khtml/khtmlview.cpp
@@ -3026,13 +3026,19 @@ namespace {
 
 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<khtml::RenderCanvas *>(m_part->xmlDocImpl()->renderer());
     if(!root) return;
 
     QPointer<KHTMLPrintSettings> printSettings(new KHTMLPrintSettings); //XXX: doesn't save settings between prints like this
     const QPointerDeleter settingsDeleter(printSettings); //the printdialog takes ownership of the settings widget, thus this workaround to avoid double deletion
-    QPrinter printer;
+    QPrinter &printer = *_printer;
     QPointer<QPrintDialog> dialog = KdePrint::createPrintDialog(&printer, KdePrint::SystemSelectsPages, QList<QWidget*>() << printSettings.data(), this);
 
     const QPointerDeleter dialogDeleter(dialog);
diff --git a/khtml/khtmlview.h b/khtml/khtmlview.h
index 801f9a2..923be6b 100644
--- a/khtml/khtmlview.h
+++ b/khtml/khtmlview.h
@@ -32,6 +32,7 @@
 #include <QtGui/QScrollArea>
 
 class QPainter;
+class QPrinter;
 class QRect;
 template< typename T > class QVector;
 template <class T> class QStack;
@@ -183,6 +184,7 @@ public:
      * @param quick if true, fully automated printing, without print dialog
      */
     void print( bool quick = false );
+    void print(QPrinter *printer, bool quick = false);
 
     /**
      * Display all accesskeys in small tooltips
-- 
1.8.4.5

openSUSE Build Service is sponsored by