From 9c6447e0815a18102e5ebe236c52ba4343dbb8fa Mon Sep 17 00:00:00 2001 From: John Layt Date: Fri, 14 Feb 2014 15:23:47 +0100 Subject: QMargins - Add missing operators Add missing standard operators. [ChangeLog][QtCore][QMargins] Added missing addition and subtraction operators. Change-Id: I6aeed39531a736c12d378a817a9431279da79bc4 Reviewed-by: Lars Knoll Reviewed-by: Friedemann Kleint --- tests/auto/corelib/tools/qmargins/tst_qmargins.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tests/auto/corelib/tools/qmargins/tst_qmargins.cpp') diff --git a/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp b/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp index ec83740196..d49e0efe43 100644 --- a/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp +++ b/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp @@ -123,6 +123,13 @@ void tst_QMargins::operators() QCOMPARE(a, halved); QCOMPARE(m1 + (-m1), QMargins()); + + QMargins m3 = QMargins(10, 11, 12, 13); + QCOMPARE(m3 + 1, QMargins(11, 12, 13, 14)); + QCOMPARE(1 + m3, QMargins(11, 12, 13, 14)); + QCOMPARE(m3 - 1, QMargins(9, 10, 11, 12)); + QCOMPARE(+m3, QMargins(10, 11, 12, 13)); + QCOMPARE(-m3, QMargins(-10, -11, -12, -13)); } // Testing QDataStream operators -- cgit v1.2.3 From 3aae3e81ef55b4131eff0520d67f2594ee9e507c Mon Sep 17 00:00:00 2001 From: John Layt Date: Fri, 7 Feb 2014 11:47:24 +0100 Subject: QMarginsF - Add new QMarginsF class Add a new QMarginsF class to complement QMargins in the style of QSize/QSizeF and QRect/QRectF. [ChangeLog][QtCore] Added class QMarginsF to support handling margins with floating-point values. Change-Id: Iaaa95ec85f5d126d9d864fc4b607241a8c8a8f3a Reviewed-by: Lars Knoll Reviewed-by: Friedemann Kleint --- tests/auto/corelib/tools/qmargins/tst_qmargins.cpp | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) (limited to 'tests/auto/corelib/tools/qmargins/tst_qmargins.cpp') diff --git a/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp b/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp index d49e0efe43..409a82aab2 100644 --- a/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp +++ b/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp @@ -51,6 +51,10 @@ private slots: void getSetCheck(); void dataStreamCheck(); void operators(); + + void getSetCheckF(); + void dataStreamCheckF(); + void operatorsF(); }; // Testing get/set functions @@ -157,5 +161,102 @@ void tst_QMargins::dataStreamCheck() } } +// Testing get/set functions +void tst_QMargins::getSetCheckF() +{ + QMarginsF margins; + // int QMarginsF::width() + // void QMarginsF::setWidth(int) + margins.setLeft(1.1); + QCOMPARE(1.1, margins.left()); + margins.setTop(2.2); + QCOMPARE(2.2, margins.top()); + margins.setBottom(3.3); + QCOMPARE(3.3, margins.bottom()); + margins.setRight(4.4); + QCOMPARE(4.4, margins.right()); + + margins = QMarginsF(); + QVERIFY(margins.isNull()); + margins.setLeft(5.5); + margins.setRight(5.5); + QVERIFY(!margins.isNull()); + QCOMPARE(margins, QMarginsF(5.5, 0.0, 5.5, 0.0)); +} + +void tst_QMargins::operatorsF() +{ + const QMarginsF m1(12.1, 14.1, 16.1, 18.1); + const QMarginsF m2(2.1, 3.1, 4.1, 5.1); + + const QMarginsF added = m1 + m2; + QCOMPARE(added, QMarginsF(14.2, 17.2, 20.2, 23.2)); + QMarginsF a = m1; + a += m2; + QCOMPARE(a, added); + + const QMarginsF subtracted = m1 - m2; + QCOMPARE(subtracted, QMarginsF(10.0, 11.0, 12.0, 13.0)); + a = m1; + a -= m2; + QCOMPARE(a, subtracted); + + QMarginsF h = m1; + h += 2.1; + QCOMPARE(h, QMarginsF(14.2, 16.2, 18.2, 20.2)); + h -= 2.1; + QCOMPARE(h, m1); + + const QMarginsF doubled = m1 * 2.0; + QCOMPARE(doubled, QMarginsF(24.2, 28.2, 32.2, 36.2)); + QCOMPARE(2.0 * m1, doubled); + QCOMPARE(m1 * 2.0, doubled); + + a = m1; + a *= 2.0; + QCOMPARE(a, doubled); + + const QMarginsF halved = m1 / 2.0; + QCOMPARE(halved, QMarginsF(6.05, 7.05, 8.05, 9.05)); + + a = m1; + a /= 2.0; + QCOMPARE(a, halved); + + QCOMPARE(m1 + (-m1), QMarginsF()); + + QMarginsF m3 = QMarginsF(10.3, 11.4, 12.5, 13.6); + QCOMPARE(m3 + 1.1, QMarginsF(11.4, 12.5, 13.6, 14.7)); + QCOMPARE(1.1 + m3, QMarginsF(11.4, 12.5, 13.6, 14.7)); + QCOMPARE(m3 - 1.1, QMarginsF(9.2, 10.3, 11.4, 12.5)); + QCOMPARE(+m3, QMarginsF(10.3, 11.4, 12.5, 13.6)); + QCOMPARE(-m3, QMarginsF(-10.3, -11.4, -12.5, -13.6)); +} + +// Testing QDataStream operators +void tst_QMargins::dataStreamCheckF() +{ + QByteArray buffer; + + // stream out + { + QMarginsF marginsOut(1.1, 2.2, 3.3, 4.4); + QDataStream streamOut(&buffer, QIODevice::WriteOnly); + streamOut << marginsOut; + } + + // stream in & compare + { + QMarginsF marginsIn; + QDataStream streamIn(&buffer, QIODevice::ReadOnly); + streamIn >> marginsIn; + + QCOMPARE(marginsIn.left(), 1.1); + QCOMPARE(marginsIn.top(), 2.2); + QCOMPARE(marginsIn.right(), 3.3); + QCOMPARE(marginsIn.bottom(), 4.4); + } +} + QTEST_APPLESS_MAIN(tst_QMargins) #include "tst_qmargins.moc" -- cgit v1.2.3