diff --git a/src/NodeGraphicsObject.cpp b/src/NodeGraphicsObject.cpp index efa473a2..52dba2df 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 c3bdf7ae..4bd88f8e 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) );