diff --git a/doc/dev/documentation.org b/doc/dev/documentation.org index bbef8dc214f174aef64918786fbd6d8eb0476dd2..6d5edf6c703da44a45f77ac1c2a191b65145889d 100644 --- a/doc/dev/documentation.org +++ b/doc/dev/documentation.org @@ -636,7 +636,7 @@ class AddNodeCommand(QUndoCommand): self._node = node def undo(self): - self._graph.remove_node(self._node.name) + self._graph.remove_node(self._node) def redo(self): self._graph.insert_node(self._node) diff --git a/src/Model/Network/Graph.py b/src/Model/Network/Graph.py index 9fb48fa0b647c67e389e8d57342ffcd52eeb6ca1..69ded8450cb8b9b388c9d8d41d7f34ad13026fe8 100644 --- a/src/Model/Network/Graph.py +++ b/src/Model/Network/Graph.py @@ -142,26 +142,21 @@ class Graph(object): def insert_node(self, node): return self._add_node(node) - def remove_node(self, node_name: str): - self._nodes = list( - filter( - lambda n: n.name != node_name, - self._nodes - ) - ) - self._remove_associated_edge(node_name) + def remove_node(self, node): + self._nodes.remove(node) + self._remove_associated_edge(node) self._status.modified() - def _remove_associated_edge(self, node_name: str): + def _remove_associated_edge(self, node: str): edges = list( filter( - lambda e: (e.node1.name == node_name or - e.node2.name == node_name), + lambda e: (e.node1 == node or + e.node2 == node), self._edges, ) ) for edge in edges: - self.remove_edge(edge.name) + self.remove_edge(edge) def create_node(self, x: float = 0.0, y: float = 0.0): node = self._create_node(x, y) @@ -197,13 +192,8 @@ class Graph(object): def create_edge(self, n1: Node, n2: Node): return self._create_edge(n1, n2) - def remove_edge(self, edge_name: str): - self._edges = list( - filter( - lambda e: e.name != edge_name, - self._edges - ) - ) + def remove_edge(self, edge): + self._edges.remove(edge) self._status.modified() def is_upstream_node(self, node): diff --git a/src/Model/Network/test_network.py b/src/Model/Network/test_network.py index e9b5c428e1a9b87484d711d4ef27f825d86c1f87..23cbdcceb05bb012259f01f675eb4a817140be57 100644 --- a/src/Model/Network/test_network.py +++ b/src/Model/Network/test_network.py @@ -60,7 +60,7 @@ class GraphTestCase(unittest.TestCase): e0 = g.add_edge(n0, n1) - g.remove_edge(e0.name) + g.remove_edge(e0) self.assertEqual(g.nodes_counts(), 2) self.assertEqual(g.edges_counts(), 0) @@ -73,7 +73,7 @@ class GraphTestCase(unittest.TestCase): e0 = g.add_edge(n0, n1) - g.remove_node(n0.name) + g.remove_node(n0) self.assertEqual(g.nodes_counts(), 1) self.assertEqual(g.edges_counts(), 0) @@ -88,7 +88,7 @@ class GraphTestCase(unittest.TestCase): e0 = g.add_edge(n0, n1) e1 = g.add_edge(n1, n2) - g.remove_node(n1.name) + g.remove_node(n1) self.assertEqual(g.nodes_counts(), 2) self.assertEqual(g.edges_counts(), 0) diff --git a/src/View/Network/GraphWidget.py b/src/View/Network/GraphWidget.py index 88a6ad07fa4005fb866833206ae13effc0cf0605..5db5e7df9069baa5e5b22914a88a828a518be2c6 100644 --- a/src/View/Network/GraphWidget.py +++ b/src/View/Network/GraphWidget.py @@ -457,9 +457,13 @@ class GraphWidget(QGraphicsView): self.m_origin_y = 0.0 self.clicked = False + self.setup_scene(min_size, max_size, size) + + def setup_scene(self, min_size, max_size, size): scene = QGraphicsScene(self) scene.setItemIndexMethod(QGraphicsScene.NoIndex) scene.setSceneRect(0, 0, 2000, 2000) + self.setScene(scene) self.setCacheMode(QGraphicsView.CacheBackground) self.setViewportUpdateMode(QGraphicsView.BoundingRectViewportUpdate) diff --git a/src/View/Network/UndoCommand.py b/src/View/Network/UndoCommand.py index 5c752c0de01c1506b9fae7f032020001cd31e118..1a77840ed0c18db653a03c0871a3eba8b65404e4 100644 --- a/src/View/Network/UndoCommand.py +++ b/src/View/Network/UndoCommand.py @@ -40,7 +40,7 @@ class AddNodeCommand(QUndoCommand): self._node = node def undo(self): - self._graph.remove_node(self._node.name) + self._graph.remove_node(self._node) def redo(self): self._graph.insert_node(self._node) @@ -85,9 +85,9 @@ class DelNodeCommand(QUndoCommand): ) for edge in self._edges: - self._graph.remove_edge(edge.name) + self._graph.remove_edge(edge) - self._graph.remove_node(self._node.name) + self._graph.remove_node(self._node) class AddEdgeCommand(QUndoCommand): @@ -98,7 +98,7 @@ class AddEdgeCommand(QUndoCommand): self._edge = edge def undo(self): - self._graph.remove_edge(self._edge.name) + self._graph.remove_edge(self._edge) def redo(self): self._graph.insert_edge(self._edge) @@ -115,7 +115,7 @@ class DelEdgeCommand(QUndoCommand): self._graph.insert_edge(self._edge) def redo(self): - self._graph.remove_edge(self._edge.name) + self._graph.remove_edge(self._edge) class SetCommand(QUndoCommand):