summaryrefslogtreecommitdiffstats
path: root/src/interfaceframework/qifqmlconversion_helper.cpp
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2025-02-17 16:26:08 +0200
committerTarja Sundqvist <tarja.sundqvist@qt.io>2025-02-17 16:26:08 +0200
commitcfddbca409e52e1244d5bcd87949d9d8b502ea12 (patch)
tree1f261e5b0de8b51d8cbaec696f10036b7df62b6e /src/interfaceframework/qifqmlconversion_helper.cpp
parent4cac43295cd2a1aa24d7cc3b55d739e25194b3e0 (diff)
parentd7616cc4fcf8006522af6e1114ffd1e208d5b3a5 (diff)
Merge tag 'v6.5.5-lts' into tqtc/lts-6.5-opensourcev6.5.5-lts-lgpl
Qt 6.5.5-lts release Conflicts solved: dependencies.yaml src/tools/ifcodegen/templates/backend_qtro/CMakeLists.txt.tpl src/tools/ifcodegen/templates/backend_simulator/CMakeLists.txt.tpl src/tools/ifcodegen/templates/frontend/CMakeLists.txt.tpl src/tools/ifcodegen/templates/qmlplugin/CMakeLists.txt.tpl src/tools/ifcodegen/templates/server_qtro/CMakeLists.txt.tpl src/tools/ifcodegen/templates/server_qtro_simulator/CMakeLists.txt.tpl src/tools/ifcodegen/templates/test/CMakeLists.txt.tpl Change-Id: I3018daf9098a16ff792f74df3be464e7e1865b2e
Diffstat (limited to 'src/interfaceframework/qifqmlconversion_helper.cpp')
-rw-r--r--src/interfaceframework/qifqmlconversion_helper.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/interfaceframework/qifqmlconversion_helper.cpp b/src/interfaceframework/qifqmlconversion_helper.cpp
index 6d2a1a59..5aa65507 100644
--- a/src/interfaceframework/qifqmlconversion_helper.cpp
+++ b/src/interfaceframework/qifqmlconversion_helper.cpp
@@ -12,13 +12,6 @@
QT_BEGIN_NAMESPACE
-namespace qtif_helper {
- static const QString valueLiteral = QStringLiteral("value");
- static const QString typeLiteral = QStringLiteral("type");
-}
-
-using namespace qtif_helper;
-
void qtif_qmlOrCppWarning(const QObject *obj, const char *errorString)
{
qtif_qmlOrCppWarning(obj, QLatin1String(errorString));
@@ -65,6 +58,9 @@ void qtif_qmlOrCppWarning(const QObject *obj, const QString &errorString)
*/
QVariant qtif_convertFromJSON(const QVariant &value)
{
+ static const QString valueLiteral = QStringLiteral("value");
+ static const QString typeLiteral = QStringLiteral("type");
+
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
@@ -83,7 +79,7 @@ QVariant qtif_convertFromJSON(const QVariant &value)
QString enumValue = value.toString();
const int lastIndex = enumValue.lastIndexOf(QStringLiteral("::"));
const QString className = enumValue.left(lastIndex) + QStringLiteral("*");
- enumValue = enumValue.right(enumValue.size() - lastIndex - 2);
+ QByteArray enumValueUtf8 = enumValue.right(enumValue.size() - lastIndex - 2).toUtf8();
QMetaType metaType = QMetaType::fromName(className.toLatin1());
const QMetaObject *mo = metaType.metaObject();
if (Q_UNLIKELY(!mo)) {
@@ -96,7 +92,7 @@ QVariant qtif_convertFromJSON(const QVariant &value)
for (int i = mo->enumeratorOffset(); i < mo->enumeratorCount(); ++i) {
QMetaEnum me = mo->enumerator(i);
bool ok = false;
- int value = me.keysToValue(enumValue.toLatin1(), &ok);
+ int value = me.keysToValue(enumValueUtf8, &ok);
if (ok) {
return QVariant(QMetaType::fromName((QLatin1String(me.scope()) + QStringLiteral("::") + QLatin1String(me.enumName())).toLatin1()), &value);
}
@@ -114,6 +110,8 @@ QVariant qtif_convertFromJSON(const QVariant &value)
}
void *gadget = metaType.create();
+ auto cleanup = qScopeGuard([gadget, metaType] { metaType.destroy(gadget); });
+
if (!Q_UNLIKELY(gadget)) {
qWarning("Couldn't create a new instance of %s", metaType.name());
return QVariant();