diff --git a/src/plugins/logfile/filterwidget.py b/src/plugins/logfile/filterwidget.py index cc3e13b..51d976e 100644 --- a/src/plugins/logfile/filterwidget.py +++ b/src/plugins/logfile/filterwidget.py @@ -4,7 +4,7 @@ import tempfile import threading from typing import Optional, Callable -from PySide6.QtCore import QRunnable, QThreadPool +from PySide6.QtCore import QRunnable, QThreadPool, Signal from PySide6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLineEdit, QCheckBox, QPushButton from src.ui.bigtext.bigtext import BigText @@ -85,6 +85,7 @@ class FilterTask(QRunnable): class FilterWidget(QWidget): filter_model: LogFileModel filter_task: Optional[FilterTask] = None + search_is_running = Signal(bool) def __init__(self, source_model: LogFileModel): super(FilterWidget, self).__init__() @@ -101,6 +102,7 @@ class FilterWidget(QWidget): self.btn_cancel_search = QPushButton(_("Cancel")) self.btn_cancel_search.setVisible(False) self.btn_cancel_search.pressed.connect(self._cancel_search) + self.search_is_running.connect(lambda is_running: self.btn_cancel_search.setVisible(is_running)) self.ignore_case = QCheckBox(_("ignore case")) self.ignore_case.setChecked(True) @@ -185,7 +187,7 @@ class FilterWidget(QWidget): regex, self._lock, self.filter_match_found_listeners, - lambda: self.btn_cancel_search.setVisible(True), - lambda: self.btn_cancel_search.setVisible(False) + lambda: self.search_is_running.emit(True), + lambda: self.search_is_running.emit(False) ) QThreadPool.globalInstance().start(self.filter_task)