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>
36class KPrintPreviewPrivate
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;
71void 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";
101bool 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);
120void 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"
void setInitialSize(const QSize &size)
void setButtons(ButtonCodes buttonMask)
virtual void setCaption(const QString &caption)
static KMimeTypeTrader * self()
KPrintPreview provides a print preview dialog.
static bool isAvailable()
Returns true if the print preview system is available.
void showEvent(QShowEvent *event)
KPrintPreview(QPrinter *printer, QWidget *parent=0)
Create a KPrintPreview object.
QString i18n(const char *text)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Thu Jul 20 2023 00:00:00 by
doxygen 1.9.8 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.