diff options
Diffstat (limited to 'src/corelib/serialization')
-rw-r--r-- | src/corelib/serialization/qjsoncbor.cpp | 11 | ||||
-rw-r--r-- | src/corelib/serialization/qjsonvalue.cpp | 30 |
2 files changed, 38 insertions, 3 deletions
diff --git a/src/corelib/serialization/qjsoncbor.cpp b/src/corelib/serialization/qjsoncbor.cpp index ef6acbcbf0..46d2555554 100644 --- a/src/corelib/serialization/qjsoncbor.cpp +++ b/src/corelib/serialization/qjsoncbor.cpp @@ -728,14 +728,19 @@ QCborValue QCborValue::fromVariant(const QVariant &variant) return QCborArray::fromJsonArray(doc.array()); return QCborMap::fromJsonObject(doc.object()); } + case QMetaType::QCborValue: + return variant.value<QCborValue>(); + case QMetaType::QCborArray: + return variant.value<QCborArray>(); + case QMetaType::QCborMap: + return variant.value<QCborMap>(); + case QMetaType::QCborSimpleType: + return variant.value<QCborSimpleType>(); #endif default: break; } - if (variant.userType() == qMetaTypeId<QCborSimpleType>()) - return variant.value<QCborSimpleType>(); - if (variant.isNull()) return QCborValue(nullptr); diff --git a/src/corelib/serialization/qjsonvalue.cpp b/src/corelib/serialization/qjsonvalue.cpp index b8051d6228..3c5b0a0e02 100644 --- a/src/corelib/serialization/qjsonvalue.cpp +++ b/src/corelib/serialization/qjsonvalue.cpp @@ -46,6 +46,11 @@ #include <qstringlist.h> #include <qdebug.h> +#ifndef QT_BOOTSTRAPPED +# include <qcborarray.h> +# include <qcbormap.h> +#endif + #include "qjson_p.h" QT_BEGIN_NAMESPACE @@ -423,6 +428,25 @@ QJsonValue &QJsonValue::operator =(const QJsonValue &other) \li QMetaType::QUuid \endlist \li QJsonValue::String. Since Qt 5.11, the resulting string will not include braces + \row + \li + \list + \li QMetaType::QCborValue + \endlist + \li Whichever type QCborValue::toJsonValue() returns. + \row + \li + \list + \li QMetaType::QCborArray + \endlist + \li QJsonValue::Array. See QCborValue::toJsonValue() for conversion restrictions. + \row + \li + \list + \li QMetaType::QCborMap + \endlist + \li QJsonValue::Map. See QCborValue::toJsonValue() for conversion restrictions and the + "stringification" of map keys. \endtable For all other QVariant types a conversion to a QString will be attempted. If the returned string @@ -469,6 +493,12 @@ QJsonValue QJsonValue::fromVariant(const QVariant &variant) QJsonDocument doc = variant.toJsonDocument(); return doc.isArray() ? QJsonValue(doc.array()) : QJsonValue(doc.object()); } + case QMetaType::QCborValue: + return variant.value<QCborValue>().toJsonValue(); + case QMetaType::QCborArray: + return variant.value<QCborArray>().toJsonArray(); + case QMetaType::QCborMap: + return variant.value<QCborMap>().toJsonObject(); #endif default: break; |