Ovelapping intervals: setting default values when creating a parameter

This commit is contained in:
Dylan Jeannin committed 2026-08-12 14:49:30 +02:00
1 parent 50fa4f7bd8
commit 0fdb362313
2 files changed
+17 -4

No files matched your search

+8 -3
View File
@@ -248,13 +248,18 @@ class WeatherParametersTableModel(PamhyrTableModel):
)
elif self._headers[column] == "reach":
new_reach = self._river.edge(value)
if self._overlaps_existing_interval(
row, reach=new_reach):
overlaps = self._overlaps_existing_interval(
row, reach=new_reach
)
current = self._lst[row]
clear_interval = overlaps and current.reach is None
if overlaps and not clear_interval:
self._show_overlap_warning()
return False
self._undo.push(
SetEdgeCommand(
self._data, global_row, new_reach
self._data, global_row, new_reach,
clear_interval=clear_interval
)
)
except Exception as e:
+9 -1
View File
@@ -120,19 +120,27 @@ class SetEndCommand(QUndoCommand):
class SetEdgeCommand(QUndoCommand):
def __init__(self, wps, index, edge):
def __init__(self, wps, index, edge, clear_interval=False):
QUndoCommand.__init__(self)
self._wps = wps
self._index = index
self._old = self._wps.get(self._index).reach
self._old_begin = self._wps.get(self._index).begin_section
self._old_end = self._wps.get(self._index).end_section
self._new = edge
self._clear_interval = clear_interval
def undo(self):
self._wps.get(self._index).reach = self._old
self._wps.get(self._index).begin_section = self._old_begin
self._wps.get(self._index).end_section = self._old_end
def redo(self):
self._wps.get(self._index).reach = self._new
if self._clear_interval:
self._wps.get(self._index).begin_section = None
self._wps.get(self._index).end_section = None
class AddCommand(QUndoCommand):