52 lines
1.1 KiB
Python
52 lines
1.1 KiB
Python
|
|
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))
|