From ce0bdee295e3d0e62e33b7262d4cdfcbbc6c8049 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri, 21 Jan 2022 10:06:43 -0800 Subject: [PATCH] paramview: always connect signals to real node rather than group --- app/widget/nodeparamview/nodeparamviewitem.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/widget/nodeparamview/nodeparamviewitem.cpp b/app/widget/nodeparamview/nodeparamviewitem.cpp index 50e275a0c..12bf48e13 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.cpp +++ b/app/widget/nodeparamview/nodeparamviewitem.cpp @@ -97,6 +97,8 @@ NodeParamViewItemBody::NodeParamViewItemBody(Node* node, NodeParamViewCheckBoxBe int insert_row = 0; + QVector connected_signals; + // Create widgets all root level components foreach (QString input, node->inputs()) { Node *n = node; @@ -106,6 +108,14 @@ NodeParamViewItemBody::NodeParamViewItemBody(Node* node, NodeParamViewCheckBoxBe input = ni.input(); } + if (!connected_signals.contains(n)) { + connect(n, &Node::InputArraySizeChanged, this, &NodeParamViewItemBody::InputArraySizeChanged); + connect(n, &Node::InputConnected, this, &NodeParamViewItemBody::EdgeChanged); + connect(n, &Node::InputDisconnected, this, &NodeParamViewItemBody::EdgeChanged); + + connected_signals.append(n); + } + if (!(n->GetInputFlags(input) & kInputFlagHidden)) { CreateWidgets(root_layout, n, input, -1, insert_row); @@ -137,10 +147,6 @@ NodeParamViewItemBody::NodeParamViewItemBody(Node* node, NodeParamViewCheckBoxBe } } } - - connect(node, &Node::InputArraySizeChanged, this, &NodeParamViewItemBody::InputArraySizeChanged); - connect(node, &Node::InputConnected, this, &NodeParamViewItemBody::EdgeChanged); - connect(node, &Node::InputDisconnected, this, &NodeParamViewItemBody::EdgeChanged); } void NodeParamViewItemBody::CreateWidgets(QGridLayout* layout, Node *node, const QString &input, int element, int row)