diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-07-05 09:41:15 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-07-05 18:49:19 +0000 |
commit | e7d476031474786a2e11ff6d3f9af0d5244f19d8 (patch) | |
tree | 12b10d44ef4e6f0b7c4c3217be9d471a95ca1bf7 /src/testlib/qtest_gui.h | |
parent | 6583720aa4503fce16b44cce7b8d939058abf000 (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.h | 34 |
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 ®ion) +{ + 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) { |