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:
parent
301896e12c
commit
f2f3937fb2
2 changed files with 4 additions and 2 deletions
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Add table
Reference in a new issue