Fix crash importing files

This commit is contained in:
Keith Edmunds 2025-01-01 13:13:54 +00:00
parent e23f6e2cc8
commit 85cfebe0f7

View File

@ -175,6 +175,8 @@ class FileImporter:
self.unimportable_files: list[FileErrors] = []
# Files user doesn't want imported
self.do_not_import: list[str] = []
# Place to keep reference to importer while it runs
self.import_thread: dict[int, QThread] = {}
def do_import(self) -> None:
"""
@ -223,7 +225,10 @@ class FileImporter:
self.import_files_data = [
x
for x in self.import_files_data
if x.import_file_path not in self.do_not_import
if (
x.import_file_path not in self.do_not_import
or x.track_id != -1
)
]
# Import all that's left.
@ -253,9 +258,9 @@ class FileImporter:
)
if matching_track < 0: # User cancelled
return
matching_track = -1
if matching_track == 0:
elif matching_track == 0:
self.import_files_data[idx].destination_track_path = os.path.join(
Config.IMPORT_DESTINATION,
os.path.basename(self.import_files_data[idx].import_file_path),
@ -277,7 +282,7 @@ class FileImporter:
f = self.import_files_data[idx]
# Import in separate thread
self.import_thread = QThread()
self.import_thread[idx] = QThread()
self.worker = DoTrackImport(
import_file_path=f.import_file_path,
tags=f.tags,
@ -288,12 +293,12 @@ class FileImporter:
row_number=self.row_number,
)
self.worker.moveToThread(self.import_thread)
self.import_thread.started.connect(self.worker.run)
self.worker.import_finished.connect(self.import_thread.quit)
self.worker.moveToThread(self.import_thread[idx])
self.import_thread[idx].started.connect(self.worker.run)
self.worker.import_finished.connect(self.import_thread[idx].quit)
self.worker.import_finished.connect(self.worker.deleteLater)
self.import_thread.finished.connect(self.import_thread.deleteLater)
self.import_thread.start()
self.import_thread[idx].finished.connect(self.import_thread[idx].deleteLater)
self.import_thread[idx].start()
def order_by_artist(self, idx: int, track_ids_to_check: list[int]) -> list[int]:
"""