diff --git a/src/Model/BoundaryCondition/BoundaryConditionList.py b/src/Model/BoundaryCondition/BoundaryConditionList.py index 051a3ea83b067cb7dc021cc013163537867177b3..b2c7b8bc9a8e784cc26c7fcb82649fb3ac82d352 100644 --- a/src/Model/BoundaryCondition/BoundaryConditionList.py +++ b/src/Model/BoundaryCondition/BoundaryConditionList.py @@ -89,3 +89,11 @@ class BoundaryConditionList(PamhyrModelListWithTab): def copy(self): return copy(self) + + def get_assoc_to_node(self, tab, node): + return next( + filter( + lambda i: i.node is node, + self._tabs[tab] + ) + ) diff --git a/src/View/BoundaryCondition/UndoCommand.py b/src/View/BoundaryCondition/UndoCommand.py index 64bfebbe5c7133be86144ab2e7a00a4312d95416..fd2923d39d973e1e4b7f30d280a4785e8fbdbc7b 100644 --- a/src/View/BoundaryCondition/UndoCommand.py +++ b/src/View/BoundaryCondition/UndoCommand.py @@ -53,12 +53,19 @@ class SetNodeCommand(QUndoCommand): self._index = index self._old = self._bcs.get(self._tab, self._index).node self._new = node + self._prev_assoc_to_node = self._bcs.get_assoc_to_node(tab, node) + + def _previous_assoc_node(self, node): + if self._prev_assoc_to_node is not None: + self._prev_assoc_to_node.node = node def undo(self): self._bcs.get(self._tab, self._index).node = self._old + self._previous_assoc_node(self._new) def redo(self): self._bcs.get(self._tab, self._index).node = self._new + self._previous_assoc_node(None) class SetTypeCommand(QUndoCommand):