From: Christian Kamm Date: Tue, 4 Oct 2011 12:17:52 +0000 (+0200) Subject: Allow access to all registered module apis. X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=d00427d0a530a7f698d3daa3e831f4dbd00b9cb2;p=konrad%2Fqtdeclarative.git Allow access to all registered module apis. Change-Id: I02a5ff116fe77871dc6bb1b31e0870e51653f7ac Reviewed-by: Aaron Kennedy --- diff --git a/src/declarative/qml/qdeclarativemetatype.cpp b/src/declarative/qml/qdeclarativemetatype.cpp index 5577993..9e178c6 100644 --- a/src/declarative/qml/qdeclarativemetatype.cpp +++ b/src/declarative/qml/qdeclarativemetatype.cpp @@ -1056,6 +1056,21 @@ QDeclarativeMetaType::moduleApi(const QString &uri, int versionMajor, int versio return ModuleApi(); } +QHash > QDeclarativeMetaType::moduleApis() +{ + QReadLocker lock(metaTypeDataLock()); + QDeclarativeMetaTypeData *data = metaTypeData(); + + QHash > moduleApis; + QHashIterator it(data->moduleApis); + while (it.hasNext()) { + it.next(); + moduleApis[it.key()] = it.value().moduleApis; + } + + return moduleApis; +} + QObject *QDeclarativeMetaType::toQObject(const QVariant &v, bool *ok) { if (!isQObject(v.userType())) { diff --git a/src/declarative/qml/qdeclarativemetatype_p.h b/src/declarative/qml/qdeclarativemetatype_p.h index 39e8b85..4488600 100644 --- a/src/declarative/qml/qdeclarativemetatype_p.h +++ b/src/declarative/qml/qdeclarativemetatype_p.h @@ -129,6 +129,7 @@ public: QObject *(*qobject)(QDeclarativeEngine *, QJSEngine *); }; static ModuleApi moduleApi(const QString &, int, int); + static QHash > moduleApis(); }; class QHashedStringRef;