use signals to enable/disable the cancel button
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user