From 61b608dfb578e873239eda957988a54ebe321c59 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Thu, 10 Sep 2015 20:39:10 +0200 Subject: QScreen manual test: don't crash when a QScreen is null Need to survive having screens detached/reattached on X11. Task-number: QTBUG-42985 Change-Id: I81cf9721f0cb61a29180c60d44d588063266e651 Reviewed-by: Laszlo Agocs --- tests/manual/qscreen/main.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'tests/manual/qscreen') diff --git a/tests/manual/qscreen/main.cpp b/tests/manual/qscreen/main.cpp index 8ed9cebfb4..298996a59b 100644 --- a/tests/manual/qscreen/main.cpp +++ b/tests/manual/qscreen/main.cpp @@ -131,10 +131,19 @@ static inline QString msgScreenChange(const QWidget *w, const QScreen *oldScreen QString result; const QRect geometry = w->geometry(); const QPoint pos = QCursor::pos(); - QTextStream(&result) << "Screen changed \"" << oldScreen->name() << "\" --> \"" - << newScreen->name() << "\" at " << pos.x() << ',' << pos.y() << " geometry: " - << geometry.width() << 'x' << geometry.height() << forcesign << geometry.x() - << geometry.y() << '.'; + if (!newScreen) { + result = QLatin1String("Screen changed --> null"); + } else if (!oldScreen) { + QTextStream(&result) << "Screen changed null --> \"" + << newScreen->name() << "\" at " << pos.x() << ',' << pos.y() << " geometry: " + << geometry.width() << 'x' << geometry.height() << forcesign << geometry.x() + << geometry.y() << '.'; + } else { + QTextStream(&result) << "Screen changed \"" << oldScreen->name() << "\" --> \"" + << newScreen->name() << "\" at " << pos.x() << ',' << pos.y() << " geometry: " + << geometry.width() << 'x' << geometry.height() << forcesign << geometry.x() + << geometry.y() << '.'; + } return result; } -- cgit v1.2.3