network: Minor change.

mesh
Pierre-Antoine Rouby 2023-03-24 11:52:05 +01:00
parent 7d1863fa2b
commit 4e1b3b94c0
1 changed files with 14 additions and 11 deletions

View File

@ -129,10 +129,10 @@ class EdgeItem(QGraphicsItem):
# painter.drawRect(self.boundingRect()) # painter.drawRect(self.boundingRect())
line = QLineF(self.src_node.pos(), self.dest_node.pos()) line = QLineF(self.src_node.pos(), self.dest_node.pos())
if line.length() == 0.0: if line.length() == 0.0:
return return
# Select color
color = Qt.blue color = Qt.blue
if self.graph.selected_item() == self: if self.graph.selected_item() == self:
color = Qt.red color = Qt.red
@ -143,6 +143,7 @@ class EdgeItem(QGraphicsItem):
painter.setPen(QPen(color, 3, Qt.SolidLine, Qt.RoundCap, painter.setPen(QPen(color, 3, Qt.SolidLine, Qt.RoundCap,
Qt.RoundJoin)) Qt.RoundJoin))
# Draw the line
painter.drawLine(line) painter.drawLine(line)
line_center = QPointF( line_center = QPointF(
@ -150,7 +151,7 @@ class EdgeItem(QGraphicsItem):
(self.src_node.pos().y() + self.dest_node.pos().y()) / 2, (self.src_node.pos().y() + self.dest_node.pos().y()) / 2,
) )
# Draw the arrows if there's enough room. # Draw the arrows
angle = math.acos(line.dx() / line.length()) angle = math.acos(line.dx() / line.length())
if line.dy() >= 0: if line.dy() >= 0:
angle = (math.pi * 2.0) - angle angle = (math.pi * 2.0) - angle
@ -174,27 +175,28 @@ class NodeText(QGraphicsTextItem):
self.item = node_item self.item = node_item
self.setPlainText(self.item.node.name) self.setPlainText(self.item.node.name)
self.setDefaultTextColor(Qt.black) self.setDefaultTextColor(Qt.black)
#self.setPos(self.item.pos())
self.set_custom_pos(self.item.pos()) self.set_custom_pos(self.item.pos())
self.setZValue(2) self.setZValue(2)
def set_custom_pos(self, pos): def set_custom_pos(self, pos):
x = pos.x() x = pos.x()
y = pos.y() - 42 y = pos.y() - 42 # Dont panic! The answer is 42
self.setPos(QPointF(x,y)) self.setPos(QPointF(x,y))
def paint(self, painter, option, widget): def paint(self, painter, option, widget):
color = QColor(Qt.white) color = QColor(Qt.white)
color.setAlpha(128) color.setAlpha(128)
# Draw text background
painter.setBrush(color) painter.setBrush(color)
painter.drawRect(self.boundingRect()) painter.drawRect(self.boundingRect())
# Draw text
super(NodeText, self).paint(painter, option, widget) super(NodeText, self).paint(painter, option, widget)
def rename(self): def rename(self):
# Update the node text
self.setPlainText(self.item.node.name) self.setPlainText(self.item.node.name)
class NewEdgeLine(QGraphicsItem): class NewEdgeLine(QGraphicsItem):
@ -349,7 +351,7 @@ class GraphWidget(QGraphicsView):
) )
) )
self.setSelectedItem(None) self.set_selected_item(None)
for edge in edges: for edge in edges:
self.graph.remove_edge(edge.edge.name) self.graph.remove_edge(edge.edge.name)
@ -394,7 +396,7 @@ class GraphWidget(QGraphicsView):
return return
edge = self.graph.add_edge(node1.node, node2.node) edge = self.graph.add_edge(node1.node, node2.node)
self.setSelectedItem(None) self.set_selected_item(None)
self.setSelectedNewEdgeSrcNode(None) self.setSelectedNewEdgeSrcNode(None)
# Reset the temporary line # Reset the temporary line
self.tmp_line = None self.tmp_line = None
@ -466,7 +468,7 @@ class GraphWidget(QGraphicsView):
""" """
return self._selected_item return self._selected_item
def setSelectedItem(self, item): def set_selected_item(self, item):
"""Set current selected item """Set current selected item
Args: Args:
@ -636,6 +638,8 @@ class GraphWidget(QGraphicsView):
def mouseMoveEvent(self, event): def mouseMoveEvent(self, event):
pos = self.mapToScene(event.pos()) pos = self.mapToScene(event.pos())
# Selecte item on the fly
items = self.items(event.pos()) items = self.items(event.pos())
selectable_items = list( selectable_items = list(
filter( filter(
@ -644,11 +648,10 @@ class GraphWidget(QGraphicsView):
) )
) )
# Selecte item on the fly
if selectable_items: if selectable_items:
self.setSelectedItem(selectable_items[0]) self.set_selected_item(selectable_items[0])
else: else:
self.setSelectedItem(None) self.set_selected_item(None)
# Update temporary line # Update temporary line
if self.selected_new_edge_src_node() is not None: if self.selected_new_edge_src_node() is not None: