diff --git a/bd_to_avp/gui/main_window.py b/bd_to_avp/gui/main_window.py index 128bee6..1c760e6 100644 --- a/bd_to_avp/gui/main_window.py +++ b/bd_to_avp/gui/main_window.py @@ -52,6 +52,7 @@ def __init__(self) -> None: self.processing_thread.error_occurred.connect(self.handle_processing_error) self.processing_thread.mkv_creation_error.connect(self.handle_mkv_creation_error) self.processing_thread.srt_creation_error.connect(self.handle_srt_creation_error) + self.processing_thread.file_exists_error.connect(self.handle_file_exists_error) self.processing_thread.process_completed.connect(self.finished_processing) def setup_window(self) -> None: @@ -259,6 +260,21 @@ def handle_mkv_creation_error(self, error: MKVCreationError) -> None: self.handle_processing_error(error) + def handle_file_exists_error(self, error: FileExistsError) -> None: + result = QMessageBox.critical( + self, + "File Exists Error", + "Do you want to continue?\n\n" + str(error), + QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.Abort, + ) + + if result == QMessageBox.StandardButton.Yes: + config.overwrite = True + self.start_processing(is_continuing=True) + return + + self.handle_processing_error(error) + def handle_srt_creation_error(self, error: SRTCreationError) -> None: result = QMessageBox.critical( self, diff --git a/bd_to_avp/gui/processing.py b/bd_to_avp/gui/processing.py index 9d0a7d6..2178339 100644 --- a/bd_to_avp/gui/processing.py +++ b/bd_to_avp/gui/processing.py @@ -22,6 +22,7 @@ class ProcessingThread(QThread): error_occurred = Signal(Exception) mkv_creation_error = Signal(MKVCreationError) srt_creation_error = Signal(SRTCreationError) + file_exists_error = Signal(FileExistsError) process_completed = Signal() def __init__(self, main_window: "MainWindow", parent: QWidget | None = None) -> None: @@ -40,6 +41,8 @@ def run(self) -> None: self.mkv_creation_error.emit(error) except SRTCreationError as error: self.srt_creation_error.emit(error) + except FileExistsError as error: + self.file_exists_error.emit(error) except (RuntimeError, ValueError) as error: self.error_occurred.emit(error) finally: