SedimentLayer: Add d50, sigma and critical_constraint data.

This commit is contained in:
Pierre-Antoine Rouby committed 2023-08-02 13:40:46 +02:00
1 parent d636f5b637
commit 17d4b15761
4 files changed
+113 -4

No files matched your search

+24
View File
@@ -54,6 +54,12 @@ class TableModel(QAbstractTableModel):
return self._sl.get(row).type
elif self._headers[column] == "height":
return self._sl.get(row).height
elif self._headers[column] == "d50":
return self._sl.get(row).d50
elif self._headers[column] == "sigma":
return self._sl.get(row).sigma
elif self._headers[column] == "critical_constraint":
return self._sl.get(row).critical_constraint
return QVariant()
@@ -88,6 +94,24 @@ class TableModel(QAbstractTableModel):
self._sl, row, value
)
)
if self._headers[column] == "d50":
self._undo.push(
SetD50Command(
self._sl, row, value
)
)
if self._headers[column] == "sigma":
self._undo.push(
SetSigmaCommand(
self._sl, row, value
)
)
if self._headers[column] == "critical_constraint":
self._undo.push(
SetCriticalConstraintCommand(
self._sl, row, value
)
)
self.dataChanged.emit(index, index)
return True
@@ -55,6 +55,51 @@ class SetHeightCommand(QUndoCommand):
def redo(self):
self._sediment_layers.get(self._index).height = self._new
class SetD50Command(QUndoCommand):
def __init__(self, sediment_layers, index, new_value):
QUndoCommand.__init__(self)
self._sediment_layers = sediment_layers
self._index = index
self._old = self._sediment_layers.get(self._index).d50
self._new = new_value
def undo(self):
self._sediment_layers.get(self._index).d50 = self._old
def redo(self):
self._sediment_layers.get(self._index).d50 = self._new
class SetSigmaCommand(QUndoCommand):
def __init__(self, sediment_layers, index, new_value):
QUndoCommand.__init__(self)
self._sediment_layers = sediment_layers
self._index = index
self._old = self._sediment_layers.get(self._index).sigma
self._new = new_value
def undo(self):
self._sediment_layers.get(self._index).sigma = self._old
def redo(self):
self._sediment_layers.get(self._index).sigma = self._new
class SetCriticalConstraintCommand(QUndoCommand):
def __init__(self, sediment_layers, index, new_value):
QUndoCommand.__init__(self)
self._sediment_layers = sediment_layers
self._index = index
self._old = self._sediment_layers.get(self._index).critical_constraint
self._new = new_value
def undo(self):
self._sediment_layers.get(self._index).critical_constraint = self._old
def redo(self):
self._sediment_layers.get(self._index).critical_constraint = self._new
class AddCommand(QUndoCommand):
def __init__(self, sediment_layers, index):
QUndoCommand.__init__(self)
@@ -8,4 +8,7 @@ table_headers = {
"name": _translate("SedimentLayers", "Name"),
"type": _translate("SedimentLayers", "Type"),
"height": _translate("Sedimentlayers", "Height"),
"d50": _translate("Sedimentlayers", "D50"),
"sigma": _translate("Sedimentlayers", "Sigma"),
"critical_constraint": _translate("Sedimentlayers", "Critical constraint"),
}