summaryrefslogtreecommitdiffstats
path: root/tests/manual/dialogs/printdialogpanel.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-01-28 11:48:38 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-28 13:41:10 +0100
commit22ec4ed86664ab795d2fa47245645b6a73018039 (patch)
tree375e9be6cd441a04cc8747d6921bf4955ca89702 /tests/manual/dialogs/printdialogpanel.cpp
parent68fa04590a22b2acdf5942deb02366a55cc5e594 (diff)
QPrintDialog manual test: Break endless loop for invalid DPI.
Change-Id: I8684f144e27392f834f91adef17826b77de60b93 Reviewed-by: John Layt <jlayt@kde.org>
Diffstat (limited to 'tests/manual/dialogs/printdialogpanel.cpp')
-rw-r--r--tests/manual/dialogs/printdialogpanel.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/tests/manual/dialogs/printdialogpanel.cpp b/tests/manual/dialogs/printdialogpanel.cpp
index 02beaa4bae..bede2b657a 100644
--- a/tests/manual/dialogs/printdialogpanel.cpp
+++ b/tests/manual/dialogs/printdialogpanel.cpp
@@ -211,15 +211,9 @@ static void print(QPrinter *printer)
QPainter painter(printer);
const QRectF pageF = printer->pageRect();
- painter.drawRect(pageF);
-
- drawHorizCmRuler(painter, pageF.x(), pageF.right(), pageF.height() /2);
- drawVertCmRuler(painter, pageF.x() + pageF.width() / 2, pageF.top(), pageF.bottom());
-
QFont font = painter.font();
font.setFamily("Courier");
font.setPointSize(10);
- painter.setFont(font);
// Format message.
const int charHeight = QFontMetrics(font).boundingRect('X').height();
@@ -233,6 +227,17 @@ static void print(QPrinter *printer)
<< "\nFont: " << font.family() << ' ' << font.pointSize() << '\n'
<< *printer;
+ if (!painter.device()->logicalDpiY() || !painter.device()->logicalDpiX()) {
+ qWarning() << Q_FUNC_INFO << "Bailing out due to invalid DPI: " << msg;
+ return;
+ }
+
+ painter.drawRect(pageF);
+
+ drawHorizCmRuler(painter, pageF.x(), pageF.right(), pageF.height() /2);
+ drawVertCmRuler(painter, pageF.x() + pageF.width() / 2, pageF.top(), pageF.bottom());
+
+ painter.setFont(font);
QPointF textPoint = pageF.topLeft() + QPoint(10, charHeight + 10);
foreach (const QString &line, msg.split('\n')) {
painter.drawText(textPoint, line);