network: Remove landmark and minor change.

mesh
Pierre-Antoine Rouby 2023-03-24 10:55:21 +01:00
parent cec8eac432
commit c84ab379d1
1 changed files with 29 additions and 39 deletions

View File

@ -20,36 +20,6 @@ from PyQt5.QtWidgets import (
QGraphicsView, QStyle, QGraphicsTextItem, QGraphicsView, QStyle, QGraphicsTextItem,
) )
class LandMark(QGraphicsItem):
def __init__(self, width, height, parent=None):
super(LandMark, self).__init__()
self.width = width
self.height = height
self.center = QPoint(width / 2, height / 2)
self.parent = parent
def paint(self, painter, option, widget):
painter.setPen(Qt.NoPen)
painter.setPen(QPen(Qt.black, 0))
painter.drawLine(
-10 + self.center.x(), 0 + self.center.y(),
10 + self.center.x(), 0 + self.center.y()
)
painter.drawLine(
0 + self.center.x(), -10 + self.center.y(),
0 + self.center.x(), 10 + self.center.y()
)
def boundingRect(self):
return QRectF(
-10 + self.center.x(), -10 + self.center.y(),
10 + self.center.x(), 10 + self.center.y()
)
class NodeItem(QGraphicsItem): class NodeItem(QGraphicsItem):
Type = QGraphicsItem.UserType + 1 Type = QGraphicsItem.UserType + 1
@ -174,11 +144,11 @@ class EdgeItem(QGraphicsItem):
).normalized().adjusted(-extra, -extra, extra, extra) ).normalized().adjusted(-extra, -extra, extra, extra)
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)
painter.setBrush(color) # painter.setBrush(color)
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())
@ -188,10 +158,11 @@ class EdgeItem(QGraphicsItem):
color = Qt.blue color = Qt.blue
if self.graph.selectedItem() == self: if self.graph.selectedItem() == self:
color = Qt.red color = Qt.red
elif self.graph.currentEdge() == self:
color = Qt.darkBlue
elif not self.graph.graph.is_enable_edge(self.edge): elif not self.graph.graph.is_enable_edge(self.edge):
color = Qt.darkGray color = Qt.darkGray
painter.setPen(QPen(color, 3, Qt.SolidLine, Qt.RoundCap, painter.setPen(QPen(color, 3, Qt.SolidLine, Qt.RoundCap,
Qt.RoundJoin)) Qt.RoundJoin))
painter.drawLine(line) painter.drawLine(line)
@ -290,6 +261,7 @@ class GraphWidget(QGraphicsView):
self._selectedItem = None self._selectedItem = None
self._selectedNewEdgeSrcNode = None self._selectedNewEdgeSrcNode = None
self._currentEdge = None
self.tmp_line = None self.tmp_line = None
self.node_items = [] self.node_items = []
@ -345,9 +317,6 @@ class GraphWidget(QGraphicsView):
self.scene().addItem(iedge) self.scene().addItem(iedge)
self.edge_items.append(iedge) self.edge_items.append(iedge)
# self.mark = LandMark(1000, 1000, self)
# self.scene().addItem(self.mark)
def state(self, status): def state(self, status):
self._state = status self._state = status
@ -463,6 +432,16 @@ class GraphWidget(QGraphicsView):
if previous_node: if previous_node:
previous_node.update() previous_node.update()
def currentEdge(self):
return self._currentEdge
def setCurrentEdge(self, edge):
previous_edge = self._selectedNewEdgeSrcNode
self._currentEdge = edge
if previous_edge:
previous_edge.update()
def reset_selection(self): def reset_selection(self):
self.setSelectedNewEdgeSrcNode(None) self.setSelectedNewEdgeSrcNode(None)
if self.tmp_line is not None: if self.tmp_line is not None:
@ -500,7 +479,9 @@ class GraphWidget(QGraphicsView):
self.scaleView(math.pow(2.0, -event.angleDelta().y() / 240.0)) self.scaleView(math.pow(2.0, -event.angleDelta().y() / 240.0))
def scaleView(self, scaleFactor): def scaleView(self, scaleFactor):
factor = self.transform().scale(scaleFactor, scaleFactor).mapRect(QRectF(0, 0, 1, 1)).width() factor = self.transform().scale(
scaleFactor, scaleFactor
).mapRect(QRectF(0, 0, 1, 1)).width()
if factor < 0.05 or factor > 1.5: if factor < 0.05 or factor > 1.5:
return return
@ -512,9 +493,17 @@ class GraphWidget(QGraphicsView):
def mousePressEvent(self, event): def mousePressEvent(self, event):
pos = self.mapToScene(event.pos()) pos = self.mapToScene(event.pos())
if self._state == "move": if self._state == "move":
self._selectedNewEdgeSrcNode = None
self.mouse_origin_x = pos.x() self.mouse_origin_x = pos.x()
self.mouse_origin_y = pos.y() self.mouse_origin_y = pos.y()
items = self.items(event.pos())
if type(items[0]) == EdgeItem:
edge = items[0]
if edge:
self.setCurrentEdge(edge)
elif self._state == "add": elif self._state == "add":
items = self.items(event.pos()) items = self.items(event.pos())
nodes = list(filter(lambda i: type(i) == NodeItem, items)) nodes = list(filter(lambda i: type(i) == NodeItem, items))
@ -527,6 +516,7 @@ class GraphWidget(QGraphicsView):
self.add_edge(self.selectedNewEdgeSrcNode(), nodes[0]) self.add_edge(self.selectedNewEdgeSrcNode(), nodes[0])
elif self._state == "del": elif self._state == "del":
self._selectedNewEdgeSrcNode = None
items = list( items = list(
filter( filter(
lambda i: type(i) == NodeItem or type(i) == EdgeItem, lambda i: type(i) == NodeItem or type(i) == EdgeItem,