KUtils
Go to the documentation of this file.
22 #include <QtCore/QFile>
23 #include <QtGui/QLabel>
24 #include <QtGui/QPrinter>
25 #include <QtGui/QShowEvent>
28 #include <kparts/part.h>
36 class KPrintPreviewPrivate
39 KPrintPreviewPrivate(
KPrintPreview *host, QPrinter * _printer)
46 if ( tempdir.exists() ) {
47 filename = tempdir.name() +
"print_preview.pdf";
50 kWarning() <<
"Failed to create temporary directory";
51 filename =
"/dev/null";
67 KParts::ReadOnlyPart *previewPart;
71 void KPrintPreviewPrivate::getPart()
74 kDebug(500) <<
"already got a part";
77 kDebug(500) <<
"querying trader for application/pdf service";
83 KService::List::ConstIterator it = offers.begin();
84 while (!factory && it != offers.end()) {
86 factory = loader.factory();
88 kDebug(500) <<
"Loading failed:" << loader.errorString();
93 kDebug(500) <<
"Trying to create a part";
94 previewPart = factory->create<KParts::ReadOnlyPart>(q, (QVariantList() <<
"Print/Preview"));
96 kDebug(500) <<
"Part creation failed";
101 bool KPrintPreviewPrivate::doPreview()
103 if (!QFile::exists(filename)) {
104 kWarning() <<
"Nothing was produced to be previewed";
111 kWarning() <<
"Could not find a PDF viewer for the preview dialog";
115 q->setMainWidget(previewPart->widget());
116 return previewPart->openUrl(filename);
120 void KPrintPreviewPrivate::fail()
123 failMessage =
new QLabel(
i18n(
"Could not load print preview part"), q);
125 q->setMainWidget(failMessage);
133 , d(new KPrintPreviewPrivate(this, printer))
135 kDebug(500) <<
"kdeprint: creating preview dialog";
144 kDebug(500) <<
"Will print to" << d->filename;
145 printer->setOutputFileName(d->filename);
158 if (!event->spontaneous()) {
160 if (!d->doPreview()) {
165 KDialog::showEvent(event);
173 #include "kprintpreview.moc"
KPrintPreview(QPrinter *printer, QWidget *parent=0)
Create a KPrintPreview object.
void showEvent(QShowEvent *event)
KPrintPreview provides a print preview dialog.
static QDebug kDebug(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
static bool isAvailable()
Returns true if the print preview system is available.
KService::List query(const QString &mimeType, const QString &genericServiceType=QString::fromLatin1("Application"), const QString &constraint=QString()) const
QString i18n(const char *text)
static QDebug kWarning(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
void setInitialSize(const QSize &size)
virtual void setCaption(const QString &caption)
void setButtons(ButtonCodes buttonMask)
static KMimeTypeTrader * self()
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Thu Aug 27 2020 00:00:00 by
doxygen 1.8.20 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.