refactoring: refacto IC.

This commit is contained in:
Pierre-Antoine Rouby committed 2023-10-04 13:51:01 +02:00
1 parent 500885ec4d
commit b430cbb62b
9 files changed
+70 -106

No files matched your search

+17 -39
View File
@@ -33,14 +33,14 @@ from PyQt5.QtWidgets import (
QComboBox,
)
from View.Tools.PamhyrTable import PamhyrTableModel
from View.InitialConditions.UndoCommand import (
SetCommand, AddCommand, DelCommand,
SortCommand, MoveCommand, PasteCommand,
DuplicateCommand, GenerateCommand,
)
from View.InitialConditions.translate import *
logger = logging.getLogger()
_translate = QCoreApplication.translate
@@ -87,29 +87,13 @@ class ComboBoxDelegate(QItemDelegate):
self.commitData.emit(self.sender())
class TableModel(QAbstractTableModel):
def __init__(self, river=None, reach=None, undo=None):
super(QAbstractTableModel, self).__init__()
self._headers = list(table_headers.keys())
self._river = river
class InitialConditionTableModel(PamhyrTableModel):
def __init__(self, reach=None, **kwargs):
self._reach = reach
self._undo = undo
self._ics = self._river.initial_conditions.get(reach)
super(InitialConditionTableModel, self).__init__(**kwargs)
def flags(self, index):
column = index.column()
options = Qt.ItemIsSelectable
if self._headers[column] != "speed":
options |= Qt.ItemIsEnabled | Qt.ItemIsEditable
return options
def rowCount(self, parent):
return len(self._ics)
def columnCount(self, parent):
return len(self._headers)
def _setup_lst(self):
self._lst = self._data.river.initial_conditions.get(self._reach)
def data(self, index, role):
if role != Qt.ItemDataRole.DisplayRole:
@@ -119,16 +103,10 @@ class TableModel(QAbstractTableModel):
column = index.column()
if self._headers[column] not in ["name", "comment"]:
v = self._ics.get(row)[self._headers[column]]
v = self._lst.get(row)[self._headers[column]]
return f"{v:.4f}"
else:
return self._ics.get(row)[self._headers[column]]
return QVariant()
def headerData(self, section, orientation, role):
if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Horizontal:
return table_headers[self._headers[section]]
return self._lst.get(row)[self._headers[column]]
return QVariant()
@@ -143,7 +121,7 @@ class TableModel(QAbstractTableModel):
if self._headers[column] is not None:
self._undo.push(
SetCommand(
self._ics, row, self._headers[column], value
self._lst, row, self._headers[column], value
)
)
except Exception as e:
@@ -158,7 +136,7 @@ class TableModel(QAbstractTableModel):
self._undo.push(
AddCommand(
self._ics, row
self._lst, row
)
)
@@ -170,7 +148,7 @@ class TableModel(QAbstractTableModel):
self._undo.push(
DelCommand(
self._ics, rows
self._lst, rows
)
)
@@ -182,7 +160,7 @@ class TableModel(QAbstractTableModel):
self._undo.push(
SortCommand(
self._ics, False
self._lst, False
)
)
@@ -199,7 +177,7 @@ class TableModel(QAbstractTableModel):
self._undo.push(
MoveCommand(
self._ics, "up", row
self._lst, "up", row
)
)
@@ -207,7 +185,7 @@ class TableModel(QAbstractTableModel):
self.layoutChanged.emit()
def move_down(self, index, parent=QModelIndex()):
if row > len(self._ics):
if row > len(self._lst):
return
target = row
@@ -216,7 +194,7 @@ class TableModel(QAbstractTableModel):
self._undo.push(
MoveCommand(
self._ics, "down", row
self._lst, "down", row
)
)
@@ -234,7 +212,7 @@ class TableModel(QAbstractTableModel):
def generate(self, generator, param):
self._undo.push(
GenerateCommand(
self._ics, generator, param
self._lst, generator, param
)
)
self.layoutChanged.emit()