diff --git a/forms/format_dlgs.py b/forms/format_dlgs.py --- a/forms/format_dlgs.py +++ b/forms/format_dlgs.py @@ -1,4 +1,5 @@ from PyQt5 import QtWidgets +from PyQt5.QtWidgets import QApplication from floppyemu import format_images from ui import format_dialog, format_one_dialog @@ -21,15 +22,25 @@ class FormatManyDialog(QtWidgets.QDialog def accept(self): try: if self.rb_size_720.isChecked(): - format_images(self.__device, ((self.sb_from.value(), self.sb_to.value() + 1),), self.__temp_path, 720) + size = 720 elif self.rb_size_1440.isChecked(): - format_images(self.__device, ((self.sb_from.value(), self.sb_to.value() + 1),), self.__temp_path, 1440) + size = 1440 else: QtWidgets.QMessageBox.critical( self, 'Error', 'Please choose image size before proceeding' ) return + + self.rb_size_720.setDisabled(True) + self.rb_size_1440.setDisabled(True) + self.sb_from.setDisabled(True) + self.sb_to.setDisabled(True) + self.buttonBox.setDisabled(True) + format_images( + self.__device, ((self.sb_from.value(), self.sb_to.value() + 1),), self.__temp_path, size, + self.__update_progress + ) except PermissionError: QtWidgets.QMessageBox.critical( self, 'Permission error', @@ -40,6 +51,11 @@ class FormatManyDialog(QtWidgets.QDialog super().accept() + def __update_progress(self, indices, index): + self.progressBar.setMaximum(indices[1] - indices[0]) + self.progressBar.setValue(index - indices[0]) + QApplication.instance().processEvents() + class FormatOneDialog(QtWidgets.QDialog, format_one_dialog.Ui_Dialog): def __init__(self, index, device, temp_path, parent=None):