From 21e936bf6ab7d29e414d197ab501c30c22bb46cd Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Wed, 29 Mar 2023 15:41:25 +0200
Subject: [PATCH] network: Minor change and delete dead code.

---
 src/model/network/Edge.py       |  7 ++--
 src/model/network/Graph.py      | 28 +++++++++++++---
 src/model/network/Node.py       |  3 --
 src/view/network/GraphWidget.py | 57 ++++++++++++++++-----------------
 4 files changed, 53 insertions(+), 42 deletions(-)

diff --git a/src/model/network/Edge.py b/src/model/network/Edge.py
index 1bb8cbb0..8b77c74c 100644
--- a/src/model/network/Edge.py
+++ b/src/model/network/Edge.py
@@ -3,7 +3,9 @@
 from model.network.Node import Node
 
 class Edge(object):
-    def __init__(self, id:str, name:str, node1:Node = None, node2:Node = None):
+    def __init__(self, id:str, name:str,
+                 node1:Node = None,
+                 node2:Node = None):
         super(Edge, self).__init__()
 
         self.id = id
@@ -14,9 +16,6 @@ class Edge(object):
 
         self.enable = True
 
-    def __repr__(self):
-        return f"Edge {{id: {self.id}, enable: {self.enable}, name: {self.name}, self.node1: {self.node1}, self.node2: {self.node2},}}"
-
     def __getitem__(self, name):
         ret = None
 
diff --git a/src/model/network/Graph.py b/src/model/network/Graph.py
index 0eaf03eb..d5a080d3 100644
--- a/src/model/network/Graph.py
+++ b/src/model/network/Graph.py
@@ -48,7 +48,12 @@ class Graph(object):
         )
 
     def node(self, node_name:str):
