From c84ab379d18571e52a0d16ab0dda50f903148082 Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Fri, 24 Mar 2023 10:55:21 +0100
Subject: [PATCH] network: Remove landmark and minor change.

---
 src/view/network/GraphWidget.py | 68 ++++++++++++++-------------------
 1 file changed, 29 insertions(+), 39 deletions(-)

diff --git a/src/view/network/GraphWidget.py b/src/view/network/GraphWidget.py
index 86b40fa0..d42edecb 100644
--- a/src/view/network/GraphWidget.py
+++ b/src/view/network/GraphWidget.py
@@ -20,36 +20,6 @@ from PyQt5.QtWidgets import (
     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):
     Type = QGraphicsItem.UserType + 1
 
@@ -174,11 +144,11 @@ class EdgeItem(QGraphicsItem):
         ).normalized().adjusted(-extra, -extra, extra, extra)
 
     def paint(self, painter, option, widget):
-        color = QColor(Qt.white)
-        color.setAlpha(128)
+        # color = QColor(Qt.white)
+        # color.setAlpha(128)
 
-        painter.setBrush(color)
-        painter.drawRect(self.boundingRect())
+        # painter.setBrush(color)
+        # painter.drawRect(self.boundingRect())
 
         line = QLineF(self.src_node.pos(), self.dest_node.pos())
 
@@ -188,10 +158,11 @@ class EdgeItem(QGraphicsItem):
         color = Qt.blue
         if self.graph.selectedItem() == self:
             color = Qt.red
+        elif self.graph.currentEdge() == self:
+            color = Qt.darkBlue
         elif not self.graph.graph.is_enable_edge(self.edge):
             color = Qt.darkGray
 
-
         painter.setPen(QPen(color, 3, Qt.SolidLine, Qt.RoundCap,
                             Qt.RoundJoin))
         painter.drawLine(line)
@@ -290,6 +261,7 @@ class GraphWidget(QGraphicsView):
 
         self._selectedItem = None
         self._selectedNewEdgeSrcNode = None
+        self._currentEdge = None
         self.tmp_line = None
 
         self.node_items = []
@@ -345,9 +317,6 @@ class GraphWidget(QGraphicsView):
             self.scene().addItem(iedge)
             self.edge_items.append(iedge)
 
-        # self.mark = LandMark(1000, 1000, self)
-        # self.scene().addItem(self.mark)
-
     def state(self, status):
         self._state = status
 
@@ -463,6 +432,16 @@ class GraphWidget(QGraphicsView):
         if previous_node:
             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):
         self.setSelectedNewEdgeSrcNode(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))
 
     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:
             return
@@ -512,9 +493,17 @@ class GraphWidget(QGraphicsView):
     def mousePressEvent(self, event):
         pos = self.mapToScene(event.pos())
         if self._state == "move":
+            self._selectedNewEdgeSrcNode = None
+
             self.mouse_origin_x = pos.x()
             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":
             items = self.items(event.pos())
             nodes = list(filter(lambda i: type(i) == NodeItem, items))
@@ -527,6 +516,7 @@ class GraphWidget(QGraphicsView):
                     self.add_edge(self.selectedNewEdgeSrcNode(), nodes[0])
 
         elif self._state == "del":
+            self._selectedNewEdgeSrcNode = None
             items = list(
                 filter(
                     lambda i: type(i) == NodeItem or type(i) == EdgeItem,
-- 
GitLab