From 53047c3623c28a3184c17120a309055d2f189a77 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 14 Jul 2020 00:14:48 +0200 Subject: Move QJsonValue and QCborValue conversions to QMetaType Change-Id: Id4796e0913c0c5b0abce0ea27bed0f7b41bc0cca Reviewed-by: Thiago Macieira --- src/corelib/kernel/qvariant.cpp | 151 ---------------------------------------- 1 file changed, 151 deletions(-) (limited to 'src/corelib/kernel/qvariant.cpp') diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index 114aaa5ecf..f34e955082 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -255,8 +255,6 @@ static bool convert(const QVariant::Private *d, int t, void *result) Q_ASSERT(d->typeId() != t); Q_ASSERT(result); - bool ok = true; - switch (uint(t)) { case QMetaType::Nullptr: *static_cast(result) = nullptr; @@ -271,155 +269,6 @@ static bool convert(const QVariant::Private *d, int t, void *result) #endif return false; -#ifndef QT_BOOTSTRAPPED - case QMetaType::QJsonValue: - switch (d->typeId()) { - case QMetaType::Nullptr: - *static_cast(result) = QJsonValue(QJsonValue::Null); - break; - case QMetaType::Bool: - *static_cast(result) = QJsonValue(d->get()); - break; - case QMetaType::Int: - case QMetaType::UInt: - case QMetaType::Double: - case QMetaType::Float: - case QMetaType::ULong: - case QMetaType::Long: - case QMetaType::LongLong: - case QMetaType::ULongLong: - case QMetaType::UShort: - case QMetaType::UChar: - case QMetaType::Char: - case QMetaType::SChar: - case QMetaType::Short: - *static_cast(result) = QJsonValue(qConvertToRealNumber(d, &ok)); - Q_ASSERT(ok); - break; - case QMetaType::QString: - *static_cast(result) = QJsonValue(d->get()); - break; - case QMetaType::QStringList: - *static_cast(result) = QJsonValue(QJsonArray::fromStringList(d->get())); - break; - case QMetaType::QVariantList: - *static_cast(result) = QJsonValue(QJsonArray::fromVariantList(d->get())); - break; - case QMetaType::QVariantMap: - *static_cast(result) = QJsonValue(QJsonObject::fromVariantMap(d->get())); - break; - case QMetaType::QVariantHash: - *static_cast(result) = QJsonValue(QJsonObject::fromVariantHash(d->get())); - break; - case QMetaType::QJsonObject: - *static_cast(result) = d->get(); - break; - case QMetaType::QJsonArray: - *static_cast(result) = d->get(); - break; - case QMetaType::QJsonDocument: { - QJsonDocument doc = d->get(); - *static_cast(result) = doc.isArray() ? QJsonValue(doc.array()) : QJsonValue(doc.object()); - break; - } - case QMetaType::QCborValue: - *static_cast(result) = d->get().toJsonValue(); - break; - case QMetaType::QCborMap: - *static_cast(result) = d->get().toJsonObject(); - break; - case QMetaType::QCborArray: - *static_cast(result) = d->get().toJsonArray(); - break; - default: - *static_cast(result) = QJsonValue(QJsonValue::Undefined); - return false; - } - break; - case QMetaType::QCborSimpleType: - if (d->typeId() == QMetaType::QCborValue && d->get().isSimpleType()) { - *static_cast(result) = d->get().toSimpleType(); - break; - } - return false; - case QMetaType::QCborValue: - switch (d->typeId()) { - case QMetaType::Nullptr: - *static_cast(result) = QCborValue(QCborValue::Null); - break; - case QMetaType::Bool: - *static_cast(result) = QCborValue(d->get()); - break; - case QMetaType::Int: - case QMetaType::UInt: - case QMetaType::ULong: - case QMetaType::Long: - case QMetaType::LongLong: - case QMetaType::ULongLong: - case QMetaType::UShort: - case QMetaType::UChar: - case QMetaType::Char: - case QMetaType::SChar: - case QMetaType::Short: - *static_cast(result) = QCborValue(qConvertToNumber(d, &ok)); - Q_ASSERT(ok); - break; - case QMetaType::Double: - case QMetaType::Float: - *static_cast(result) = QCborValue(qConvertToRealNumber(d, &ok)); - Q_ASSERT(ok); - break; - case QMetaType::QString: - *static_cast(result) = d->get(); - break; - case QMetaType::QStringList: - *static_cast(result) = QCborArray::fromStringList(d->get()); - break; - case QMetaType::QByteArray: - *static_cast(result) = d->get(); - break; - case QMetaType::QDate: - *static_cast(result) = QCborValue(d->get().startOfDay()); - break; - case QMetaType::QDateTime: - *static_cast(result) = QCborValue(d->get()); - break; - case QMetaType::QUrl: - *static_cast(result) = QCborValue(d->get()); - break; - case QMetaType::QJsonValue: - *static_cast(result) = QCborValue::fromJsonValue(d->get()); - break; - case QMetaType::QJsonObject: - *static_cast(result) = QCborMap::fromJsonObject(d->get()); - break; - case QMetaType::QJsonArray: - *static_cast(result) = QCborArray::fromJsonArray(d->get()); - break; - case QMetaType::QJsonDocument: { - QJsonDocument doc = d->get(); - if (doc.isArray()) - *static_cast(result) = QCborArray::fromJsonArray(doc.array()); - else - *static_cast(result) = QCborMap::fromJsonObject(doc.object()); - break; - } - case QMetaType::QCborSimpleType: - *static_cast(result) = d->get(); - break; - case QMetaType::QCborMap: - *static_cast(result) = d->get(); - break; - case QMetaType::QCborArray: - *static_cast(result) = d->get(); - break; - default: - *static_cast(result) = {}; - return false; - } - break; -#endif - default: return false; } -- cgit v1.2.3