From 8ef140dcd0fe4313a6329697e67510d3ce0d1d2d Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 28 May 2021 17:58:42 +1000 Subject: [PATCH] nodeview: use null check In a perfect world, this would be unnecessary, but it will just save us so many crashes to do it. --- app/widget/nodeview/nodeview.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 5d51f69c2..6791fc98a 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -263,6 +263,8 @@ void NodeView::Select(QVector nodes) // Remove any duplicates QVector processed; + NodeViewItem *first_item = nullptr; + foreach (Node* n, nodes) { if (processed.contains(n)) { continue; @@ -272,17 +274,25 @@ void NodeView::Select(QVector nodes) NodeViewItem* item = scene_.NodeToUIObject(n); - item->setSelected(true); + if (item) { + item->setSelected(true); - if (deselections.contains(n)) { - deselections.removeOne(n); - } else { - new_selections.append(n); + if (!first_item) { + first_item = item; + } + + if (deselections.contains(n)) { + deselections.removeOne(n); + } else { + new_selections.append(n); + } } } // Center on something - centerOn(scene_.NodeToUIObject(nodes.first())); + if (first_item) { + centerOn(first_item); + } ConnectSelectionChangedSignal();