fix: 优化重新采集取消交互 (#82)
This commit is contained in:
+32
-5
@@ -277,12 +277,14 @@ class PDDTaskPage(QWidget):
|
||||
searchRequested = pyqtSignal(dict)
|
||||
refreshRequested = pyqtSignal()
|
||||
rerunRequested = pyqtSignal(str)
|
||||
rerunCancelRequested = pyqtSignal()
|
||||
detailRequested = pyqtSignal(str)
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
self.setObjectName("pddTaskPage")
|
||||
|
||||
self._rerun_state = "idle"
|
||||
self.taskModel = TaskTableModel(self)
|
||||
self._build_command_area()
|
||||
self._build_content_area()
|
||||
@@ -508,22 +510,47 @@ class PDDTaskPage(QWidget):
|
||||
return task.remote_task_id if task else ""
|
||||
|
||||
def set_rerun_running(self, running: bool) -> None:
|
||||
"""重新采集期间锁定两个会操作手机的入口。"""
|
||||
"""设置重新采集状态;运行时保留可见的停止入口。"""
|
||||
|
||||
self.rerunButton.setText("正在重新采集" if running else "重新执行")
|
||||
self.autoFetchButton.setEnabled(not running)
|
||||
self._rerun_state = "running" if running else "idle"
|
||||
self._update_rerun_button()
|
||||
|
||||
def set_rerun_cancelling(self) -> None:
|
||||
"""显示取消请求已发出,防止用户重复点击。"""
|
||||
|
||||
self._rerun_state = "cancelling"
|
||||
self._update_rerun_button()
|
||||
|
||||
def _request_rerun(self) -> None:
|
||||
if self._rerun_state == "running":
|
||||
self.rerunCancelRequested.emit()
|
||||
return
|
||||
if self._rerun_state != "idle":
|
||||
return
|
||||
task_id = self.current_task_id()
|
||||
if task_id:
|
||||
self.rerunRequested.emit(task_id)
|
||||
|
||||
def _update_rerun_button(self) -> None:
|
||||
running = self.rerunButton.text() == "正在重新采集"
|
||||
if self._rerun_state == "running":
|
||||
self.rerunButton.setText("停止重新采集")
|
||||
self.rerunButton.setAccessibleName("停止当前重新采集")
|
||||
self.rerunButton.setEnabled(True)
|
||||
self.autoFetchButton.setEnabled(False)
|
||||
return
|
||||
if self._rerun_state == "cancelling":
|
||||
self.rerunButton.setText("正在停止…")
|
||||
self.rerunButton.setAccessibleName("正在停止重新采集")
|
||||
self.rerunButton.setEnabled(False)
|
||||
self.autoFetchButton.setEnabled(False)
|
||||
return
|
||||
|
||||
self.rerunButton.setText("重新执行")
|
||||
self.rerunButton.setAccessibleName("重新执行当前选中的采集任务")
|
||||
self.autoFetchButton.setEnabled(True)
|
||||
has_selection = self.taskTable.selectionModel().hasSelection()
|
||||
self.rerunButton.setEnabled(
|
||||
has_selection and bool(self.current_task_id()) and not running
|
||||
has_selection and bool(self.current_task_id())
|
||||
)
|
||||
|
||||
def _apply_filters(self) -> None:
|
||||
|
||||
Reference in New Issue
Block a user