Allow access to all registered module apis.
authorChristian Kamm <christian.d.kamm@nokia.com>
Tue, 4 Oct 2011 12:17:52 +0000 (14:17 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 25 Oct 2011 11:13:26 +0000 (13:13 +0200)
Change-Id: I02a5ff116fe77871dc6bb1b31e0870e51653f7ac
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
src/declarative/qml/qdeclarativemetatype.cpp
src/declarative/qml/qdeclarativemetatype_p.h

index 5577993..9e178c6 100644 (file)
@@ -1056,6 +1056,21 @@ QDeclarativeMetaType::moduleApi(const QString &uri, int versionMajor, int versio
     return ModuleApi();
 }
 
+QHash<QString, QList<QDeclarativeMetaType::ModuleApi> > QDeclarativeMetaType::moduleApis()
+{
+    QReadLocker lock(metaTypeDataLock());
+    QDeclarativeMetaTypeData *data = metaTypeData();
+
+    QHash<QString, QList<ModuleApi> > moduleApis;
+    QHashIterator<QString, QDeclarativeMetaTypeData::ModuleApiList> 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())) {
index 39e8b85..4488600 100644 (file)
@@ -129,6 +129,7 @@ public:
         QObject *(*qobject)(QDeclarativeEngine *, QJSEngine *);
     };
     static ModuleApi moduleApi(const QString &, int, int);
+    static QHash<QString, QList<ModuleApi> > moduleApis();
 };
 
 class QHashedStringRef;