Fixed a bug where the process widget of the playlist loading thread wouldn't get deleted if the playlist was too short.

The bug occurred because the creation of the widget was done through a PyQt-Signal but the deletion occurred in the same thread as the background process.
This commit is contained in:
The Wobbler 2025-02-20 19:17:44 +01:00
parent 301896e12c
commit f2f3937fb2
2 changed files with 4 additions and 2 deletions

View file

@ -59,6 +59,6 @@ class GUI:
def on_background_job_start(self, job_name: str, description: str, steps: int=0, getter: any=None): def on_background_job_start(self, job_name: str, description: str, steps: int=0, getter: any=None):
self.process_dock.job_started_signal.emit(job_name, description, steps, getter) self.process_dock.job_started_signal.emit(job_name, description, steps, getter)
def on_background_job_stop(self, job: str): def on_background_job_stop(self, job_name: str):
self.process_dock.on_background_job_stop(job) self.process_dock.job_finished_signal.emit(job_name)

View file

@ -13,6 +13,7 @@ class ProcessDock(QDockWidget):
# we need a signal for self.on_background_job_start() because PyQt6 doesn't allow some operations to be performed # we need a signal for self.on_background_job_start() because PyQt6 doesn't allow some operations to be performed
# from a different thread # from a different thread
job_started_signal = pyqtSignal(str, str, int, object) job_started_signal = pyqtSignal(str, str, int, object)
job_finished_signal = pyqtSignal(str)
def __init__(self, app, parent=None): def __init__(self, app, parent=None):
super().__init__(parent) super().__init__(parent)
@ -44,6 +45,7 @@ class ProcessDock(QDockWidget):
self.progress_update_timer.start(PROGRESS_UPDATE_INTERVAL) self.progress_update_timer.start(PROGRESS_UPDATE_INTERVAL)
self.job_started_signal.connect(self.on_background_job_start) self.job_started_signal.connect(self.on_background_job_start)
self.job_finished_signal.connect(self.on_background_job_stop)
def add_process(self, name: str, process: BackgroundProcess): def add_process(self, name: str, process: BackgroundProcess):
if not name in self.processes: if not name in self.processes: