from __future__ import annotations from PySide6.QtCore import QObject, Signal, Slot class EditWorker(QObject): finished = Signal(object) failed = Signal(str) def __init__(self, action): super().__init__() self.action = action @Slot() def run(self) -> None: try: self.finished.emit(self.action()) except Exception as exc: self.failed.emit(str(exc)) class ScanWorker(QObject): finished = Signal(object) failed = Signal(str) def __init__(self, action): super().__init__() self.action = action @Slot() def run(self) -> None: try: self.finished.emit(self.action()) except Exception as exc: self.failed.emit(str(exc)) class LoadWorker(QObject): finished = Signal(object) failed = Signal(str) def __init__(self, action): super().__init__() self.action = action @Slot() def run(self) -> None: try: self.finished.emit(self.action()) except Exception as exc: self.failed.emit(str(exc))