From ba8a50e0b957ffde1fa32ef28bc5d6d9053038c8 Mon Sep 17 00:00:00 2001 From: Theophile Terraz Date: Fri, 19 Sep 2025 16:03:23 +0200 Subject: [PATCH] debug frictions --- src/View/Frictions/UndoCommand.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/View/Frictions/UndoCommand.py b/src/View/Frictions/UndoCommand.py index 14d6395b..dc060f00 100644 --- a/src/View/Frictions/UndoCommand.py +++ b/src/View/Frictions/UndoCommand.py @@ -151,6 +151,7 @@ class ReplaceDataCommand(QUndoCommand): self._new_data = new_data self._old_rows = list(range(len(frictions))) self._new_rows = list(range(len(new_data))) + self._new = [] self._old_friction = [] for row in self._old_rows: @@ -162,15 +163,20 @@ class ReplaceDataCommand(QUndoCommand): self._frictions.insert(row, el) def redo(self): - self._frictions.delete_i(self._old_rows) - for row in self._new_rows: - new = self._frictions.new(row) - d = self._new_data[row] - new.edge = d[0] - new.begin_rk = d[1] - new.end_rk = d[2] - new.begin_strickler = d[3] - new.end_strickler = d[4] + if len(self._new) == 0: + self._frictions.delete_i(self._old_rows) + for row in self._new_rows: + new = self._frictions.new(row) + d = self._new_data[row] + new.edge = d[0] + new.begin_rk = d[1] + new.end_rk = d[2] + new.begin_strickler = d[3] + new.end_strickler = d[4] + self._new.append((row, new)) + else: + for row, el in self._new: + self._frictions.insert(row, el) class DelCommand(QUndoCommand):