OSDN Git Service

okular: connect to the paintRequested() signal of QPrintPreviewDialog
authorIvailo Monev <xakepa10@gmail.com>
Fri, 11 Nov 2022 03:06:48 +0000 (05:06 +0200)
committerIvailo Monev <xakepa10@gmail.com>
Fri, 11 Nov 2022 03:06:48 +0000 (05:06 +0200)
printing to the QPrinter of QPrintPreviewDialog must be done on demand,
fixes print preview in general

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
okular/part.cpp
okular/part.h

index cc68080..9464a81 100644 (file)
@@ -2345,7 +2345,7 @@ void Part::slotPrintPreview()
     {
         QPrintPreviewDialog previewdlg( &printer, widget() );
         setupPrint( printer );
-        doPrint( printer );
+        connect( &previewdlg, SIGNAL(paintRequested(QPrinter*)), this, SLOT(slotPrintRequested(QPrinter*)) );
         previewdlg.exec();
     }
     else
@@ -2655,6 +2655,10 @@ void Part::setupPrint( QPrinter &printer )
     }
 }
 
+void Part::slotPrintRequested(QPrinter *printer)
+{
+    doPrint(*printer);
+}
 
 void Part::doPrint(QPrinter &printer)
 {
index 225812e..d7f5bde 100644 (file)
@@ -240,7 +240,7 @@ class OKULARPART_EXPORT Part : public KParts::ReadWritePart, public Okular::Docu
         void setupActions();
 
         void setupPrint( QPrinter &printer );
-        void doPrint( QPrinter &printer );
+        void doPrint(QPrinter &printer);
         bool handleCompressed( QString &destpath, const QString &path, const QString &compressedMimetype );
         void rebuildBookmarkMenu( bool unplugActions = true );
         void updateAboutBackendAction();
@@ -348,6 +348,7 @@ class OKULARPART_EXPORT Part : public KParts::ReadWritePart, public Okular::Docu
         QTimer *m_infoTimer;
 
     private slots:
+        void slotPrintRequested( QPrinter *printer );
         void slotAnnotationPreferences();
         void slotHandleActivatedSourceReference(const QString& absFileName, int line, int col, bool *handled);
 };