diff options
Diffstat (limited to 'src/qml/qml/qqmlpropertycachecreator.cpp')
-rw-r--r-- | src/qml/qml/qqmlpropertycachecreator.cpp | 47 |
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()); } } |