diff --git a/src/View/Frictions/Window.py b/src/View/Frictions/Window.py index a7dd9e19..03febfa1 100644 --- a/src/View/Frictions/Window.py +++ b/src/View/Frictions/Window.py @@ -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()\ diff --git a/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py b/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py index c0a133a1..62561d3a 100644 --- a/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py +++ b/src/View/HydraulicStructures/BasicHydraulicStructures/Window.py @@ -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()\ diff --git a/src/View/HydraulicStructures/Window.py b/src/View/HydraulicStructures/Window.py index a1296d44..b3c1ee69 100644 --- a/src/View/HydraulicStructures/Window.py +++ b/src/View/HydraulicStructures/Window.py @@ -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()\ diff --git a/src/View/REPLines/Edit/Window.py b/src/View/REPLines/Edit/Window.py index 473ab63d..bdedb6e9 100644 --- a/src/View/REPLines/Edit/Window.py +++ b/src/View/REPLines/Edit/Window.py @@ -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() diff --git a/src/View/REPLines/Window.py b/src/View/REPLines/Window.py index a7bc4ce0..f4160e93 100644 --- a/src/View/REPLines/Window.py +++ b/src/View/REPLines/Window.py @@ -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): diff --git a/src/View/SolverParameters/Window.py b/src/View/SolverParameters/Window.py index ed3b5b48..16809759 100644 --- a/src/View/SolverParameters/Window.py +++ b/src/View/SolverParameters/Window.py @@ -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], ) diff --git a/src/View/Stricklers/Window.py b/src/View/Stricklers/Window.py index c7d99aad..cdee6d16 100644 --- a/src/View/Stricklers/Window.py +++ b/src/View/Stricklers/Window.py @@ -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")