diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py index 06619bde..aff3a6a8 100644 --- a/src/View/MainWindow.py +++ b/src/View/MainWindow.py @@ -1306,6 +1306,9 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): return self.network = NetworkWindow(study=self._study, parent=self) + self.network.networkChanged.connect( + self._tab_widget_graph.update, Qt.QueuedConnection + ) self.network.show() def open_scenarios(self): diff --git a/src/View/MainWindowTabGraph.py b/src/View/MainWindowTabGraph.py index 88244d8c..41f3401f 100644 --- a/src/View/MainWindowTabGraph.py +++ b/src/View/MainWindowTabGraph.py @@ -74,6 +74,8 @@ class WidgetGraph(QWidget): trad=self._trad, ) self._graph_layout.addWidget(self._graph_widget) + elif self._graph_widget is not None: + self._graph_widget.display_update() data = None geotiff = None @@ -89,4 +91,4 @@ class WidgetGraph(QWidget): toolbar=self.toolbar, parent=self ) - self.plot.update() \ No newline at end of file + self.plot.update() diff --git a/src/View/Network/GraphWidget.py b/src/View/Network/GraphWidget.py index 263ab957..3c008c41 100644 --- a/src/View/Network/GraphWidget.py +++ b/src/View/Network/GraphWidget.py @@ -667,6 +667,13 @@ class GraphWidget(QGraphicsView): Returns: Nothing """ + # Scene items are destroyed by clear(); do not retain hover/selection + # references to them when refreshing another view of the same graph. + self._selected_item = None + self._selected_new_edge_src_node = None + self._current_edge = None + self._current_moved_node = None + self.tmp_line = None self.scene().clear() self.create_items() diff --git a/src/View/Network/Window.py b/src/View/Network/Window.py index 4934c53d..63797bee 100644 --- a/src/View/Network/Window.py +++ b/src/View/Network/Window.py @@ -58,6 +58,8 @@ _translate = QCoreApplication.translate class NetworkWindow(PamhyrWindow): + networkChanged = pyqtSignal() + _pamhyr_ui = "Network" _pamhyr_name = "River network" @@ -140,6 +142,7 @@ class NetworkWindow(PamhyrWindow): self._graph_layout.addWidget(self._graph_widget) def setup_connections(self): + self._undo_stack.indexChanged.connect(self.networkChanged) self._nodes_model.dataChanged.connect(self.update) self._reachs_model.dataChanged.connect( self._graph_widget.display_update)