From 2639b1e8ed45d1c21099debe5ab6cbdf37a279ef Mon Sep 17 00:00:00 2001 From: "Martin T. H. Sandsmark" Date: Sat, 13 Aug 2016 22:29:50 +0200 Subject: [PATCH] Extend print preview dialog to handle .pdf previews --- ui/fileprinterpreview.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/ui/fileprinterpreview.cpp b/ui/fileprinterpreview.cpp index 59d0059bf..425f104dd 100644 --- a/ui/fileprinterpreview.cpp +++ b/ui/fileprinterpreview.cpp @@ -81,12 +81,18 @@ void FilePrinterPreviewPrivate::getPart() qCDebug(OkularUiDebug) << "querying trader for application/ps service"; KPluginFactory *factory(0); - /* Explicitly look for the Okular/Ghostview part: no other PostScript - parts are available now; other parts which handles text are not - suitable here (PostScript source code) */ - KService::List offers = - KMimeTypeTrader::self()->query(QStringLiteral("application/postscript"), QStringLiteral("KParts/ReadOnlyPart"), - QStringLiteral("[DesktopEntryName] == 'okularghostview'")); + KService::List offers; + if (filename.endsWith(QStringLiteral(".ps"))) { + /* Explicitly look for the Okular/Ghostview part: no other PostScript + parts are available now; other parts which handles text are not + suitable here (PostScript source code) */ + offers = + KMimeTypeTrader::self()->query(QStringLiteral("application/postscript"), + QStringLiteral("KParts/ReadOnlyPart"), + QStringLiteral("[DesktopEntryName] == 'okularghostview'")); + } else { + offers = KMimeTypeTrader::self()->query("application/pdf", "KParts/ReadOnlyPart"); + } KService::List::ConstIterator it = offers.constBegin(); while (!factory && it != offers.constEnd()) {