summaryrefslogtreecommitdiff
path: root/src/ivicore/qiviqmlconversion_helper.cpp
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@qt.io>2020-11-16 16:29:06 +0100
committerDominik Holland <dominik.holland@qt.io>2020-12-02 10:46:54 +0100
commite1e92987e999bc8fd463f05d6945c2ae25ffc026 (patch)
tree8744069e23b58472b2ab94b07ebe25ed4a2ee595 /src/ivicore/qiviqmlconversion_helper.cpp
parent21b7efb998d875e52a36a7282af6b06f9eed942d (diff)
downloadqtivi-e1e92987e999bc8fd463f05d6945c2ae25ffc026.tar.gz
Qt6 port without cmake support
All deprecation warnings fixed and all autotest pass. Change-Id: I05d48e9ddd2bf23b900065726d67710eea0e82d0 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
Diffstat (limited to 'src/ivicore/qiviqmlconversion_helper.cpp')
-rw-r--r--src/ivicore/qiviqmlconversion_helper.cpp32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/ivicore/qiviqmlconversion_helper.cpp b/src/ivicore/qiviqmlconversion_helper.cpp
index 2b13b7c..4ad719f 100644
--- a/src/ivicore/qiviqmlconversion_helper.cpp
+++ b/src/ivicore/qiviqmlconversion_helper.cpp
@@ -100,12 +100,12 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
QVariant val = value;
// First try to convert the values to a Map or a List
// This is needed as it could also store a QStringList or a Hash
- if (val.canConvert(QVariant::Map))
- val.convert(QVariant::Map);
- if (val.canConvert(QVariant::List))
- val.convert(QVariant::List);
+ if (val.canConvert(QMetaType::fromType<QVariantMap>()))
+ val.convert(QMetaType::fromType<QVariantMap>());
+ if (val.canConvert(QMetaType::fromType<QVariantList>()))
+ val.convert(QMetaType::fromType<QVariantList>());
- if (val.type() == QVariant::Map) {
+ if (val.metaType() == QMetaType::fromType<QVariantMap>()) {
const QVariantMap map = val.toMap();
if (map.contains(typeLiteral) && map.contains(valueLiteral)) {
const QString type = map.value(typeLiteral).toString();
@@ -116,7 +116,8 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
const int lastIndex = enumValue.lastIndexOf(QStringLiteral("::"));
const QString className = enumValue.left(lastIndex) + QStringLiteral("*");
enumValue = enumValue.right(enumValue.count() - lastIndex - 2);
- const QMetaObject *mo = QMetaType::metaObjectForType(QMetaType::type(className.toLatin1()));
+ QMetaType metaType = QMetaType::fromName(className.toLatin1());
+ const QMetaObject *mo = metaType.metaObject();
if (Q_UNLIKELY(!mo)) {
qWarning() << "Couldn't retrieve MetaObject for enum parsing:" << map;
qWarning("Please make sure %s is registered in Qt's meta-type system: qRegisterMetaType<%s>()",
@@ -128,14 +129,15 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
QMetaEnum me = mo->enumerator(i);
bool ok = false;
int value = me.keysToValue(enumValue.toLatin1(), &ok);
- if (ok)
- return value;
+ if (ok) {
+ return QVariant(QMetaType::fromName((QLatin1String(me.scope()) + QStringLiteral("::") + QLatin1String(me.enumName())).toLatin1()), &value);
+ }
}
qWarning() << "Couldn't parse the enum definition" << map;
return QVariant();
} else {
- int typeId = QMetaType::type(type.toLatin1());
- const QMetaObject *mo = QMetaType::metaObjectForType(typeId);
+ QMetaType metaType = QMetaType::fromName(type.toLatin1());
+ const QMetaObject *mo = metaType.metaObject();
if (Q_UNLIKELY(!mo)) {
qWarning() << "Couldn't retrieve MetaObject for struct parsing:" << map;
qWarning("Please make sure %s is registered in Qt's meta-type system: qRegisterMetaType<%s>()",
@@ -143,9 +145,9 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
return QVariant();
}
- void *gadget = QMetaType::create(typeId);
+ void *gadget = metaType.create();
if (!Q_UNLIKELY(gadget)) {
- qWarning("Couldn't create a new instance of %s", QMetaType::typeName(typeId));
+ qWarning("Couldn't create a new instance of %s", metaType.name());
return QVariant();
}
@@ -159,12 +161,12 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
qWarning("Couldn't find method: %s::fromJSON(QVariant)\n"
"If your are using code created by the ivigenerator, please regenerate"
"your frontend code. See AUTOSUITE-1374 for why this is needed",
- QMetaType::typeName(typeId));
+ metaType.name());
return QVariant();
}
mo->method(moIdx).invokeOnGadget(gadget, Q_ARG(QVariant, QVariant(value)));
- return QVariant(typeId, gadget);
+ return QVariant(metaType, gadget);
}
}
@@ -172,7 +174,7 @@ QVariant qtivi_convertFromJSON(const QVariant &value)
for (auto i = map.constBegin(); i != map.constEnd(); ++i)
convertedValues.insert(i.key(), qtivi_convertFromJSON(i.value()));
return convertedValues;
- } else if (val.type() == QVariant::List) {
+ } else if (val.metaType() == QMetaType::fromType<QVariantList>()) {
QVariantList values = val.toList();
for (auto i = values.begin(); i != values.end(); ++i)
*i = qtivi_convertFromJSON(*i);