diff options
author | Shawn Rutledge <shawn.rutledge@digia.com> | 2015-09-10 20:39:10 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@theqtcompany.com> | 2015-09-24 20:15:35 +0000 |
commit | 61b608dfb578e873239eda957988a54ebe321c59 (patch) | |
tree | 5981e2a4ba259f098386b880bde9043a0cf4e330 | |
parent | d0ca16eae15e83a64a1e2a5b5fac53bb2bc919bb (diff) |
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 <laszlo.agocs@theqtcompany.com>
-rw-r--r-- | tests/manual/qscreen/main.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
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; } |