Design main window: Network graph is now connected with the edition window to refresh after every change

dev_dylan
Dylan Jeannin 2026-09-07 17:06:24 +02:00
parent 499e16975f
commit 97f487c0af
4 changed files with 16 additions and 1 deletions

View File

@ -1306,6 +1306,9 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
return return
self.network = NetworkWindow(study=self._study, parent=self) self.network = NetworkWindow(study=self._study, parent=self)
self.network.networkChanged.connect(
self._tab_widget_graph.update, Qt.QueuedConnection
)
self.network.show() self.network.show()
def open_scenarios(self): def open_scenarios(self):

View File

@ -74,6 +74,8 @@ class WidgetGraph(QWidget):
trad=self._trad, trad=self._trad,
) )
self._graph_layout.addWidget(self._graph_widget) self._graph_layout.addWidget(self._graph_widget)
elif self._graph_widget is not None:
self._graph_widget.display_update()
data = None data = None
geotiff = None geotiff = None

View File

@ -667,6 +667,13 @@ class GraphWidget(QGraphicsView):
Returns: Returns:
Nothing 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.scene().clear()
self.create_items() self.create_items()

View File

@ -58,6 +58,8 @@ _translate = QCoreApplication.translate
class NetworkWindow(PamhyrWindow): class NetworkWindow(PamhyrWindow):
networkChanged = pyqtSignal()
_pamhyr_ui = "Network" _pamhyr_ui = "Network"
_pamhyr_name = "River network" _pamhyr_name = "River network"
@ -140,6 +142,7 @@ class NetworkWindow(PamhyrWindow):
self._graph_layout.addWidget(self._graph_widget) self._graph_layout.addWidget(self._graph_widget)
def setup_connections(self): def setup_connections(self):
self._undo_stack.indexChanged.connect(self.networkChanged)
self._nodes_model.dataChanged.connect(self.update) self._nodes_model.dataChanged.connect(self.update)
self._reachs_model.dataChanged.connect( self._reachs_model.dataChanged.connect(
self._graph_widget.display_update) self._graph_widget.display_update)