aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlengine.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-06-07 15:28:54 +0200
committerUlf Hermann <ulf.hermann@qt.io>2021-06-09 14:47:13 +0200
commitc4addf7d0e91cd39b636a88772ae9543f11e2c8c (patch)
treea82c384a019573365ab357767972d5344abed495 /src/qml/qml/qqmlengine.cpp
parente5383a5d5dd02afdbe94b380394fd88d8320e35a (diff)
Pass QMetaType by value rather than by ID in more places
This saves us some ping-pong between the IDs and the QMetaTypes, and avoids possible ambiguities if multiple metatypes are registered for the same C++ type. Change-Id: I81cec94a9cd05d69927dc884f65574f0ab2ddc22 Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlengine.cpp')
-rw-r--r--src/qml/qml/qqmlengine.cpp35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp
index 4b90f6a501..dfcf52a8e4 100644
--- a/src/qml/qml/qqmlengine.cpp
+++ b/src/qml/qml/qqmlengine.cpp
@@ -1343,7 +1343,7 @@ template<>
QJSValue QQmlEngine::singletonInstance<QJSValue>(int qmlTypeId)
{
Q_D(QQmlEngine);
- QQmlType type = QQmlMetaType::qmlType(qmlTypeId, QQmlMetaType::TypeIdCategory::QmlType);
+ QQmlType type = QQmlMetaType::qmlTypeById(qmlTypeId);
if (!type.isValid() || !type.isSingleton())
return QJSValue();
@@ -2062,13 +2062,12 @@ static QQmlPropertyCache *propertyCacheForPotentialInlineComponentType(int t, co
*
* Look up by type's baseMetaObject.
*/
-QQmlMetaObject QQmlEnginePrivate::rawMetaObjectForType(int t) const
+QQmlMetaObject QQmlEnginePrivate::rawMetaObjectForType(QMetaType metaType) const
{
- if (QQmlPropertyCache *composite = findPropertyCacheInCompositeTypes(t))
+ if (QQmlPropertyCache *composite = findPropertyCacheInCompositeTypes(metaType.id()))
return QQmlMetaObject(composite);
- QQmlType type = QQmlMetaType::qmlType(t);
- return QQmlMetaObject(type.baseMetaObject());
+ return QQmlMetaObject(QQmlMetaType::qmlType(metaType).baseMetaObject());
}
/*!
@@ -2076,13 +2075,12 @@ QQmlMetaObject QQmlEnginePrivate::rawMetaObjectForType(int t) const
*
* Look up by type's metaObject.
*/
-QQmlMetaObject QQmlEnginePrivate::metaObjectForType(int t) const
+QQmlMetaObject QQmlEnginePrivate::metaObjectForType(QMetaType metaType) const
{
- if (QQmlPropertyCache *composite = findPropertyCacheInCompositeTypes(t))
+ if (QQmlPropertyCache *composite = findPropertyCacheInCompositeTypes(metaType.id()))
return QQmlMetaObject(composite);
- QQmlType type = QQmlMetaType::qmlType(t);
- return QQmlMetaObject(type.metaObject());
+ return QQmlMetaObject(QQmlMetaType::qmlType(metaType).metaObject());
}
/*!
@@ -2090,12 +2088,12 @@ QQmlMetaObject QQmlEnginePrivate::metaObjectForType(int t) const
*
* Look up by type's metaObject and version.
*/
-QQmlPropertyCache *QQmlEnginePrivate::propertyCacheForType(int t)
+QQmlPropertyCache *QQmlEnginePrivate::propertyCacheForType(QMetaType metaType)
{
- if (QQmlPropertyCache *composite = findPropertyCacheInCompositeTypes(t))
+ if (QQmlPropertyCache *composite = findPropertyCacheInCompositeTypes(metaType.id()))
return composite;
- QQmlType type = QQmlMetaType::qmlType(t);
+ const QQmlType type = QQmlMetaType::qmlType(metaType);
return type.isValid() ? cache(type.metaObject(), type.version()) : nullptr;
}
@@ -2106,12 +2104,12 @@ QQmlPropertyCache *QQmlEnginePrivate::propertyCacheForType(int t)
* TODO: Is this correct? Passing a plain QTypeRevision() rather than QTypeRevision::zero() or
* the actual type's version seems strange. The behavior has been in place for a while.
*/
-QQmlPropertyCache *QQmlEnginePrivate::rawPropertyCacheForType(int t)
+QQmlPropertyCache *QQmlEnginePrivate::rawPropertyCacheForType(QMetaType metaType)
{
- if (QQmlPropertyCache *composite = findPropertyCacheInCompositeTypes(t))
+ if (QQmlPropertyCache *composite = findPropertyCacheInCompositeTypes(metaType.id()))
return composite;
- QQmlType type = QQmlMetaType::qmlType(t);
+ const QQmlType type = QQmlMetaType::qmlType(metaType);
return type.isValid() ? cache(type.baseMetaObject(), QTypeRevision()) : nullptr;
}
@@ -2121,12 +2119,13 @@ QQmlPropertyCache *QQmlEnginePrivate::rawPropertyCacheForType(int t)
* Look up by QQmlType and version. We only fall back to lookup by metaobject if the type
* has no revisiononed attributes here. Unspecified versions are interpreted as "any".
*/
-QQmlPropertyCache *QQmlEnginePrivate::rawPropertyCacheForType(int t, QTypeRevision version)
+QQmlPropertyCache *QQmlEnginePrivate::rawPropertyCacheForType(
+ QMetaType metaType, QTypeRevision version)
{
- if (QQmlPropertyCache *composite = findPropertyCacheInCompositeTypes(t))
+ if (QQmlPropertyCache *composite = findPropertyCacheInCompositeTypes(metaType.id()))
return composite;
- QQmlType type = QQmlMetaType::qmlType(t);
+ const QQmlType type = QQmlMetaType::qmlType(metaType);
if (!type.isValid())
return nullptr;