summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtest_gui.h
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2016-07-05 09:41:15 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2016-07-05 18:49:19 +0000
commite7d476031474786a2e11ff6d3f9af0d5244f19d8 (patch)
tree12b10d44ef4e6f0b7c4c3217be9d471a95ca1bf7 /src/testlib/qtest_gui.h
parent6583720aa4503fce16b44cce7b8d939058abf000 (diff)
Testlib: Format QRegion in QCOMPARE
Output regions as a compact list of rectangles: QRegion(2 rectangles, 50x200+100+200, 200x50+10+10) Change-Id: I62e42bd30897a1d31b28e0cbd6afe7fa8ecf2664 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/testlib/qtest_gui.h')
-rw-r--r--src/testlib/qtest_gui.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/testlib/qtest_gui.h b/src/testlib/qtest_gui.h
index 5027aea732..d0d56e7bd0 100644
--- a/src/testlib/qtest_gui.h
+++ b/src/testlib/qtest_gui.h
@@ -58,6 +58,7 @@
#include <QtGui/qcolor.h>
#include <QtGui/qpixmap.h>
#include <QtGui/qimage.h>
+#include <QtGui/qregion.h>
#ifdef QT_WIDGETS_LIB
#include <QtGui/qicon.h>
@@ -82,6 +83,39 @@ template<> inline char *toString(const QColor &color)
return qstrdup(color.name().toLocal8Bit().constData());
}
+template<> inline char *toString(const QRegion &region)
+{
+ QByteArray result = "QRegion(";
+ if (region.isNull()) {
+ result += "null";
+ } else if (region.isEmpty()) {
+ result += "empty";
+ } else {
+ const QVector<QRect> &rects = region.rects();
+ const int rectCount = rects.size();
+ if (rectCount > 1) {
+ result += QByteArray::number(rectCount);
+ result += " rectangles, ";
+ }
+ for (int i = 0; i < rectCount; ++i) {
+ if (i)
+ result += ", ";
+ const QRect &r = rects.at(i);
+ result += QByteArray::number(r.width());
+ result += 'x';
+ result += QByteArray::number(r.height());
+ if (r.x() >= 0)
+ result += '+';
+ result += QByteArray::number(r.x());
+ if (r.y() >= 0)
+ result += '+';
+ result += QByteArray::number(r.y());
+ }
+ }
+ result += ')';
+ return qstrdup(result.constData());
+}
+
inline bool qCompare(QIcon const &t1, QIcon const &t2, const char *actual, const char *expected,
const char *file, int line)
{