-        return list(filter(lambda n: n.name == node_name, self._nodes))[0]
+        return list(
+            filter(
+                lambda n: n.name == node_name,
+                self._nodes
+            )
+        )[0]
 
     def add_node(self, x:float = 0.0, y:float = 0.0):
         node = Node(
@@ -62,7 +67,9 @@ class Graph(object):
 
     def add_edge(self, n1:Node, n2:Node):
         # This edge already exists ?
-        if list(filter(lambda e: e.node1 == n1 and e.node2 == n2, self._edges)):
+        if list(filter(lambda e: (e.node1 == n1 and
+                                  e.node2 == n2),
+                       self._edges)):
             return None
 
         edge = Edge(self._edges_ids, "", n1, n2)
@@ -71,10 +78,20 @@ class Graph(object):
         return edge
 
     def remove_node(self, node_name:str):
-        self._nodes = list(filter(lambda n: n.name != node_name, self._nodes))
+        self._nodes = list(
+            filter(
+                lambda n: n.name != node_name,
+                self._nodes
+            )
+        )
 
     def remove_edge(self, edge_name:str):
-        self._edges = list(filter(lambda e: e.name != edge_name, self._edges))
+        self._edges = list(
+            filter(
+                lambda e: e.name != edge_name,
+                self._edges
+            )
+        )
 
     def is_upstream_node(self, node):
         return reduce(
@@ -94,7 +111,8 @@ class Graph(object):
         return reduce(
             lambda acc, e: (
                 acc or (
-                    (e.node1 == node or e.node2 == node)
+                    (e.node1 == node or
+                     e.node2 == node)
                     and e.enable
                 )
             ),
diff --git a/src/model/network/Node.py b/src/model/network/Node.py
index 73e1a7b0..c0fc06c5 100644
--- a/src/model/network/Node.py
+++ b/src/model/network/Node.py
@@ -11,9 +11,6 @@ class Node(object):
         self.name = name
         self.pos = Point(x, y)
 
-    def __repr__(self):
-        return f"Node {{id: {self.id}, name: {self.name}}}"
-
     def __getitem__(self, name):
         ret = None
 
diff --git a/src/view/network/GraphWidget.py b/src/view/network/GraphWidget.py
index 305ff635..6cb69358 100644
--- a/src/view/network/GraphWidget.py
+++ b/src/view/network/GraphWidget.py
@@ -2,24 +2,23 @@
 
 import math
 
-from model.network.Node import Node
-from model.network.Edge import Edge
-from model.network.Graph import Graph
-
 from PyQt5.QtCore import (
-    qAbs, QLineF, QPointF, QPoint, qrand, QRectF, QSizeF, qsrand,
-    Qt, QTime, pyqtSlot, pyqtSignal,
+    Qt, QPoint, QPointF, QSizeF, QLineF, QRectF,
+    pyqtSlot, pyqtSignal,
 )
 from PyQt5.QtGui import (
-    QBrush, QColor, QLinearGradient, QPainter,
-    QPainterPath, QPen, QPolygonF, QRadialGradient,
-    QFont,
+    QPainter, QColor, QBrush, QPen, QPainterPath,
+    QPolygonF,
 )
 from PyQt5.QtWidgets import (
-    QApplication, QGraphicsItem, QGraphicsScene,
-    QGraphicsView, QStyle, QGraphicsTextItem,
+    QApplication,QGraphicsScene, QGraphicsView,
+    QGraphicsItem, QGraphicsTextItem,
 )
 
+from model.network.Node import Node
+from model.network.Edge import Edge
+from model.network.Graph import Graph
+
 class NodeItem(QGraphicsItem):
     Type = QGraphicsItem.UserType + 1
 
@@ -51,7 +50,8 @@ class NodeItem(QGraphicsItem):
     def paint(self, painter, option, widget):
         painter.setPen(Qt.NoPen)
 
-        # Select in function of node position in graph or status
+        # Select color in function of node position in graph and
+        # status
         color = Qt.yellow
         if self.graph.selected_new_edge_src_node() == self:
             color = Qt.darkRed
@@ -85,7 +85,8 @@ class NodeItem(QGraphicsItem):
 class EdgeItem(QGraphicsItem):
     Type = QGraphicsItem.UserType + 2
 
-    def __init__(self, src_node_item, dest_node_item, edge, graph_widget):
+    def __init__(self, src_node_item, dest_node_item,
+                 edge, graph_widget):
         super(EdgeItem, self).__init__()
 
         self.src_node = src_node_item
@@ -95,21 +96,12 @@ class EdgeItem(QGraphicsItem):
         self.graph = graph_widget
 
         self.setAcceptedMouseButtons(Qt.NoButton)
-        self.adjust()
 
     def type(self):
         return Edge.Type
 
-    def adjust(self):
-        line = QLineF(
-            self.mapFromItem(self.src_node, 0, 0),
-            self.mapFromItem(self.dest_node, 0, 0)
-        )
-        length = line.length()
-
-        self.prepareGeometryChange()
-
     def boundingRect(self):
+        # Rectangle of edge for display update
         pen_width = 2.0
         extra = (pen_width + 5) / 2.0
 
@@ -122,6 +114,7 @@ class EdgeItem(QGraphicsItem):
         ).normalized().adjusted(-extra, -extra, extra, extra)
 
     def shape(self):
+        # Shape around edge for mouse selection
         vec = self.dest_node.pos() - self.src_node.pos()
         vec = vec * (5 / math.sqrt(QPointF.dotProduct(vec, vec)))
         extra = QPointF(vec.y(), -vec.x())
@@ -135,9 +128,9 @@ class EdgeItem(QGraphicsItem):
         return result
 
     def paint(self, painter, option, widget):
+        # Draw shape of the edge
         # color = QColor(Qt.white)
         # color.setAlpha(128)
-
         # painter.setBrush(color)
         # painter.drawPath(self.shape())
 
@@ -371,7 +364,8 @@ class GraphWidget(QGraphicsView):
         node = item.node
         edges = list(
             filter(
-                lambda ie: ie.edge.node1 == node or ie.edge.node2 == node,
+                lambda ie: (ie.edge.node1 == node or
+                            ie.edge.node2 == node),
                 self.edge_items
             )
         )
@@ -463,7 +457,8 @@ class GraphWidget(QGraphicsView):
         """
         edges = list(
             filter(
-                lambda ie: ie.edge.node1 == node.node or ie.edge.node2 == node.node,
+                lambda ie: (ie.edge.node1 == node.node or
+                            ie.edge.node2 == node.node),
                 self.edge_items
             )
         )
@@ -583,7 +578,10 @@ class GraphWidget(QGraphicsView):
 
     def drawBackground(self, painter, rect):
         sceneRect = self.sceneRect()
-        painter.fillRect(rect.intersected(sceneRect), QBrush(Qt.lightGray))
+        painter.fillRect(
+            rect.intersected(sceneRect),
+            QBrush(Qt.lightGray)
+        )
         painter.setBrush(Qt.NoBrush)
         painter.drawRect(sceneRect)
 
@@ -598,8 +596,6 @@ class GraphWidget(QGraphicsView):
         if factor < 0.05 or factor > 1.5:
             return
 
-        # print(f"{scaleFactor} : {factor}")
-
         self.scale(scaleFactor, scaleFactor)
 
     def mousePressEvent(self, event):
@@ -663,7 +659,8 @@ class GraphWidget(QGraphicsView):
         items = self.items(event.pos())
         selectable_items = list(
             filter(
-                lambda i: type(i) == NodeItem or type(i) == EdgeItem,
+                lambda i: (type(i) == NodeItem or
+                           type(i) == EdgeItem),
                 items
             )
         )
-- 
GitLab