From f639f72c14a3cbfc4eefd6db93963551df03e0d7 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 19 Sep 2022 17:07:40 +0200 Subject: [PATCH] QmlDesigner: Add QmlObjectNode::getAllConnections Change-Id: Id6fa6ecdf1173eea1087057f4317dd1a9c3f6b17 Reviewed-by: Aleksei German --- .../designercore/include/qmlobjectnode.h | 2 ++ .../designercore/model/qmlobjectnode.cpp | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h b/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h index a37dbe77532..63e36e22f12 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h +++ b/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h @@ -140,6 +140,8 @@ public: QList allTimelines() const; + QList getAllConnections() const; + protected: NodeInstance nodeInstance() const; QmlObjectNode nodeForInstance(const NodeInstance &instance) const; diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp index 9925af902a7..64a562c0296 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp @@ -45,6 +45,7 @@ #include #endif +#include #include #include @@ -608,6 +609,18 @@ QList QmlObjectNode::allTimelines() const return timelineNodes; } +QList QmlObjectNode::getAllConnections() const +{ + if (!isValid()) + return {}; + + auto list = view()->allModelNodesOfType("QtQuick.Connections"); + return Utils::filtered(list, [this](const ModelNode &connection) { + return connection.hasBindingProperty("target") + && connection.bindingProperty("target").resolveToModelNode() == modelNode(); + }); +} + /*! Removes a variant property of the object specified by \a name from the model.