RareCore: add dequeue_worker()
method to RareCore
It will "properly" remove a worker and update the connected widgets.
This commit is contained in:
parent
b405ff615e
commit
e9cbdb22bc
2 changed files with 7 additions and 1 deletions
|
@ -251,7 +251,7 @@ class MainWindow(QMainWindow):
|
||||||
if reply == QMessageBox.Yes:
|
if reply == QMessageBox.Yes:
|
||||||
self.rcore.queue_threadpool.clear()
|
self.rcore.queue_threadpool.clear()
|
||||||
for qw in self.rcore.queued_workers():
|
for qw in self.rcore.queued_workers():
|
||||||
self.rcore.queue_workers.remove(qw)
|
self.rcore.dequeue_worker(qw)
|
||||||
self.update_statusbar()
|
self.update_statusbar()
|
||||||
e.ignore()
|
e.ignore()
|
||||||
return
|
return
|
||||||
|
|
|
@ -62,6 +62,12 @@ class RareCore(QObject):
|
||||||
self.queue_threadpool.start(worker, priority=0)
|
self.queue_threadpool.start(worker, priority=0)
|
||||||
self.__signals.application.update_statusbar.emit()
|
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]:
|
def active_workers(self) -> Iterator[QueueWorker]:
|
||||||
return list(filter(lambda w: w.state == QueueWorkerState.ACTIVE, self.queue_workers))
|
return list(filter(lambda w: w.state == QueueWorkerState.ACTIVE, self.queue_workers))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue