diff options
author | Sze Howe Koh <szehowe.koh@gmail.com> | 2014-03-04 20:48:31 +0800 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-06 12:21:14 +0100 |
commit | b83dc929ec851b81c1236ea4fbeb7f9ad6239565 (patch) | |
tree | 7efe7c98768909b4466e25dbb1b4737e994153a6 /src/corelib | |
parent | 0aba7fbb5837c81351e7e4ba43044a8dbb37098c (diff) |
Complete QJsonValue::fromVariant()
- QVariant can store (U)Int, (U)LongLong, Float and Double numbers.
Previously, QJsonValue::fromVariant() converted Floats into Strings
while converting the others to Doubles.
- Add unit tests for QJsonValue::fromVariant()
[ChangeLog][QtCore][JSON] QJsonValue::fromVariant() will now convert
single-precision Floats into Doubles instead of Strings
Change-Id: I457adbe29c37ada611d1c6d711c42866d63d4024
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/json/qjsonvalue.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/corelib/json/qjsonvalue.cpp b/src/corelib/json/qjsonvalue.cpp index e5194f7336..4c4838d314 100644 --- a/src/corelib/json/qjsonvalue.cpp +++ b/src/corelib/json/qjsonvalue.cpp @@ -360,6 +360,7 @@ QJsonValue &QJsonValue::operator =(const QJsonValue &other) \li QMetaType::UInt \li QMetaType::LongLong \li QMetaType::ULongLong + \li QMetaType::Float \li QMetaType::Double \endlist \li QJsonValue::Double @@ -391,10 +392,11 @@ QJsonValue &QJsonValue::operator =(const QJsonValue &other) */ QJsonValue QJsonValue::fromVariant(const QVariant &variant) { - switch (variant.type()) { + switch (variant.userType()) { case QVariant::Bool: return QJsonValue(variant.toBool()); case QVariant::Int: + case QMetaType::Float: case QVariant::Double: case QVariant::LongLong: case QVariant::ULongLong: |