diff options
author | Martin Jones <martin.jones@nokia.com> | 2012-06-22 16:56:27 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-25 04:50:01 +0200 |
commit | e76ba402bfe309022a0be29c6bc8223f8f3f94b3 (patch) | |
tree | 88f48d90e036f547d1f075feb99934a45d3fe0e7 /src/qml/qml/qqml.h | |
parent | fd754674d04625ebf254ce2a96cbe39b3d7652d8 (diff) |
qmlRegisterRevision clashes with qmlRegisterUncreatableType
Add template<typename T, int metaObjectRevision>
qmlRegisterUncreatableType() in order to register an uncreatable type
for a particular revision.
Task-number: QTBUG-23278
Change-Id: Ic165e41c8176916929cf19eb9bf6eef4b5bee1eb
Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com>
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'src/qml/qml/qqml.h')
-rw-r--r-- | src/qml/qml/qqml.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/qml/qml/qqml.h b/src/qml/qml/qqml.h index c7092a6c76..528f8e6416 100644 --- a/src/qml/qml/qqml.h +++ b/src/qml/qml/qqml.h @@ -167,6 +167,37 @@ int qmlRegisterUncreatableType(const char *uri, int versionMajor, int versionMin return QQmlPrivate::qmlregister(QQmlPrivate::TypeRegistration, &type); } +template<typename T, int metaObjectRevision> +int qmlRegisterUncreatableType(const char *uri, int versionMajor, int versionMinor, const char *qmlName, const QString& reason) +{ + QML_GETTYPENAMES + + QQmlPrivate::RegisterType type = { + 1, + + qRegisterNormalizedMetaType<T *>(pointerName.constData()), + qRegisterNormalizedMetaType<QQmlListProperty<T> >(listName.constData()), + 0, 0, + reason, + + uri, versionMajor, versionMinor, qmlName, &T::staticMetaObject, + + QQmlPrivate::attachedPropertiesFunc<T>(), + QQmlPrivate::attachedPropertiesMetaObject<T>(), + + QQmlPrivate::StaticCastSelector<T,QQmlParserStatus>::cast(), + QQmlPrivate::StaticCastSelector<T,QQmlPropertyValueSource>::cast(), + QQmlPrivate::StaticCastSelector<T,QQmlPropertyValueInterceptor>::cast(), + + 0, 0, + + 0, + metaObjectRevision + }; + + return QQmlPrivate::qmlregister(QQmlPrivate::TypeRegistration, &type); +} + template<typename T> int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName) { |