from PyQt5.QtWidgets import QMenuBar, QAction, QFileDialog, QMessageBox from PyQt5.QtGui import QKeySequence class CutsceneMenuBar(QMenuBar): def __init__(self, parent): super().__init__(parent) self.parent = parent fileMenu = self.addMenu("File") self.newAction = QAction("New", self) self.newAction.setShortcut(QKeySequence.New) self.newAction.triggered.connect(self.newFile) fileMenu.addAction(self.newAction) self.openAction = QAction("Open", self) self.openAction.setShortcut(QKeySequence.Open) self.openAction.triggered.connect(self.openFile) fileMenu.addAction(self.openAction) self.saveAction = QAction("Save", self) self.saveAction.setShortcut(QKeySequence.Save) self.saveAction.triggered.connect(self.saveFile) fileMenu.addAction(self.saveAction) self.saveAsAction = QAction("Save As", self) self.saveAsAction.setShortcut(QKeySequence.SaveAs) self.saveAsAction.triggered.connect(self.saveFileAs) fileMenu.addAction(self.saveAsAction) def newFile(self): self.parent.clearCutscene() def openFile(self): path, _ = QFileDialog.getOpenFileName(self.parent, "Open Cutscene File", "", "JSON Files (*.json);;All Files (*)") if not path: return # TODO: Load file contents into timeline self.parent.currentFile = path pass def saveFile(self): if not self.parent.currentFile: self.saveFileAs() return # TODO: Save timeline to self.parent.currentFile pass def saveFileAs(self): path, _ = QFileDialog.getSaveFileName(self.parent, "Save Cutscene File As", "", "JSON Files (*.json);;All Files (*)") if path: self.parent.currentFile = path self.saveFile()