From b9765da90ca3a4ac8bc827deb58ce25e99477574 Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Mon, 22 Sep 2025 15:44:29 +0200 Subject: [PATCH 1/2] Empty Find highlights nothing! --- src/petab_gui/views/find_replace_bar.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/petab_gui/views/find_replace_bar.py b/src/petab_gui/views/find_replace_bar.py index 280c208..ec4f1fd 100644 --- a/src/petab_gui/views/find_replace_bar.py +++ b/src/petab_gui/views/find_replace_bar.py @@ -128,6 +128,18 @@ def __init__(self, controller, parent=None): def run_find(self): """Triggered when the search text changes.""" search_text = self.find_input.text() + if not search_text: + for controller in [ + self.controller.observable_controller, + self.controller.condition_controller, + self.controller.parameter_controller, + self.controller.measurement_controller, + ]: + controller.cleanse_highlighted_cells() + self.matches = [] + self.current_match_ind = -1 + self.update_result_label() + return case_sensitive = self.case_sensitive_button.isChecked() regex = self.regex_button.isChecked() whole_cell = self.word_match_button.isChecked() From 144b5e7030efa9a06e57ab46f096835916933544 Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Mon, 22 Sep 2025 16:26:05 +0200 Subject: [PATCH 2/2] - Fixed bug in hideEvent - Fixed error that led to no updated when selecting specific controller --- src/petab_gui/views/find_replace_bar.py | 28 +++++++++---------------- 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/src/petab_gui/views/find_replace_bar.py b/src/petab_gui/views/find_replace_bar.py index ec4f1fd..2ea55ab 100644 --- a/src/petab_gui/views/find_replace_bar.py +++ b/src/petab_gui/views/find_replace_bar.py @@ -3,9 +3,8 @@ import qtawesome as qta from PySide6.QtCore import Qt -from PySide6.QtGui import QAction +from PySide6.QtGui import QAction, QHideEvent, QShowEvent from PySide6.QtWidgets import ( - QCheckBox, QHBoxLayout, QLabel, QLineEdit, @@ -27,7 +26,7 @@ def __init__(self, controller, parent=None): "Parameter Table": self.controller.parameter_controller, "Measurement Table": self.controller.measurement_controller, } - self.selected_controllers = set() + self.selected_controllers = self.controller_map.values() self.only_search = False self.matches = None @@ -129,12 +128,7 @@ def run_find(self): """Triggered when the search text changes.""" search_text = self.find_input.text() if not search_text: - for controller in [ - self.controller.observable_controller, - self.controller.condition_controller, - self.controller.parameter_controller, - self.controller.measurement_controller, - ]: + for controller in self.controller_map.values(): controller.cleanse_highlighted_cells() self.matches = [] self.current_match_ind = -1 @@ -147,12 +141,10 @@ def run_find(self): self.matches = [] self.current_match_ind = -1 - for controller in [ - self.controller.observable_controller, - self.controller.condition_controller, - self.controller.parameter_controller, - self.controller.measurement_controller, - ]: + for controller in self.controller_map.values(): + if controller not in self.selected_controllers: + controller.cleanse_highlighted_cells() + continue matches = controller.find_text( search_text, case_sensitive, regex, whole_cell ) @@ -289,13 +281,13 @@ def keyPressEvent(self, event): else: super().keyPressEvent(event) - def hideEvent(self, event): + def hideEvent(self, event: QHideEvent): """Reset highlights when the Find/Replace bar is hidden.""" - for controller in self.selected_controllers: + for controller in self.controller_map.values(): controller.cleanse_highlighted_cells() super().hideEvent(event) - def showEvent(self, event): + def showEvent(self, event: QShowEvent): """Reset highlights when the Find/Replace bar is shown.""" # group matches by controller if not self.matches: