mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
refactoring: refacto IC.
This commit is contained in:
1 parent
500885ec4d
commit
b430cbb62b
9 files changed
+70
-106
No files matched your search
@@ -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()
|
||||
Reference in new issue
Block a user