Fix crash importing files
This commit is contained in:
parent
e23f6e2cc8
commit
85cfebe0f7
@ -175,6 +175,8 @@ class FileImporter:
|
|||||||
self.unimportable_files: list[FileErrors] = []
|
self.unimportable_files: list[FileErrors] = []
|
||||||
# Files user doesn't want imported
|
# Files user doesn't want imported
|
||||||
self.do_not_import: list[str] = []
|
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:
|
def do_import(self) -> None:
|
||||||
"""
|
"""
|
||||||
@ -223,7 +225,10 @@ class FileImporter:
|
|||||||
self.import_files_data = [
|
self.import_files_data = [
|
||||||
x
|
x
|
||||||
for x in self.import_files_data
|
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.
|
# Import all that's left.
|
||||||
@ -253,9 +258,9 @@ class FileImporter:
|
|||||||
)
|
)
|
||||||
|
|
||||||
if matching_track < 0: # User cancelled
|
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(
|
self.import_files_data[idx].destination_track_path = os.path.join(
|
||||||
Config.IMPORT_DESTINATION,
|
Config.IMPORT_DESTINATION,
|
||||||
os.path.basename(self.import_files_data[idx].import_file_path),
|
os.path.basename(self.import_files_data[idx].import_file_path),
|
||||||
@ -277,7 +282,7 @@ class FileImporter:
|
|||||||
f = self.import_files_data[idx]
|
f = self.import_files_data[idx]
|
||||||
|
|
||||||
# Import in separate thread
|
# Import in separate thread
|
||||||
self.import_thread = QThread()
|
self.import_thread[idx] = QThread()
|
||||||
self.worker = DoTrackImport(
|
self.worker = DoTrackImport(
|
||||||
import_file_path=f.import_file_path,
|
import_file_path=f.import_file_path,
|
||||||
tags=f.tags,
|
tags=f.tags,
|
||||||
@ -288,12 +293,12 @@ class FileImporter:
|
|||||||
row_number=self.row_number,
|
row_number=self.row_number,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.worker.moveToThread(self.import_thread)
|
self.worker.moveToThread(self.import_thread[idx])
|
||||||
self.import_thread.started.connect(self.worker.run)
|
self.import_thread[idx].started.connect(self.worker.run)
|
||||||
self.worker.import_finished.connect(self.import_thread.quit)
|
self.worker.import_finished.connect(self.import_thread[idx].quit)
|
||||||
self.worker.import_finished.connect(self.worker.deleteLater)
|
self.worker.import_finished.connect(self.worker.deleteLater)
|
||||||
self.import_thread.finished.connect(self.import_thread.deleteLater)
|
self.import_thread[idx].finished.connect(self.import_thread[idx].deleteLater)
|
||||||
self.import_thread.start()
|
self.import_thread[idx].start()
|
||||||
|
|
||||||
def order_by_artist(self, idx: int, track_ids_to_check: list[int]) -> list[int]:
|
def order_by_artist(self, idx: int, track_ids_to_check: list[int]) -> list[int]:
|
||||||
"""
|
"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user