Pamhyr2: Extend RO mode to Friction, Strickler, HS, SP and REPLines.

scenarios
Pierre-Antoine Rouby 2024-09-04 17:11:15 +02:00
parent fd54116d55
commit fb12f498a7
7 changed files with 87 additions and 36 deletions

View File

@ -105,14 +105,19 @@ class FrictionsWindow(PamhyrWindow):
parent=self
)
if self._study.is_editable():
editable_headers = [
"name", "begin_rk", "end_rk",
"begin_strickler", "end_strickler"
]
else:
editable_headers = []
table = self.find(QTableView, f"tableView")
self._table = TableModel(
table_view=table,
table_headers=self._trad.get_dict("table_headers"),
editable_headers=[
"name", "begin_rk", "end_rk",
"begin_strickler", "end_strickler"
],
editable_headers=editable_headers,
delegates={
"begin_strickler": self._delegate_stricklers,
"end_strickler": self._delegate_stricklers,
@ -157,11 +162,14 @@ class FrictionsWindow(PamhyrWindow):
self.plot_2.draw()
def setup_connections(self):
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_del").triggered.connect(self.delete)
self.find(QAction, "action_sort").triggered.connect(self.sort)
if self._study.is_editable():
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_del").triggered.connect(self.delete)
self.find(QAction, "action_sort").triggered.connect(self.sort)
self.find(QAction, "action_edit_stricklers").triggered.connect(
self.edit_stricklers)
self.edit_stricklers
)
table = self.find(QTableView, f"tableView")
table.selectionModel()\

View File

@ -95,11 +95,16 @@ class BasicHydraulicStructuresWindow(PamhyrWindow):
parent=self
)
if self._study.is_editable():
editable_headers = ["name", "type"]
else:
editable_headers = []
table = self.find(QTableView, f"tableView")
self._table = TableModel(
table_view=table,
table_headers=self._trad.get_dict("table_headers"),
editable_headers=["name", "type"],
editable_headers=editable_headers,
delegates={
"type": self._delegate_type,
},
@ -123,6 +128,11 @@ class BasicHydraulicStructuresWindow(PamhyrWindow):
def setup_table_bhs_parameters(self):
self._table_parameters = None
if self._study.is_editable():
editable_headers = ["value"]
else:
editable_headers = []
table = self.find(QTableView, f"tableView_2")
self._table_parameters = ParametersTableModel(
table_view=table,
@ -171,9 +181,12 @@ class BasicHydraulicStructuresWindow(PamhyrWindow):
self.plot_ac.draw()
def setup_connections(self):
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_delete").triggered.connect(self.delete)
self._checkbox.clicked.connect(self._set_basic_structure_state)
if self._study.is_editable():
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_delete").triggered.connect(self.delete)
self._checkbox.clicked.connect(self._set_basic_structure_state)
else:
self.set_check_box_enable("checkBox", False)
table = self.find(QTableView, "tableView")
table.selectionModel()\

View File

@ -96,11 +96,16 @@ class HydraulicStructuresWindow(PamhyrWindow):
mode="rk"
)
if self._study.is_editable():
editable_headers = ["name", "reach", "rk"]
else:
editable_headers = []
table = self.find(QTableView, f"tableView")
self._table = TableModel(
table_view=table,
table_headers=self._trad.get_dict("table_headers"),
editable_headers=["name", "reach", "rk"],
editable_headers=editable_headers,
delegates={
"reach": self._delegate_reach,
"rk": self._delegate_rk,
@ -166,10 +171,14 @@ class HydraulicStructuresWindow(PamhyrWindow):
self.plot_ac.draw()
def setup_connections(self):
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_delete").triggered.connect(self.delete)
if self._study.is_editable():
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_delete").triggered.connect(self.delete)
self._checkbox.clicked.connect(self._set_structure_state)
else:
self.set_check_box_enable("checkBox", False)
self.find(QAction, "action_edit").triggered.connect(self.edit)
self._checkbox.clicked.connect(self._set_structure_state)
table = self.find(QTableView, "tableView")
table.selectionModel()\

View File

@ -62,21 +62,29 @@ class EditREPLineWindow(PamhyrDialog):
self.set_line_edit_text("lineEdit_name", self._rep_line.name)
self.set_line_edit_text("lineEdit_line", self._rep_line.line)
if self._study.is_editable():
self.set_check_box_enable("checkBox_enabled", False)
self.set_line_edit_enable("lineEdit_name", False)
self.set_line_edit_enable("lineEdit_line", False)
def accept(self):
is_enabled = self.get_check_box("checkBox_enabled")
name = self.get_line_edit_text("lineEdit_name")
line = self.get_line_edit_text("lineEdit_line")
solvers = set()
if self._study.is_editable():
is_enabled = self.get_check_box("checkBox_enabled")
name = self.get_line_edit_text("lineEdit_name")
line = self.get_line_edit_text("lineEdit_line")
solvers = set()
self._undo.push(
SetCommand(
self._rep_line,
enabled=is_enabled,
name=name,
line=line,
solvers=solvers,
self._undo.push(
SetCommand(
self._rep_line,
enabled=is_enabled,
name=name,
line=line,
solvers=solvers,
)
)
)
self._propagate_update(key=Modules.ADDITIONAL_FILES)
self._propagate_update(key=Modules.ADDITIONAL_FILES)
self.close()

View File

@ -59,8 +59,10 @@ class REPLineListWindow(PamhyrWindow):
)
def setup_connections(self):
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_delete").triggered.connect(self.delete)
if self._study.is_editable():
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_delete").triggered.connect(self.delete)
self.find(QAction, "action_edit").triggered.connect(self.edit)
def update(self):

View File

@ -87,6 +87,11 @@ class SolverParametersWindow(PamhyrWindow):
self._table = {}
self._tab_widget = self.find(QTabWidget, f"tabWidget")
if self._study.is_editable():
editable_headers = ["value"]
else:
editable_headers = []
for st in solver_type_list:
# Create widgets
widget = QWidget()
@ -102,7 +107,7 @@ class SolverParametersWindow(PamhyrWindow):
data=self._study.river,
opt_data=st,
table_headers=self._trad.get_dict("table_headers"),
editable_headers=["value"],
editable_headers=editable_headers,
trad=self._trad,
undo=self._undo_stack[st],
)

View File

@ -72,6 +72,11 @@ class StricklersWindow(PamhyrWindow):
def setup_table(self):
self._table = {}
if self._study.is_editable():
editable_headers = ["name", "comment", "minor", "medium"]
else:
editable_headers = []
for t in ["app", "study"]:
table = self.find(QTableView, f"tableView_{t}")
if t == "study":
@ -82,7 +87,7 @@ class StricklersWindow(PamhyrWindow):
self._table[t] = TableModel(
table_view=table,
table_headers=self._trad.get_dict("table_headers"),
editable_headers=["name", "comment", "minor", "medium"],
editable_headers=editable_headers,
data=data,
undo=self._undo_stack,
)
@ -93,9 +98,10 @@ class StricklersWindow(PamhyrWindow):
table.setAlternatingRowColors(True)
def setup_connections(self):
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_del").triggered.connect(self.delete)
self.find(QAction, "action_sort").triggered.connect(self.sort)
if self._study.is_editable():
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_del").triggered.connect(self.delete)
self.find(QAction, "action_sort").triggered.connect(self.sort)
def index_selected_rows(self):
table = self.find(QTableView, f"tableView_study")