BC, LC: Add read only mode support.

scenarios
Pierre-Antoine Rouby 2024-09-06 10:04:21 +02:00
parent b3fd673f33
commit 3de96a8d9d
4 changed files with 45 additions and 20 deletions

View File

@ -147,6 +147,11 @@ class EditBoundaryConditionWindow(PamhyrWindow):
for h in self._data.header:
headers[h] = table_headers[h]
if self._study.is_editable():
editable_headers = self._data.header
else:
editable_headers = []
self._delegate_time = PamhyrExTimeDelegate(
data=self._data,
mode=self._study.time_system,
@ -157,7 +162,7 @@ class EditBoundaryConditionWindow(PamhyrWindow):
self._table = TableModel(
table_view=table,
table_headers=headers,
editable_headers=self._data.header,
editable_headers=editable_headers,
delegates={
# "time": self._delegate_time,
},
@ -190,16 +195,18 @@ class EditBoundaryConditionWindow(PamhyrWindow):
self.plot.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._table.dataChanged.connect(self.update)
self._table.layoutChanged.connect(self.update)
if self._is_solid:
self._d50sigma.d50Changed.connect(self.d50_changed)
self._d50sigma.sigmaChanged.connect(self.sigma_changed)
if self._study.is_editable():
self._d50sigma.d50Changed.connect(self.d50_changed)
self._d50sigma.sigmaChanged.connect(self.sigma_changed)
def d50_changed(self, value):
self._undo_stack.push(

View File

@ -94,6 +94,11 @@ class BoundaryConditionWindow(PamhyrWindow):
def setup_table(self):
self._table = {}
if self._study.is_editable():
editable_headers = ["name", "type", "node"]
else:
editable_headers = []
for t in ["liquid", "solid", "suspenssion"]:
self._delegate_type = ComboBoxDelegate(
trad=self._trad,
@ -114,7 +119,7 @@ class BoundaryConditionWindow(PamhyrWindow):
self._table[t] = TableModel(
table_view=table,
table_headers=self._trad.get_dict("table_headers"),
editable_headers=["name", "type", "node"],
editable_headers=editable_headers,
delegates={
"type": self._delegate_type,
"node": self._delegate_node,
@ -140,10 +145,12 @@ class BoundaryConditionWindow(PamhyrWindow):
self.graph_layout.addWidget(self.graph_widget)
def setup_connections(self):
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_del").triggered.connect(self.delete)
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").triggered.connect(self.edit)
self.find(QAction, "action_sort").triggered.connect(self.sort)
def current_tab(self):
return self.find(QTabWidget, "tabWidget")\

View File

@ -93,11 +93,16 @@ class EditLateralContributionWindow(PamhyrWindow):
for h in self._data.header:
headers[h] = table_headers[h]
if self._study.is_editable():
editable_headers = self._data.header
else:
editable_headers = []
table = self.find(QTableView, "tableView")
self._table = TableModel(
table_view=table,
table_headers=headers,
editable_headers=self._data.header,
editable_headers=editable_headers,
delegates={
# "time": self._delegate_time,
},
@ -132,9 +137,10 @@ class EditLateralContributionWindow(PamhyrWindow):
self.plot.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._table.dataChanged.connect(self.update)
self._table.layoutChanged.connect(self.update)

View File

@ -88,9 +88,13 @@ class LateralContributionWindow(PamhyrWindow):
def setup_table(self):
self._table = {}
self._delegate_rk = []
if self._study.is_editable():
editable_headers = self._trad.get_dict("table_headers")
else:
editable_headers = []
for t in ["liquid", "solid", "suspenssion"]:
self._delegate_type = ComboBoxDelegate(
data=self._study.river,
@ -121,7 +125,7 @@ class LateralContributionWindow(PamhyrWindow):
self._table[t] = TableModel(
table_view=table,
table_headers=self._trad.get_dict("table_headers"),
editable_headers=self._trad.get_dict("table_headers"),
editable_headers=editable_headers,
delegates={
"type": self._delegate_type,
"edge": self._delegate_edge,
@ -153,11 +157,12 @@ class LateralContributionWindow(PamhyrWindow):
)
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_edit").triggered.connect(self.edit)
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").triggered.connect(self.edit)
self.tabs.currentChanged.connect(self._set_current_reach)
for t in ["liquid", "solid", "suspenssion"]: