diff options
| author | tassaron | 2022-05-06 00:29:31 -0400 |
|---|---|---|
| committer | tassaron | 2022-05-06 00:29:31 -0400 |
| commit | 4801ef2919db7c4bd88c3f7ee784f50977d25b89 (patch) | |
| tree | c4a82a765a03fd41b8a82b29e6a35d8449f67eb3 /src/gui | |
| parent | d211151b05a1ca54e0a49a3b8618b7ab24655ede (diff) | |
disable undo/redo while video is exporting
Diffstat (limited to 'src/gui')
| -rw-r--r-- | src/gui/mainwindow.py | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/gui/mainwindow.py b/src/gui/mainwindow.py index c2e2c83..b526c07 100644 --- a/src/gui/mainwindow.py +++ b/src/gui/mainwindow.py @@ -78,6 +78,9 @@ class MainWindow(QtWidgets.QMainWindow): self.undoStack = QtWidgets.QUndoStack(self) undoLimit = self.settings.value("pref_undoLimit") self.undoStack.setUndoLimit(undoLimit) + self.undoStack.undo = disableWhenEncoding(self.undoStack.undo) + self.undoStack.redo = disableWhenEncoding(self.undoStack.redo) + self.undoDialog = None # Create Preset Manager self.presetManager = PresetManager(self) @@ -684,6 +687,7 @@ class MainWindow(QtWidgets.QMainWindow): def changeEncodingStatus(self, status): self.encoding = status if status: + # Disable many widgets when starting to export self.pushButton_createVideo.setEnabled(False) self.pushButton_Cancel.setEnabled(True) self.comboBox_resolution.setEnabled(False) @@ -695,16 +699,21 @@ class MainWindow(QtWidgets.QMainWindow): self.toolButton_selectOutputFile.setEnabled(False) self.lineEdit_audioFile.setEnabled(False) self.lineEdit_outputFile.setEnabled(False) + self.listWidget_componentList.setEnabled(False) self.pushButton_addComponent.setEnabled(False) self.pushButton_removeComponent.setEnabled(False) self.pushButton_listMoveDown.setEnabled(False) self.pushButton_listMoveUp.setEnabled(False) + self.pushButton_undo.setEnabled(False) self.menuButton_newProject.setEnabled(False) self.menuButton_openProject.setEnabled(False) + # Close undo history if open + if self.undoDialog is not None: + self.undoDialog.close() + self.undoDialog = None + # Show label under progress bar on macOS if sys.platform == 'darwin': self.progressLabel.setHidden(False) - else: - self.listWidget_componentList.setEnabled(False) else: self.pushButton_createVideo.setEnabled(True) self.pushButton_Cancel.setEnabled(False) @@ -721,6 +730,7 @@ class MainWindow(QtWidgets.QMainWindow): self.pushButton_removeComponent.setEnabled(True) self.pushButton_listMoveDown.setEnabled(True) self.pushButton_listMoveUp.setEnabled(True) + self.pushButton_undo.setEnabled(True) self.menuButton_newProject.setEnabled(True) self.menuButton_openProject.setEnabled(True) self.listWidget_componentList.setEnabled(True) @@ -763,13 +773,19 @@ class MainWindow(QtWidgets.QMainWindow): def showPreviewImage(self, image): self.previewWindow.changePixmap(image) + @disableWhenEncoding def showUndoStack(self): - dialog = QtWidgets.QDialog(self) + self.undoDialog = QtWidgets.QDialog(self) + def closeUndoDialog(self, *args): + self.undoDialog = None + super().closeEvent(*args) + self.undoDialog.closeEvent = closeUndoDialog + # Add standard QUndoView to standard QDialog undoView = QtWidgets.QUndoView(self.undoStack) layout = QtWidgets.QVBoxLayout() layout.addWidget(undoView) - dialog.setLayout(layout) - dialog.show() + self.undoDialog.setLayout(layout) + self.undoDialog.show() def showFfmpegCommand(self): from textwrap import wrap |
