aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2020-09-21 10:03:48 +0200
committerDavid Schulz <david.schulz@qt.io>2020-09-21 10:18:29 +0000
commitda2e8bbf7ba3300b7c41220071fbcdd2d2a8d9ef (patch)
tree6a14237da39b6a5e614a05aeae3b79740cb6df8a /src
parent6e4de116bf1c3e96a7091212d0b897c83b633c92 (diff)
Editor: fix hanging when using invalid printer page rect
Some printer seem to return an empty page rect for some configuration which results in an invalide page count and a freezing ui. Do not print anything and return in that case. Fixes: QTCREATORBUG-24110 Change-Id: I42349bc97734e3f6a67502482d2b02959e865665 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/texteditor/texteditor.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index 8a2036f524..7e2d990fe5 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -1164,6 +1164,10 @@ void TextEditorWidgetPrivate::print(QPrinter *printer)
if (!p.isActive())
return;
+ QRectF pageRect(printer->pageRect());
+ if (pageRect.isEmpty())
+ return;
+
doc = doc->clone(doc);
Utils::ExecuteOnDestruction docDeleter([doc]() { delete doc; });
@@ -1217,7 +1221,6 @@ void TextEditorWidgetPrivate::print(QPrinter *printer)
fmt.setMargin(margin);
doc->rootFrame()->setFrameFormat(fmt);
- QRectF pageRect(printer->pageRect());
QRectF body = QRectF(0, 0, pageRect.width(), pageRect.height());
QFontMetrics fontMetrics(doc->defaultFont(), p.device());