summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/painting
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2018-06-05 11:06:59 +0200
committerEirik Aavitsland <eirik.aavitsland@qt.io>2018-06-06 08:59:20 +0000
commitd9d77e8680f4fcb1afacbcea3830adccf77957c4 (patch)
treef94fd1001f1180c5781f272572d5e04f8b3f03a1 /tests/auto/gui/painting
parent6108d8f515d7911427b764647f1d6ab487ad5203 (diff)
Fix QTransform::transposed() result having wrong transformation type
The implementation of QTransform::transposed() had a wrong assumption about the type of the result. Task-number: QTBUG-68630 Change-Id: Ia5ce794efe773d74fb5fdaff3da8cae2b452e7e5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests/auto/gui/painting')
-rw-r--r--tests/auto/gui/painting/qtransform/tst_qtransform.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/auto/gui/painting/qtransform/tst_qtransform.cpp b/tests/auto/gui/painting/qtransform/tst_qtransform.cpp
index 0a6a95daca..f9366c9227 100644
--- a/tests/auto/gui/painting/qtransform/tst_qtransform.cpp
+++ b/tests/auto/gui/painting/qtransform/tst_qtransform.cpp
@@ -49,6 +49,8 @@ private slots:
void matrix();
void testOffset();
void types();
+ void types2_data();
+ void types2();
void scalarOps();
void transform();
void mapEmptyPath();
@@ -65,6 +67,7 @@ private:
};
Q_DECLARE_METATYPE(QTransform)
+Q_DECLARE_METATYPE(QTransform::TransformationType)
void tst_QTransform::mapRect_data()
{
@@ -568,6 +571,38 @@ void tst_QTransform::types()
QCOMPARE(m5.type(), QTransform::TxScale);
}
+void tst_QTransform::types2_data()
+{
+ QTest::addColumn<QTransform>("t1");
+ QTest::addColumn<QTransform::TransformationType>("type");
+
+ QTest::newRow( "identity" ) << QTransform() << QTransform::TxNone;
+ QTest::newRow( "translate" ) << QTransform().translate(10, -0.1) << QTransform::TxTranslate;
+ QTest::newRow( "scale" ) << QTransform().scale(10, -0.1) << QTransform::TxScale;
+ QTest::newRow( "rotate" ) << QTransform().rotate(10) << QTransform::TxRotate;
+ QTest::newRow( "shear" ) << QTransform().shear(10, -0.1) << QTransform::TxShear;
+ QTest::newRow( "project" ) << QTransform().rotate(10, Qt::XAxis) << QTransform::TxProject;
+ QTest::newRow( "combined" ) << QTransform().translate(10, -0.1).scale(10, -0.1).rotate(10, Qt::YAxis) << QTransform::TxProject;
+}
+
+void tst_QTransform::types2()
+{
+#define CHECKTXTYPE(func) { QTransform t2(func); \
+ QTransform t3(t2.m11(), t2.m12(), t2.m13(), t2.m21(), t2.m22(), t2.m23(), t2.m31(), t2.m32(), t2.m33()); \
+ QVERIFY2(t3.type() == t2.type(), #func); \
+ }
+
+ QFETCH( QTransform, t1 );
+ QFETCH( QTransform::TransformationType, type );
+
+ Q_ASSERT(t1.type() == type);
+
+ CHECKTXTYPE(t1.adjoint());
+ CHECKTXTYPE(t1.inverted());
+ CHECKTXTYPE(t1.transposed());
+
+#undef CHECKTXTYPE
+}
void tst_QTransform::scalarOps()
{