diff options
-rw-r--r-- | src/printsupport/kernel/qprinter.cpp | 5 | ||||
-rw-r--r-- | src/printsupport/kernel/qprinter_p.h | 1 | ||||
-rw-r--r-- | src/printsupport/widgets/qprintpreviewwidget.cpp | 3 |
3 files changed, 9 insertions, 0 deletions
diff --git a/src/printsupport/kernel/qprinter.cpp b/src/printsupport/kernel/qprinter.cpp index c4af319c0c5..10c4c681baa 100644 --- a/src/printsupport/kernel/qprinter.cpp +++ b/src/printsupport/kernel/qprinter.cpp @@ -129,6 +129,11 @@ QList<const QPicture *> QPrinterPrivate::previewPages() const return QList<const QPicture *>(); } +bool QPrinterPrivate::previewMode() const +{ + return (previewEngine != nullptr) && (previewEngine == printEngine); +} + void QPrinterPrivate::setPreviewMode(bool enable) { Q_Q(QPrinter); diff --git a/src/printsupport/kernel/qprinter_p.h b/src/printsupport/kernel/qprinter_p.h index 3c6cf711b01..77dd5fb4bc3 100644 --- a/src/printsupport/kernel/qprinter_p.h +++ b/src/printsupport/kernel/qprinter_p.h @@ -70,6 +70,7 @@ public: #if QT_CONFIG(printpreviewwidget) QList<const QPicture *> previewPages() const; void setPreviewMode(bool); + bool previewMode() const; #endif void setProperty(QPrintEngine::PrintEnginePropertyKey key, const QVariant &value); diff --git a/src/printsupport/widgets/qprintpreviewwidget.cpp b/src/printsupport/widgets/qprintpreviewwidget.cpp index 97e8f8a7c2f..637eb425052 100644 --- a/src/printsupport/widgets/qprintpreviewwidget.cpp +++ b/src/printsupport/widgets/qprintpreviewwidget.cpp @@ -361,6 +361,9 @@ void QPrintPreviewWidgetPrivate::generatePreview() //### emit paintRequested() until the user changes some parameter Q_Q(QPrintPreviewWidget); + // Avoid previewing a preview + if (printer->d_func()->previewMode()) + return; printer->d_func()->setPreviewMode(true); emit q->paintRequested(printer); printer->d_func()->setPreviewMode(false); |