import os from PyQt5.QtWidgets import QAction, QMenuBar, QFileDialog from PyQt5.QtGui import QKeySequence from editortool.map.map import MAP_DEFAULT_PATH class MapMenubar: def __init__(self, parent): self.parent = parent self.menubar = QMenuBar(parent) parent.setMenuBar(self.menubar) self.fileMenu = self.menubar.addMenu("File") self.actionNew = QAction("New", parent) self.actionOpen = QAction("Open", parent) self.actionSave = QAction("Save", parent) self.actionSaveAs = QAction("Save As", parent) self.actionNew.setShortcut(QKeySequence("Ctrl+N")) self.actionOpen.setShortcut(QKeySequence("Ctrl+O")) self.actionSave.setShortcut(QKeySequence("Ctrl+S")) self.actionSaveAs.setShortcut(QKeySequence("Ctrl+Shift+S")) self.actionNew.triggered.connect(self.newFile) self.actionOpen.triggered.connect(self.openFile) self.actionSave.triggered.connect(self.saveFile) self.actionSaveAs.triggered.connect(self.saveAsFile) self.fileMenu.addAction(self.actionNew) self.fileMenu.addAction(self.actionOpen) self.fileMenu.addAction(self.actionSave) self.fileMenu.addAction(self.actionSaveAs) def newFile(self): self.parent.map.newFile() def openFile(self): filePath, _ = QFileDialog.getOpenFileName(self.menubar, "Open Map File", MAP_DEFAULT_PATH, "Map Files (*.json)") if filePath: self.parent.map.load(filePath) def saveFile(self): self.parent.map.save() def saveAsFile(self): filePath, _ = QFileDialog.getSaveFileName(self.menubar, "Save Map File As", MAP_DEFAULT_PATH, "Map Files (*.json)") if filePath: self.parent.map.save(filePath)