46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
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) |