Fix previewing a preview on reentrance
Make the print preview more tolerant of reentrance by avoiding previewing itself. Change-Id: Ia4774cb51bdda7d311414c4e2f9c2bfbed4f187f Pick-to: 6.7 6.6 6.5 Fixes: QTBUG-122749 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>bb10
parent
c606739ad1
commit
367e6ff0b2
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue