aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlpropertycachecreator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/qqmlpropertycachecreator.cpp')
-rw-r--r--src/qml/qml/qqmlpropertycachecreator.cpp47
1 files changed, 24 insertions, 23 deletions
diff --git a/src/qml/qml/qqmlpropertycachecreator.cpp b/src/qml/qml/qqmlpropertycachecreator.cpp
index 144d7e59b4..dcefa33166 100644
--- a/src/qml/qml/qqmlpropertycachecreator.cpp
+++ b/src/qml/qml/qqmlpropertycachecreator.cpp
@@ -46,31 +46,32 @@ QT_BEGIN_NAMESPACE
QAtomicInt QQmlPropertyCacheCreatorBase::classIndexCounter(0);
-int QQmlPropertyCacheCreatorBase::metaTypeForPropertyType(QV4::CompiledData::BuiltinType type)
+QMetaType QQmlPropertyCacheCreatorBase::metaTypeForPropertyType(QV4::CompiledData::BuiltinType type)
{
+ // TODO: we cannot depend on GUI types in declarative, so we'll have to do the id lookup
switch (type) {
- case QV4::CompiledData::BuiltinType::Var: return QMetaType::QVariant;
- case QV4::CompiledData::BuiltinType::Int: return QMetaType::Int;
- case QV4::CompiledData::BuiltinType::Bool: return QMetaType::Bool;
- case QV4::CompiledData::BuiltinType::Real: return QMetaType::Double;
- case QV4::CompiledData::BuiltinType::String: return QMetaType::QString;
- case QV4::CompiledData::BuiltinType::Url: return QMetaType::QUrl;
- case QV4::CompiledData::BuiltinType::Color: return QMetaType::QColor;
- case QV4::CompiledData::BuiltinType::Font: return QMetaType::QFont;
- case QV4::CompiledData::BuiltinType::Time: return QMetaType::QTime;
- case QV4::CompiledData::BuiltinType::Date: return QMetaType::QDate;
- case QV4::CompiledData::BuiltinType::DateTime: return QMetaType::QDateTime;
- case QV4::CompiledData::BuiltinType::Rect: return QMetaType::QRectF;
- case QV4::CompiledData::BuiltinType::Point: return QMetaType::QPointF;
- case QV4::CompiledData::BuiltinType::Size: return QMetaType::QSizeF;
- case QV4::CompiledData::BuiltinType::Vector2D: return QMetaType::QVector2D;
- case QV4::CompiledData::BuiltinType::Vector3D: return QMetaType::QVector3D;
- case QV4::CompiledData::BuiltinType::Vector4D: return QMetaType::QVector4D;
- case QV4::CompiledData::BuiltinType::Matrix4x4: return QMetaType::QMatrix4x4;
- case QV4::CompiledData::BuiltinType::Quaternion: return QMetaType::QQuaternion;
+ case QV4::CompiledData::BuiltinType::Var: return QMetaType::fromType<QVariant>();
+ case QV4::CompiledData::BuiltinType::Int: return QMetaType::fromType<int>();
+ case QV4::CompiledData::BuiltinType::Bool: return QMetaType::fromType<bool>();
+ case QV4::CompiledData::BuiltinType::Real: return QMetaType::fromType<qreal>();
+ case QV4::CompiledData::BuiltinType::String: return QMetaType::fromType<QString>();
+ case QV4::CompiledData::BuiltinType::Url: return QMetaType::fromType<QUrl>();
+ case QV4::CompiledData::BuiltinType::Color: return QMetaType(QMetaType::QColor);
+ case QV4::CompiledData::BuiltinType::Font: return QMetaType(QMetaType::QFont);
+ case QV4::CompiledData::BuiltinType::Time: return QMetaType::fromType<QTime>();
+ case QV4::CompiledData::BuiltinType::Date: return QMetaType::fromType<QDate>();
+ case QV4::CompiledData::BuiltinType::DateTime: return QMetaType::fromType<QDateTime>();
+ case QV4::CompiledData::BuiltinType::Rect: return QMetaType::fromType<QRectF>();
+ case QV4::CompiledData::BuiltinType::Point: return QMetaType::fromType<QPointF>();
+ case QV4::CompiledData::BuiltinType::Size: return QMetaType::fromType<QSizeF>();
+ case QV4::CompiledData::BuiltinType::Vector2D: return QMetaType(QMetaType::QVector2D);
+ case QV4::CompiledData::BuiltinType::Vector3D: return QMetaType(QMetaType::QVector3D);
+ case QV4::CompiledData::BuiltinType::Vector4D: return QMetaType(QMetaType::QVector4D);
+ case QV4::CompiledData::BuiltinType::Matrix4x4: return QMetaType(QMetaType::QMatrix4x4);
+ case QV4::CompiledData::BuiltinType::Quaternion: return QMetaType(QMetaType::QQuaternion);
case QV4::CompiledData::BuiltinType::InvalidBuiltin: break;
};
- return QMetaType::UnknownType;
+ return QMetaType {};
}
QByteArray QQmlPropertyCacheCreatorBase::createClassNameTypeByUrl(const QUrl &url)
@@ -120,9 +121,9 @@ QQmlRefPointer<QQmlPropertyCache> QQmlBindingInstantiationContext::instantiating
if (instantiatingProperty->isQObject()) {
// rawPropertyCacheForType assumes a given unspecified version means "any version".
// There is another overload that takes no version, which we shall not use here.
- return enginePrivate->rawPropertyCacheForType(instantiatingProperty->propType(),
+ return enginePrivate->rawPropertyCacheForType(instantiatingProperty->propType().id(),
instantiatingProperty->typeVersion());
- } else if (const QMetaObject *vtmo = QQmlValueTypeFactory::metaObjectForMetaType(instantiatingProperty->propType())) {
+ } else if (const QMetaObject *vtmo = QQmlValueTypeFactory::metaObjectForMetaType(instantiatingProperty->propType().id())) {
return enginePrivate->cache(vtmo, instantiatingProperty->typeVersion());
}
}