summaryrefslogtreecommitdiffstats
path: root/src/corelib/json
diff options
context:
space:
mode:
authorSze Howe Koh <szehowe.koh@gmail.com>2014-03-04 20:48:31 +0800
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-06 12:21:14 +0100
commitb83dc929ec851b81c1236ea4fbeb7f9ad6239565 (patch)
tree7efe7c98768909b4466e25dbb1b4737e994153a6 /src/corelib/json
parent0aba7fbb5837c81351e7e4ba43044a8dbb37098c (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/json')
-rw-r--r--src/corelib/json/qjsonvalue.cpp4
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: