diff --git a/src/View/Ensembles/Edit/Window.py b/src/View/Ensembles/Edit/Window.py index d16b60ef..9d1b3b69 100644 --- a/src/View/Ensembles/Edit/Window.py +++ b/src/View/Ensembles/Edit/Window.py @@ -100,6 +100,15 @@ class EnsembleEditDialog(PamhyrDialog): parent=self._tree ) + self._target_data = ( + self._ensemble.data_type, + self._ensemble.target_data + ) + + item = stricklers.find_item_by_value(self._target_data) + if item: + self._tree.setCurrentItem(item) + def _init_default_values(self): self.set_line_edit_text("lineEdit_name", self._ensemble.name) @@ -121,11 +130,6 @@ 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) diff --git a/src/View/Tools/PamhyrTree.py b/src/View/Tools/PamhyrTree.py index 77b778ec..53615caf 100644 --- a/src/View/Tools/PamhyrTree.py +++ b/src/View/Tools/PamhyrTree.py @@ -61,6 +61,22 @@ class PamhyrModelItem(QTreeWidgetItem): def get_value(self): return self._data + def find_item_by_value(self, data): + if self.get_value() == data: + return self + + for i in range(self.childCount()): + item = self.child(i) + if item.get_value() == data: + return item + + found = item.find_item_by_value(data) + if found: + return found + + return None + + class PamhyrModelListItem(QTreeWidgetItem): def __init__(self, name=None, lst=None, child_item_ctor=PamhyrModelItem, @@ -86,3 +102,18 @@ class PamhyrModelListItem(QTreeWidgetItem): def get_value(self): return None + + def find_item_by_value(self, data): + if self.get_value() == data: + return self + + for i in range(self.childCount()): + item = self.child(i) + if item.get_value() == data: + return item + + found = item.find_item_by_value(data) + if found: + return found + + return None