diff options
Diffstat (limited to 'src/qml/qml/qqmlvaluetype.cpp')
-rw-r--r-- | src/qml/qml/qqmlvaluetype.cpp | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/src/qml/qml/qqmlvaluetype.cpp b/src/qml/qml/qqmlvaluetype.cpp index a8fe4ec2c6..a86564a49a 100644 --- a/src/qml/qml/qqmlvaluetype.cpp +++ b/src/qml/qml/qqmlvaluetype.cpp @@ -48,6 +48,8 @@ #include <private/qqmlmodelindexvaluetype_p.h> #endif +Q_DECLARE_METATYPE(QQmlProperty) + QT_BEGIN_NAMESPACE namespace { @@ -62,7 +64,7 @@ struct QQmlValueTypeFactoryImpl const QMetaObject *metaObjectForMetaType(int); QQmlValueType *valueType(int); - QQmlValueType *valueTypes[QVariant::UserType]; + QQmlValueType *valueTypes[QMetaType::User]; QHash<int, QQmlValueType *> userTypes; QMutex mutex; @@ -71,7 +73,7 @@ struct QQmlValueTypeFactoryImpl QQmlValueTypeFactoryImpl::QQmlValueTypeFactoryImpl() { - std::fill_n(valueTypes, int(QVariant::UserType), &invalidValueType); + std::fill_n(valueTypes, int(QMetaType::User), &invalidValueType); #if QT_CONFIG(qml_itemmodel) // See types wrapped in qqmlmodelindexvaluetype_p.h @@ -118,24 +120,24 @@ bool QQmlValueTypeFactoryImpl::isValueType(int idx) const QMetaObject *QQmlValueTypeFactoryImpl::metaObjectForMetaType(int t) { switch (t) { - case QVariant::Point: + case QMetaType::QPoint: return &QQmlPointValueType::staticMetaObject; - case QVariant::PointF: + case QMetaType::QPointF: return &QQmlPointFValueType::staticMetaObject; - case QVariant::Size: + case QMetaType::QSize: return &QQmlSizeValueType::staticMetaObject; - case QVariant::SizeF: + case QMetaType::QSizeF: return &QQmlSizeFValueType::staticMetaObject; - case QVariant::Rect: + case QMetaType::QRect: return &QQmlRectValueType::staticMetaObject; - case QVariant::RectF: + case QMetaType::QRectF: return &QQmlRectFValueType::staticMetaObject; - case QVariant::EasingCurve: + case QMetaType::QEasingCurve: return &QQmlEasingValueType::staticMetaObject; #if QT_CONFIG(qml_itemmodel) - case QVariant::ModelIndex: + case QMetaType::QModelIndex: return &QQmlModelIndexValueType::staticMetaObject; - case QVariant::PersistentModelIndex: + case QMetaType::QPersistentModelIndex: return &QQmlPersistentModelIndexValueType::staticMetaObject; #endif default: @@ -143,7 +145,8 @@ const QMetaObject *QQmlValueTypeFactoryImpl::metaObjectForMetaType(int t) if (t == qMetaTypeId<QItemSelectionRange>()) return &QQmlItemSelectionRangeValueType::staticMetaObject; #endif - + if (t == qMetaTypeId<QQmlProperty>()) + return &QQmlPropertyValueType::staticMetaObject; if (const QMetaObject *mo = QQml_valueTypeProvider()->metaObjectForMetaType(t)) return mo; break; @@ -157,7 +160,7 @@ const QMetaObject *QQmlValueTypeFactoryImpl::metaObjectForMetaType(int t) QQmlValueType *QQmlValueTypeFactoryImpl::valueType(int idx) { - if (idx >= (int)QVariant::UserType) { + if (idx >= (int)QMetaType::User) { // Protect the hash with a mutex mutex.lock(); @@ -598,6 +601,16 @@ void QQmlEasingValueType::setBezierCurve(const QVariantList &customCurveVariant) v = newEasingCurve; } +QObject *QQmlPropertyValueType::object() const +{ + return v.object(); +} + +QString QQmlPropertyValueType::name() const +{ + return v.name(); +} + QVariantList QQmlEasingValueType::bezierCurve() const { QVariantList rv; |