1
0
Fork 0
mirror of synced 2024-06-26 18:20:50 +12:00

RareCore: add dequeue_worker() method to RareCore

It will "properly" remove a worker and update the connected widgets.
This commit is contained in:
loathingKernel 2023-02-16 17:07:02 +02:00
parent b405ff615e
commit e9cbdb22bc
2 changed files with 7 additions and 1 deletions

View file

@ -251,7 +251,7 @@ class MainWindow(QMainWindow):
if reply == QMessageBox.Yes:
self.rcore.queue_threadpool.clear()
for qw in self.rcore.queued_workers():
self.rcore.queue_workers.remove(qw)
self.rcore.dequeue_worker(qw)
self.update_statusbar()
e.ignore()
return

View file

@ -62,6 +62,12 @@ class RareCore(QObject):
self.queue_threadpool.start(worker, priority=0)
self.__signals.application.update_statusbar.emit()
def dequeue_worker(self, worker: QueueWorker):
rgame = self.__games[worker.worker_info().app_name]
rgame.set_worker(None)
self.queue_workers.remove(worker)
self.__signals.application.update_statusbar.emit()
def active_workers(self) -> Iterator[QueueWorker]:
return list(filter(lambda w: w.state == QueueWorkerState.ACTIVE, self.queue_workers))