From decd4849a80ddd77addfd35013ac2ca0e6b00e7a Mon Sep 17 00:00:00 2001 From: "Martin T. H. Sandsmark" Date: Sat, 13 Aug 2016 22:30:22 +0200 Subject: [PATCH] Use Okular's own print preview dialog for all documents --- part.cpp | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/part.cpp b/part.cpp index e23ac6eaf..2db938764 100644 --- a/part.cpp +++ b/part.cpp @@ -68,8 +68,6 @@ #include #include -#include - #if 0 #include #endif @@ -2453,30 +2451,33 @@ void Part::slotPrintPreview() if (m_document->pages() == 0) return; QPrinter printer; + QString tempFilePattern; - // Native printing supports KPrintPreview, Postscript needs to use FilePrinterPreview - if ( m_document->printingSupport() == Okular::Document::NativePrinting ) + if ( m_document->printingSupport() == Okular::Document::PostscriptPrinting ) { - KPrintPreview previewdlg( &printer, widget() ); - setupPrint( printer ); - doPrint( printer ); - previewdlg.exec(); + tempFilePattern = (QDir::tempPath() + QLatin1String("/okular_XXXXXX.ps")); + } + else if ( m_document->printingSupport() == Okular::Document::NativePrinting ) + { + tempFilePattern = (QDir::tempPath() + QLatin1String("/okular_XXXXXX.pdf")); } else { - // Generate a temp filename for Print to File, then release the file so generator can write to it - QTemporaryFile tf(QDir::tempPath() + QLatin1String("/okular_XXXXXX.ps")); - tf.setAutoRemove( true ); - tf.open(); - printer.setOutputFileName( tf.fileName() ); - tf.close(); - setupPrint( printer ); - doPrint( printer ); - if ( QFile::exists( printer.outputFileName() ) ) - { - Okular::FilePrinterPreview previewdlg( printer.outputFileName(), widget() ); - previewdlg.exec(); - } + return; + } + + // Generate a temp filename for Print to File, then release the file so generator can write to it + QTemporaryFile tf(tempFilePattern); + tf.setAutoRemove( true ); + tf.open(); + printer.setOutputFileName( tf.fileName() ); + tf.close(); + setupPrint( printer ); + doPrint( printer ); + if ( QFile::exists( printer.outputFileName() ) ) + { + Okular::FilePrinterPreview previewdlg( printer.outputFileName(), widget() ); + previewdlg.exec(); } }