diff --git a/src/View/HydraulicStructures/BasicHydraulicStructures/Table.py b/src/View/HydraulicStructures/BasicHydraulicStructures/Table.py index f6d22a77e0c736145f95e9834f28ebc78a4ee3a3..e043d19ec70e39703670ffeff753d3ab11c439e0 100644 --- a/src/View/HydraulicStructures/BasicHydraulicStructures/Table.py +++ b/src/View/HydraulicStructures/BasicHydraulicStructures/Table.py @@ -38,7 +38,7 @@ from View.Tools.PamhyrTable import PamhyrTableModel from View.HydraulicStructures.BasicHydraulicStructures.UndoCommand import ( SetNameCommand, SetTypeCommand, - AddCommand, DelCommand, + SetEnabledCommand, AddCommand, DelCommand, ) from Model.HydraulicStructures.Basic.Types import BHS_types @@ -175,6 +175,14 @@ class TableModel(PamhyrTableModel): self.endRemoveRows() self.layoutChanged.emit() + def enabled(self, row, enabled, parent=QModelIndex()): + self._undo.push( + SetEnabledCommand( + self._lst, row, enabled + ) + ) + self.layoutChanged.emit() + def undo(self): self._undo.undo() self.layoutChanged.emit() diff --git a/src/View/HydraulicStructures/BasicHydraulicStructures/UndoCommand.py b/src/View/HydraulicStructures/BasicHydraulicStructures/UndoCommand.py index ec7f0eaf23eae48122089f1263b2782efa596bc7..80bd1f3f580fff22f74b9ad71c43b8e2afd7366e 100644 --- a/src/View/HydraulicStructures/BasicHydraulicStructures/UndoCommand.py +++ b/src/View/HydraulicStructures/BasicHydraulicStructures/UndoCommand.py @@ -60,6 +60,22 @@ class SetTypeCommand(QUndoCommand): self._hs.insert(self._index, self._new) +class SetEnabledCommand(QUndoCommand): + def __init__(self, hs, index, enabled): + QUndoCommand.__init__(self) + + self._hs = hs + self._index = index + self._old = not enabled + self._new = enabled + + def undo(self): + self._hs.basic_structure(self._index).enabled = self._old + + def redo(self): + self._hs.basic_structure(self._index).enabled = self._new + + class AddCommand(QUndoCommand): def __init__(self, hs, index): QUndoCommand.__init__(self) diff --git a/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py b/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py index 58af27ed7f5ff3665d8f18fd11d1f3783e84e8a5..976f6bf70153f8ff7877f571953bcdc9426cf8f5 100644 --- a/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py +++ b/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py @@ -145,13 +145,15 @@ class BasicHydraulicStructuresWindow(PamhyrWindow): def setup_connections(self): self.find(QAction, "action_add").triggered.connect(self.add) self.find(QAction, "action_delete").triggered.connect(self.delete) - self._checkbox.stateChanged.connect(self._set_basic_structure_state) + self._checkbox.clicked.connect(self._set_basic_structure_state) table = self.find(QTableView, "tableView") table.selectionModel()\ .selectionChanged\ .connect(self.update) + self._table.layoutChanged.connect(self.update) + def index_selected(self): table = self.find(QTableView, "tableView") r = table.selectionModel()\ @@ -219,10 +221,11 @@ class BasicHydraulicStructuresWindow(PamhyrWindow): def _set_basic_structure_state(self): row = self.index_selected_row() - if row is None: - self._checkbox.setEnabled(False) - else: - self._hs.basic_structure(row).enabled = self._checkbox.isChecked() + if row is not None: + self._table.enabled( + row, + self._checkbox.isChecked() + ) def update(self): self._set_checkbox_state() diff --git a/src/View/HydraulicStructures/UndoCommand.py b/src/View/HydraulicStructures/UndoCommand.py index 826cd268a4370d32ebef7b8fd47f3397a2294c09..9c47ccf12256fb436862ef1316db9814ddfd52a2 100644 --- a/src/View/HydraulicStructures/UndoCommand.py +++ b/src/View/HydraulicStructures/UndoCommand.py @@ -92,11 +92,9 @@ class SetEnabledCommand(QUndoCommand): self._new = enabled def undo(self): - logger.info(f"Undo {self._new} -> {self._old}") self._h_s_lst.get(self._index).enabled = self._old def redo(self): - logger.info(f"Undo {self._old} -> {self._new}") self._h_s_lst.get(self._index).enabled = self._new