From 84688482dca65e7a12be1a6f116190a4f677adab Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Thu, 25 May 2023 10:17:24 +0200 Subject: [PATCH] Sections: Fix section stricklers set command. --- src/Model/River.py | 13 +++++++++++++ src/Model/Section/Section.py | 4 ++-- src/Model/Section/SectionList.py | 4 ++-- src/Model/Stricklers/Stricklers.py | 6 ++++++ src/View/Sections/Table.py | 20 +++++++++++++------- src/View/Sections/UndoCommand.py | 6 ++++++ 6 files changed, 42 insertions(+), 11 deletions(-) diff --git a/src/Model/River.py b/src/Model/River.py index d95ad699..7011d73e 100644 --- a/src/Model/River.py +++ b/src/Model/River.py @@ -77,6 +77,19 @@ class River(Graph): def stricklers(self): return self._stricklers + def strickler(self, name): + ret = list( + filter( + lambda s: s.name == name or str(s) == name, + self._stricklers.stricklers + ) + ) + + if len(ret) == 0: + return None + + return ret[0] + @property def sections(self): return self._sections diff --git a/src/Model/Section/Section.py b/src/Model/Section/Section.py index d7749a9d..5d541813 100644 --- a/src/Model/Section/Section.py +++ b/src/Model/Section/Section.py @@ -81,7 +81,7 @@ class Section(object): return self._begin_strickler @begin_strickler.setter - def begin_strickler(self, stricklers): + def begin_strickler(self, strickler): self._begin_strickler = strickler self._status.modified() @@ -90,6 +90,6 @@ class Section(object): return self._end_strickler @end_strickler.setter - def end_strickler(self, stricklers): + def end_strickler(self, strickler): self._end_strickler = strickler self._status.modified() diff --git a/src/Model/Section/SectionList.py b/src/Model/Section/SectionList.py index 63d02c45..ff6ad5ef 100644 --- a/src/Model/Section/SectionList.py +++ b/src/Model/Section/SectionList.py @@ -27,7 +27,7 @@ class SectionList(object): self._status.modified() def new(self, index): - n = Section(self._status) + n = Section(status = self._status) self._sections.insert(index, n) self._status.modified() return n @@ -47,7 +47,7 @@ class SectionList(object): lambda x: x[1], filter( lambda x: x[0] in indexes, - enumerate(self._tabs[lst]) + enumerate(self._sections) ) ) ) diff --git a/src/Model/Stricklers/Stricklers.py b/src/Model/Stricklers/Stricklers.py index 9799984f..4eea5036 100644 --- a/src/Model/Stricklers/Stricklers.py +++ b/src/Model/Stricklers/Stricklers.py @@ -14,6 +14,12 @@ class Stricklers(object): self._minor = 35 self._medium = 15 + def __str__(self): + if self._name != "": + return f"{self._name} ({self._minor}, {self._medium})" + + return f"({self._minor}, {self._medium})" + @property def name(self): return self._name diff --git a/src/View/Sections/Table.py b/src/View/Sections/Table.py index d5385cf4..52a497ef 100644 --- a/src/View/Sections/Table.py +++ b/src/View/Sections/Table.py @@ -42,7 +42,7 @@ class ComboBoxDelegate(QItemDelegate): [_translate("Sections", "Not defined")] + list( map( - lambda s: s.name, + lambda s: str(s), self._data.stricklers.stricklers ) ) @@ -116,9 +116,15 @@ class TableModel(QAbstractTableModel): elif self._headers[column] == "end_kp": return self._sections.get(row).end_kp elif self._headers[column] == "begin_strickler": - return self._sections.get(row).begin_strickler + value = self._sections.get(row).begin_strickler + if value == None: + return _translate("Sections", "Not defined") + return str(value) elif self._headers[column] == "end_strickler": - return self._sections.get(row).end_strickler + value = self._sections.get(row).end_strickler + if value == None: + return _translate("Sections", "Not defined") + return str(value) return QVariant() @@ -159,16 +165,16 @@ class TableModel(QAbstractTableModel): self._sections, row, value ) ) - elif self._headers[column] == "begin_stricklers": + elif self._headers[column] == "begin_strickler": self._undo.push( SetBeginStricklerCommand( - self._sections, row, value + self._sections, row, self._data.strickler(value) ) ) - elif self._headers[column] == "end_stricklers": + elif self._headers[column] == "end_strickler": self._undo.push( SetEndStricklerCommand( - self._sections, row, value + self._sections, row, self._data.strickler(value) ) ) diff --git a/src/View/Sections/UndoCommand.py b/src/View/Sections/UndoCommand.py index b6cb445a..51e6989e 100644 --- a/src/View/Sections/UndoCommand.py +++ b/src/View/Sections/UndoCommand.py @@ -65,6 +65,9 @@ class SetBeginStricklerCommand(QUndoCommand): self._old = self._sections.get(self._index).begin_strickler self._new = new_value + print(self._old) + print(self._new) + def undo(self): self._sections.get(self._index).begin_strickler = self._old @@ -80,6 +83,9 @@ class SetEndStricklerCommand(QUndoCommand): self._old = self._sections.get(self._index).end_strickler self._new = new_value + print(self._old) + print(self._new) + def undo(self): self._sections.get(self._index).end_strickler = self._old -- GitLab