From 8e7d1a91196197eee4e45bbfa9886ab935e2b67c Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Mon, 14 Sep 2015 22:02:55 +0200 Subject: Make QML composite types inherit attached properties Change-Id: Ic06af4805da987dd08e361f2668e7a1788d3eefe Task-number: QTBUG-43581 Reviewed-by: Mitch Curtis Reviewed-by: Liang Qi Reviewed-by: Lars Knoll --- tools/qmlplugindump/main.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'tools') diff --git a/tools/qmlplugindump/main.cpp b/tools/qmlplugindump/main.cpp index 0238a4aaae..5d1864a746 100644 --- a/tools/qmlplugindump/main.cpp +++ b/tools/qmlplugindump/main.cpp @@ -32,6 +32,7 @@ ****************************************************************************/ #include +#include #include #include #include @@ -129,11 +130,11 @@ void collectReachableMetaObjects(QObject *object, QSet *met } } -void collectReachableMetaObjects(const QQmlType *ty, QSet *metas) +void collectReachableMetaObjects(QQmlEnginePrivate *engine, const QQmlType *ty, QSet *metas) { collectReachableMetaObjects(ty->metaObject(), metas, ty->isExtendedType()); - if (ty->attachedPropertiesType()) - collectReachableMetaObjects(ty->attachedPropertiesType(), metas); + if (ty->attachedPropertiesType(engine)) + collectReachableMetaObjects(ty->attachedPropertiesType(engine), metas); } /* We want to add the MetaObject for 'Qt' to the list, this is a @@ -195,11 +196,11 @@ QByteArray convertToId(const QMetaObject *mo) // Collect all metaobjects for types registered with qmlRegisterType() without parameters -void collectReachableMetaObjectsWithoutQmlName( QSet& metas ) { +void collectReachableMetaObjectsWithoutQmlName(QQmlEnginePrivate *engine, QSet& metas ) { foreach (const QQmlType *ty, QQmlMetaType::qmlAllTypes()) { if ( ! metas.contains(ty->metaObject()) ) { if (!ty->isComposite()) { - collectReachableMetaObjects(ty, &metas); + collectReachableMetaObjects(engine, ty, &metas); } else { qmlTypesByCompositeName[ty->elementName()] = ty; } @@ -225,7 +226,7 @@ QSet collectReachableMetaObjects(QQmlEngine *engine, qmlTypesByCppName[ty->metaObject()->className()].insert(ty); if (ty->isExtendedType()) extensions[ty->typeName()].insert(ty->metaObject()->className()); - collectReachableMetaObjects(ty, &metas); + collectReachableMetaObjects(QQmlEnginePrivate::get(engine), ty, &metas); } else { qmlTypesByCompositeName[ty->elementName()] = ty; } @@ -324,7 +325,7 @@ QSet collectReachableMetaObjects(QQmlEngine *engine, } } - collectReachableMetaObjectsWithoutQmlName(metas); + collectReachableMetaObjectsWithoutQmlName(QQmlEnginePrivate::get(engine), metas); return metas; } @@ -510,7 +511,7 @@ public: qml->writeEndObject(); } - void dump(const QMetaObject *meta, bool isUncreatable, bool isSingleton) + void dump(QQmlEnginePrivate *engine, const QMetaObject *meta, bool isUncreatable, bool isSingleton) { qml->writeStartObject("Component"); @@ -556,7 +557,7 @@ public: } qml->writeArrayBinding(QLatin1String("exportMetaObjectRevisions"), metaObjectRevisions); - if (const QMetaObject *attachedType = (*qmlTypes.begin())->attachedPropertiesType()) { + if (const QMetaObject *attachedType = (*qmlTypes.begin())->attachedPropertiesType(engine)) { // Can happen when a type is registered that returns itself as attachedPropertiesType() // because there is no creatable type to attach to. if (attachedType != meta) { @@ -1173,7 +1174,7 @@ int main(int argc, char *argv[]) if (relocatable) dumper.setRelocatableModuleUri(pluginImportUri); foreach (const QMetaObject *meta, nameToMeta) { - dumper.dump(meta, uncreatableMetas.contains(meta), singletonMetas.contains(meta)); + dumper.dump(QQmlEnginePrivate::get(&engine), meta, uncreatableMetas.contains(meta), singletonMetas.contains(meta)); } foreach (const QQmlType *compositeType, qmlTypesByCompositeName) dumper.dumpComposite(&engine, compositeType, defaultReachableNames); -- cgit v1.2.3