diff options
author | Janne Koskinen <janne.p.koskinen@digia.com> | 2013-10-30 10:08:36 (GMT) |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-12-09 09:30:14 (GMT) |
commit | 1d48b9ea56e42b2cf963090078ee2162bde23a25 (patch) | |
tree | 5ad940eaa8bfc7bd4fd71fbebb9e72c8190cd155 /tests/auto | |
parent | c889b401d4668482bdef6c976bfa2d57144cf7ed (diff) | |
download | Qt-1d48b9ea56e42b2cf963090078ee2162bde23a25.zip Qt-1d48b9ea56e42b2cf963090078ee2162bde23a25.tar.gz Qt-1d48b9ea56e42b2cf963090078ee2162bde23a25.tar.bz2 |
Fixed rounding errors in QtQuick1 to int conversions
qRound introduced errors when qreal is single precision. Added
double signature for qround so that string and int don't lose precision
in conversion.
Task-number: QTBUG-33625
Change-Id: I58582f57d5cd68fcad3fe9efb5fea5935f61b9e3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/declarative/qdeclarativevaluetypes/data/qtbug-33625.qml | 12 | ||||
-rw-r--r-- | tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp | 14 |
2 files changed, 26 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/qtbug-33625.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/qtbug-33625.qml new file mode 100644 index 0000000..977028f --- /dev/null +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/qtbug-33625.qml @@ -0,0 +1,12 @@ +import QtQuick 1.0 +Item { + property string stringtest: "16777237" + property int stringint: stringtest + + property int inttest: 16777237 + property int intint: 0 + + Component.onCompleted: { + intint = inttest; + } +} diff --git a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp index 87a60e3..a21ffc6 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp +++ b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp @@ -96,6 +96,7 @@ private slots: void returnValues(); void varAssignment(); void bindingsSpliceCorrectly(); + void qtbug_33625(); private: QDeclarativeEngine engine; @@ -1012,6 +1013,19 @@ void tst_qdeclarativevaluetypes::bindingsSpliceCorrectly() } } +//qreal as float should not limit int to single precision. +void tst_qdeclarativevaluetypes::qtbug_33625() +{ + QDeclarativeComponent component(&engine, TEST_FILE("qtbug-33625.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("intint").toInt(), 16777237); + QCOMPARE(object->property("stringint").toInt(), 16777237); + + delete object; +} + QTEST_MAIN(tst_qdeclarativevaluetypes) #include "tst_qdeclarativevaluetypes.moc" |