diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-01-28 11:48:38 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-28 13:41:10 +0100 |
commit | 22ec4ed86664ab795d2fa47245645b6a73018039 (patch) | |
tree | 375e9be6cd441a04cc8747d6921bf4955ca89702 | |
parent | 68fa04590a22b2acdf5942deb02366a55cc5e594 (diff) |
QPrintDialog manual test: Break endless loop for invalid DPI.
Change-Id: I8684f144e27392f834f91adef17826b77de60b93
Reviewed-by: John Layt <jlayt@kde.org>
-rw-r--r-- | tests/manual/dialogs/printdialogpanel.cpp | 17 |
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); |