mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
refactoring: refacto frictions & stricklers.
This commit is contained in:
1 parent
b430cbb62b
commit
4ce597a2a0
7 files changed
+72
-104
No files matched your search
+22
-42
@@ -41,6 +41,8 @@ from View.Frictions.UndoCommand import (
|
||||
MoveCommand, PasteCommand, DuplicateCommand,
|
||||
)
|
||||
|
||||
from View.Tools.PamhyrTable import PamhyrTableModel
|
||||
|
||||
from View.Frictions.translate import *
|
||||
|
||||
logger = logging.getLogger()
|
||||
@@ -93,26 +95,10 @@ class ComboBoxDelegate(QItemDelegate):
|
||||
self.commitData.emit(self.sender())
|
||||
|
||||
|
||||
class TableModel(QAbstractTableModel):
|
||||
def __init__(self, data=None, study=None, undo=None):
|
||||
super(QAbstractTableModel, self).__init__()
|
||||
self._headers = list(table_headers.keys())
|
||||
self._data = data
|
||||
self._study = study
|
||||
self._undo = undo
|
||||
self._frictions = self._data.frictions
|
||||
|
||||
def flags(self, index):
|
||||
options = Qt.ItemIsEnabled | Qt.ItemIsSelectable
|
||||
options |= Qt.ItemIsEditable
|
||||
|
||||
return options
|
||||
|
||||
def rowCount(self, parent):
|
||||
return len(self._frictions)
|
||||
|
||||
def columnCount(self, parent):
|
||||
return len(self._headers)
|
||||
class TableModel(PamhyrTableModel):
|
||||
def _setup_lst(self):
|
||||
self._lst = self._data.frictions
|
||||
self._study = self._opt_data
|
||||
|
||||
def data(self, index, role):
|
||||
if role != Qt.ItemDataRole.DisplayRole:
|
||||
@@ -122,30 +108,24 @@ class TableModel(QAbstractTableModel):
|
||||
column = index.column()
|
||||
|
||||
if self._headers[column] == "name":
|
||||
return self._frictions.get(row).name
|
||||
return self._lst.get(row).name
|
||||
elif self._headers[column] == "begin_kp":
|
||||
return self._frictions.get(row).begin_kp
|
||||
return self._lst.get(row).begin_kp
|
||||
elif self._headers[column] == "end_kp":
|
||||
return self._frictions.get(row).end_kp
|
||||
return self._lst.get(row).end_kp
|
||||
elif self._headers[column] == "begin_strickler":
|
||||
value = self._frictions.get(row).begin_strickler
|
||||
value = self._lst.get(row).begin_strickler
|
||||
if value == None:
|
||||
return _translate("Frictions", "Not defined")
|
||||
return str(value)
|
||||
elif self._headers[column] == "end_strickler":
|
||||
value = self._frictions.get(row).end_strickler
|
||||
value = self._lst.get(row).end_strickler
|
||||
if value == None:
|
||||
return _translate("Frictions", "Not defined")
|
||||
return str(value)
|
||||
|
||||
return QVariant()
|
||||
|
||||
def headerData(self, friction, orientation, role):
|
||||
if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Horizontal:
|
||||
return table_headers[self._headers[friction]]
|
||||
|
||||
return QVariant()
|
||||
|
||||
def setData(self, index, value, role=Qt.EditRole):
|
||||
if not index.isValid() or role != Qt.EditRole:
|
||||
return False
|
||||
@@ -157,31 +137,31 @@ class TableModel(QAbstractTableModel):
|
||||
if self._headers[column] == "name":
|
||||
self._undo.push(
|
||||
SetNameCommand(
|
||||
self._frictions, row, value
|
||||
self._lst, row, value
|
||||
)
|
||||
)
|
||||
elif self._headers[column] == "begin_kp":
|
||||
self._undo.push(
|
||||
SetBeginCommand(
|
||||
self._frictions, row, value
|
||||
self._lst, row, value
|
||||
)
|
||||
)
|
||||
elif self._headers[column] == "end_kp":
|
||||
self._undo.push(
|
||||
SetEndCommand(
|
||||
self._frictions, row, value
|
||||
self._lst, row, value
|
||||
)
|
||||
)
|
||||
elif self._headers[column] == "begin_strickler":
|
||||
self._undo.push(
|
||||
SetBeginStricklerCommand(
|
||||
self._frictions, row, self._study.river.strickler(value)
|
||||
self._lst, row, self._study.river.strickler(value)
|
||||
)
|
||||
)
|
||||
elif self._headers[column] == "end_strickler":
|
||||
self._undo.push(
|
||||
SetEndStricklerCommand(
|
||||
self._frictions, row, self._study.river.strickler(value)
|
||||
self._lst, row, self._study.river.strickler(value)
|
||||
)
|
||||
)
|
||||
except Exception as e:
|
||||
@@ -196,7 +176,7 @@ class TableModel(QAbstractTableModel):
|
||||
|
||||
self._undo.push(
|
||||
AddCommand(
|
||||
self._frictions, row, self._data
|
||||
self._lst, row, self._data
|
||||
)
|
||||
)
|
||||
|
||||
@@ -208,7 +188,7 @@ class TableModel(QAbstractTableModel):
|
||||
|
||||
self._undo.push(
|
||||
DelCommand(
|
||||
self._frictions, rows
|
||||
self._lst, rows
|
||||
)
|
||||
)
|
||||
|
||||
@@ -220,7 +200,7 @@ class TableModel(QAbstractTableModel):
|
||||
|
||||
self._undo.push(
|
||||
SortCommand(
|
||||
self._frictions, False
|
||||
self._lst, False
|
||||
)
|
||||
)
|
||||
|
||||
@@ -237,7 +217,7 @@ class TableModel(QAbstractTableModel):
|
||||
|
||||
self._undo_stack.push(
|
||||
MoveCommand(
|
||||
self._frictions, "up", row
|
||||
self._lst, "up", row
|
||||
)
|
||||
)
|
||||
|
||||
@@ -245,7 +225,7 @@ class TableModel(QAbstractTableModel):
|
||||
self.layoutChanged.emit()
|
||||
|
||||
def move_down(self, index, parent=QModelIndex()):
|
||||
if row > len(self._frictions):
|
||||
if row > len(self._lst):
|
||||
return
|
||||
|
||||
target = row
|
||||
@@ -254,7 +234,7 @@ class TableModel(QAbstractTableModel):
|
||||
|
||||
self._undo_stack.push(
|
||||
MoveCommand(
|
||||
self._frictions, "down", row
|
||||
self._lst, "down", row
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
Reference in new issue
Block a user