diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 84592543d..9d3e77000 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -137,8 +137,6 @@ NodeParamView::NodeParamView(QWidget *parent) : void NodeParamView::SelectNodes(const QVector &nodes) { - qint64 t = QDateTime::currentMSecsSinceEpoch(); - int original_node_count = items_.size(); foreach (Node* n, nodes) { @@ -162,14 +160,10 @@ void NodeParamView::SelectNodes(const QVector &nodes) SignalNodeOrder(); } - - qDebug() << "SelectNodes took" << (QDateTime::currentMSecsSinceEpoch() - t) << "with" << nodes.size() << "nodes"; } void NodeParamView::DeselectNodes(const QVector &nodes) { - qint64 t = QDateTime::currentMSecsSinceEpoch(); - // Remove item from map and delete the widget int original_node_count = items_.size(); @@ -196,8 +190,6 @@ void NodeParamView::DeselectNodes(const QVector &nodes) SignalNodeOrder(); } - - qDebug() << "DeselectNodes took" << (QDateTime::currentMSecsSinceEpoch() - t) << "with" << nodes.size() << "nodes"; } void NodeParamView::resizeEvent(QResizeEvent *event) diff --git a/app/widget/nodeparamview/nodeparamviewitem.cpp b/app/widget/nodeparamview/nodeparamviewitem.cpp index c1826fbd6..3c2d5bbb0 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.cpp +++ b/app/widget/nodeparamview/nodeparamviewitem.cpp @@ -245,10 +245,9 @@ NodeParamViewItemBody::NodeParamViewItemBody(Node* node, QWidget *parent) : root_layout->addWidget(array_widget, insert_row, 1, 1, 10); - int arr_sz = node->InputArraySize(input); - for (int j=0; j(sender())); - - array_ui_.value(input).widget->setVisible(checked); - - emit ArrayExpandedChanged(checked); -} - -void NodeParamViewItemBody::InputArraySizeChanged(const QString& input, int old_sz, int size) -{ - Q_UNUSED(old_sz) - - Node* node = static_cast(sender()); - ArrayUI& array_ui = array_ui_[{node, input}]; if (size != array_ui.count) { @@ -506,9 +492,31 @@ void NodeParamViewItemBody::InputArraySizeChanged(const QString& input, int old_ } array_ui.count = size; + + Retranslate(); + } +} + +void NodeParamViewItemBody::ArrayCollapseBtnPressed(bool checked) +{ + const NodeInputPair& input = array_collapse_buttons_.key(static_cast(sender())); + + array_ui_.value(input).widget->setVisible(checked); + if (checked) { + // Ensure widgets are created (the signal will be ignored if they are) + InputArraySizeChangedInternal(input.node, input.input, input.node->InputArraySize(input.input)); } - Retranslate(); + emit ArrayExpandedChanged(checked); +} + +void NodeParamViewItemBody::InputArraySizeChanged(const QString& input, int old_sz, int size) +{ + Q_UNUSED(old_sz) + + Node* node = static_cast(sender()); + + InputArraySizeChangedInternal(node, input, size); } void NodeParamViewItemBody::ArrayAppendClicked() diff --git a/app/widget/nodeparamview/nodeparamviewitem.h b/app/widget/nodeparamview/nodeparamviewitem.h index cf6ebe465..bbd31c9f4 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.h +++ b/app/widget/nodeparamview/nodeparamviewitem.h @@ -102,6 +102,8 @@ private: void PlaceWidgetsFromBridge(QGridLayout *layout, NodeParamViewWidgetBridge* bridge, int row); + void InputArraySizeChangedInternal(Node *node, const QString &input, int size); + struct InputUI { InputUI();