use signals to enable/disable the cancel button

This commit is contained in:
2022-02-20 08:36:54 +01:00
parent d28c870a0a
commit 916eac5134

View File

@@ -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)