diff options
author | Thomas Hartmann <Thomas.Hartmann@theqtcompany.com> | 2016-02-18 13:51:21 +0100 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@theqtcompany.com> | 2016-02-22 10:33:15 +0000 |
commit | 89d93c0154969990dae9c692efcd421821836152 (patch) | |
tree | 95f47fe9c620d1c9f87d8ac1bb23c5393a4d5845 /src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp | |
parent | 8aaf3a0922bd140278565d223fb9b4dadc5231f9 (diff) |
QmlDesigner: Do not collect the prototypes manually
The PrototypeIterator can handle cycles etc...
Change-Id: Ied47bc6acbab32d782f6827cf849711aed660822
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Diffstat (limited to 'src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp')
-rw-r--r-- | src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index a2c11af358..efb8ab9bec 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -454,13 +454,12 @@ PropertyNameList getSignals(const ObjectValue *objectValue, const ContextPtr &co signalList.append(processor.signalList()); - if (!local) { - const ObjectValue* prototype = objectValue->prototype(context); + PrototypeIterator prototypeIterator(objectValue, context); + QList<const ObjectValue *> objects = prototypeIterator.all(); - if (prototype == objectValue) - return signalList; - - signalList.append(getSignals(prototype, context)); + if (!local) { + foreach (const ObjectValue *prototype, objects) + signalList.append(getSignals(prototype, context, true)); } return signalList; |