From 1fcf8658399acfceecddc2f57a587b5334ef6ac6 Mon Sep 17 00:00:00 2001 From: Malcolm Tyrrell Date: Tue, 25 Jun 2019 21:26:54 +0100 Subject: [PATCH] Hide ports with no dataType. --- src/NodeGraphicsObject.cpp | 10 ++++++++++ src/NodePainter.cpp | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/src/NodeGraphicsObject.cpp b/src/NodeGraphicsObject.cpp index efa473a20..52dba2df1 100644 --- a/src/NodeGraphicsObject.cpp +++ b/src/NodeGraphicsObject.cpp @@ -223,6 +223,16 @@ mousePressEvent(QGraphicsSceneMouseEvent * event) { NodeState const & nodeState = _node.nodeState(); + // Ports with no data type cannot make a connection. + { + const NodeDataModel* model = _node.nodeDataModel(); + const NodeDataType dataType = model->dataType(portToCheck, portIndex); + if (dataType.id.isEmpty()) + { + continue; + } + } + std::unordered_map connections = nodeState.connections(portToCheck, portIndex); diff --git a/src/NodePainter.cpp b/src/NodePainter.cpp index c3bdf7ae0..4bd88f8e2 100644 --- a/src/NodePainter.cpp +++ b/src/NodePainter.cpp @@ -128,6 +128,12 @@ drawConnectionPoints(QPainter* painter, auto const & dataType = model->dataType(portType, i); + // Empty data types are not drawn. + if (dataType.id.isEmpty()) + { + continue; + } + bool canConnect = (state.getEntries(portType)[i].empty() || (portType == PortType::Out && model->portOutConnectionPolicy(i) == NodeDataModel::ConnectionPolicy::Many) );