diff --git a/src/View/Ensembles/Edit/Window.py b/src/View/Ensembles/Edit/Window.py index e171e369..d16b60ef 100644 --- a/src/View/Ensembles/Edit/Window.py +++ b/src/View/Ensembles/Edit/Window.py @@ -48,19 +48,24 @@ from PyQt5.QtWidgets import ( logger = logging.getLogger() +class StricklersCoefModelItem(PamhyrModelItem): + def get_value(self): + return (self._data, self.parent()._data) + class StricklersModelItem(PamhyrModelItem): def __init__(self, data=None, trad=None, parent=None): super(StricklersModelItem, self).__init__( data=data, trad=trad, parent=parent, ) - def _get_name(self): - return str(self._data) - def _setup_children(self): - self.addChild(PamhyrModelItem(data="Minor", parent=self)) - self.addChild(PamhyrModelItem(data="Medium", parent=self)) + for coef in ["strickler_minor", "strickler_medium"]: + self.addChild( + StricklersCoefModelItem(data=coef, parent=self) + ) + def get_value(self): + return self._data class EnsembleEditDialog(PamhyrDialog): _pamhyr_ui = "EnsembleEditDialog" @@ -77,21 +82,22 @@ class EnsembleEditDialog(PamhyrDialog): self._study = study self._ensemble = ensemble + self._target_data = None self._init_tree() self._init_default_values() self._init_connection() def _init_tree(self): - tree = self.find(QTreeWidget, "treeWidget_target_data") - tree.setColumnCount(1) - tree.setHeaderLabels(["Name"]) + self._tree = self.find(QTreeWidget, "treeWidget_target_data") + self._tree.setColumnCount(1) + self._tree.setHeaderLabels(["Name"]) stricklers = PamhyrModelListItem( name="Stricklers", lst=self._study.river.stricklers, child_item_ctor=StricklersModelItem, - parent=tree + parent=self._tree ) def _init_default_values(self): @@ -115,13 +121,20 @@ class EnsembleEditDialog(PamhyrDialog): self._set_widget(self._ensemble.distribution) + self._target_data = ( + self._ensemble.data_type, + self._ensemble.target_data + ) def _init_connection(self): self.find(QComboBox, "comboBox_distribution")\ .currentTextChanged.connect(self.update_distribution) - self.find(QComboBox, "comboBox_distribution")\ - .currentTextChanged.connect(self.update_distribution) + self._tree.itemClicked.connect(self._tree_item_select) + + def _tree_item_select(self, item): + if type(item) == StricklersCoefModelItem: + self._target_data = item.get_value() def update_distribution(self, txt): # txt = self.get_combobox_text("comboBox_distribution") diff --git a/src/View/Tools/PamhyrTree.py b/src/View/Tools/PamhyrTree.py index 871ac9bd..77b778ec 100644 --- a/src/View/Tools/PamhyrTree.py +++ b/src/View/Tools/PamhyrTree.py @@ -58,6 +58,8 @@ class PamhyrModelItem(QTreeWidgetItem): def _setup_children(self): return + def get_value(self): + return self._data class PamhyrModelListItem(QTreeWidgetItem): def __init__(self, name=None, lst=None, @@ -81,3 +83,6 @@ class PamhyrModelListItem(QTreeWidgetItem): data=el, trad=self._trad, parent=self ) ) + + def get_value(self): + return None