Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b24d391ac |
+24
@@ -463,7 +463,9 @@ class CoverShowcase(QWidget):
|
|||||||
self.loader.loaded.connect(self._on_loaded)
|
self.loader.loaded.connect(self._on_loaded)
|
||||||
self.loader.failed.connect(self._on_failed)
|
self.loader.failed.connect(self._on_failed)
|
||||||
self.loader.finished.connect(self._on_loading_done)
|
self.loader.finished.connect(self._on_loading_done)
|
||||||
|
self.loader.finished.connect(self._on_loader_finished)
|
||||||
self.loader.finished.connect(self.thread.quit)
|
self.loader.finished.connect(self.thread.quit)
|
||||||
|
self.thread.finished.connect(self._on_thread_finished)
|
||||||
self._threads.append(self.thread)
|
self._threads.append(self.thread)
|
||||||
self._loaders.append(self.loader)
|
self._loaders.append(self.loader)
|
||||||
self.thread.start()
|
self.thread.start()
|
||||||
@@ -521,6 +523,26 @@ class CoverShowcase(QWidget):
|
|||||||
self._loading = False
|
self._loading = False
|
||||||
self._update_status()
|
self._update_status()
|
||||||
|
|
||||||
|
def _on_loader_finished(self):
|
||||||
|
"""Drop a finished cover loader from tracking and schedule its deletion."""
|
||||||
|
loader = self.sender()
|
||||||
|
if loader is None:
|
||||||
|
return
|
||||||
|
if loader in self._loaders:
|
||||||
|
self._loaders.remove(loader)
|
||||||
|
if self.loader is loader:
|
||||||
|
self.loader = None
|
||||||
|
loader.deleteLater()
|
||||||
|
|
||||||
|
def _on_thread_finished(self):
|
||||||
|
"""Delete a finished cover-loader thread."""
|
||||||
|
thread = self.sender()
|
||||||
|
if thread in self._threads:
|
||||||
|
self._threads.remove(thread)
|
||||||
|
if self.thread is thread:
|
||||||
|
self.thread = None
|
||||||
|
thread.deleteLater()
|
||||||
|
|
||||||
def _update_status(self):
|
def _update_status(self):
|
||||||
if self._closing:
|
if self._closing:
|
||||||
return
|
return
|
||||||
@@ -4790,6 +4812,8 @@ class MainWindow(QMainWindow):
|
|||||||
thread.started.connect(worker.run)
|
thread.started.connect(worker.run)
|
||||||
worker.result.connect(self._on_library_loaded)
|
worker.result.connect(self._on_library_loaded)
|
||||||
worker.finished.connect(thread.quit)
|
worker.finished.connect(thread.quit)
|
||||||
|
worker.finished.connect(worker.deleteLater)
|
||||||
|
thread.finished.connect(thread.deleteLater)
|
||||||
thread.finished.connect(lambda t=thread, w=worker: self._forget_library_thread(t, w))
|
thread.finished.connect(lambda t=thread, w=worker: self._forget_library_thread(t, w))
|
||||||
self._library_threads.append(thread)
|
self._library_threads.append(thread)
|
||||||
self._library_workers.append(worker)
|
self._library_workers.append(worker)
|
||||||
|
|||||||
Reference in New Issue
Block a user