Added more application menu entries.

This commit is contained in:
Veronica K. B. Olsen
2018-10-27 17:11:48 +02:00
parent 08f990ead1
commit c8dab032b9
2 changed files with 152 additions and 42 deletions
+1 -1
View File
@@ -52,7 +52,7 @@ class Config:
self.confChanged = False self.confChanged = False
## General ## General
self.winGeometry = [1600, 980] self.winGeometry = [1100, 650]
# Check if config file exists # Check if config file exists
if path.isfile(path.join(self.confPath,self.confFile)): if path.isfile(path.join(self.confPath,self.confFile)):
+151 -41
View File
@@ -34,7 +34,7 @@ class GuiMain(QMainWindow):
self.mainConf = nw.CONFIG self.mainConf = nw.CONFIG
self.theProject = NWProject() self.theProject = NWProject()
self.resize(1100,650) self.resize(*self.mainConf.winGeometry)
self._setWindowTitle() self._setWindowTitle()
self.setWindowIcon(QIcon(path.join(self.mainConf.appPath,"..","novelWriter.svg"))) self.setWindowIcon(QIcon(path.join(self.mainConf.appPath,"..","novelWriter.svg")))
@@ -127,6 +127,44 @@ class GuiMain(QMainWindow):
# Internal Functions # Internal Functions
# #
def _closeMain(self):
logger.info("Exiting %s" % nw.__package__)
self.mainConf.setWinSize(self.width(), self.height())
self.mainConf.saveConfig()
return
def _setWindowTitle(self, projName=None):
winTitle = "%s [%s]" % (nw.__package__, nw.__version__)
if projName is not None:
winTitle += " - %s" % projName
self.setWindowTitle(winTitle)
return True
#
# Menu Action
#
def _menuExit(self):
self._closeMain()
qApp.quit()
return True
def _showAbout(self):
self.docTabs.createTab(None,nw.DOCTYPE_ABOUT)
return True
#
# Events
#
def closeEvent(self, guiEvent):
self._closeMain()
guiEvent.accept()
#
# GUI Builders
#
def _buildMenu(self): def _buildMenu(self):
menuBar = self.menuBar() menuBar = self.menuBar()
@@ -161,7 +199,7 @@ class GuiMain(QMainWindow):
recentMenu.addAction(menuRecentProject) recentMenu.addAction(menuRecentProject)
itemCount += 1 itemCount += 1
# --------------------- # File > Separator
fileMenu.addSeparator() fileMenu.addSeparator()
# File > Project Settings # File > Project Settings
@@ -170,7 +208,7 @@ class GuiMain(QMainWindow):
menuProjectSettings.triggered.connect(self.editProject) menuProjectSettings.triggered.connect(self.editProject)
fileMenu.addAction(menuProjectSettings) fileMenu.addAction(menuProjectSettings)
# --------------------- # File > Separator
fileMenu.addSeparator() fileMenu.addSeparator()
# File > New # File > New
@@ -192,28 +230,134 @@ class GuiMain(QMainWindow):
menuSave.triggered.connect(self.saveDocument) menuSave.triggered.connect(self.saveDocument)
fileMenu.addAction(menuSave) fileMenu.addAction(menuSave)
# --------------------- # File > Separator
fileMenu.addSeparator() fileMenu.addSeparator()
# File > Exit # File > Exit
menuExit = QAction(QIcon.fromTheme("application-exit"), "&Exit", menuBar) menuExit = QAction(QIcon.fromTheme("application-exit"), "Exit", menuBar)
menuExit.setShortcut("Ctrl+Q") menuExit.setShortcut("Ctrl+Q")
menuExit.setStatusTip("Exit %s" % nw.__package__) menuExit.setStatusTip("Exit %s" % nw.__package__)
menuExit.triggered.connect(self._menuExit) menuExit.triggered.connect(self._menuExit)
fileMenu.addAction(menuExit) fileMenu.addAction(menuExit)
############################################################################################
# Edit
editMenu = menuBar.addMenu("&Edit")
# Edit > Undo
menuUndo = QAction(QIcon.fromTheme("edit-undo"), "Undo", menuBar)
menuUndo.setShortcut("Ctrl+Z")
menuUndo.setStatusTip("Undo Last Change")
editMenu.addAction(menuUndo)
# Edit > Redo
menuRedo = QAction(QIcon.fromTheme("edit-redo"), "Redo", menuBar)
menuRedo.setShortcut("Ctrl+Y")
menuRedo.setStatusTip("Redo Last Change")
editMenu.addAction(menuRedo)
# Edit > Separator
editMenu.addSeparator()
# Edit > Cut
menuCut = QAction(QIcon.fromTheme("edit-cut"), "Cut", menuBar)
menuCut.setShortcut("Ctrl+X")
menuCut.setStatusTip("Cut Selected Text")
editMenu.addAction(menuCut)
# Edit > Copy
menuCopy = QAction(QIcon.fromTheme("edit-copy"), "Copy", menuBar)
menuCopy.setShortcut("Ctrl+C")
menuCopy.setStatusTip("Copy Selected Text")
editMenu.addAction(menuCopy)
# Edit > Paste
menuPaste = QAction(QIcon.fromTheme("edit-paste"), "Paste", menuBar)
menuPaste.setShortcut("Ctrl+V")
menuPaste.setStatusTip("Paste Text from Clipboard")
editMenu.addAction(menuPaste)
# Edit > Paste Plain Text
menuPastePlain = QAction(QIcon.fromTheme("edit-paste"), "Paste Plain Text", menuBar)
menuPastePlain.setShortcut("Ctrl+Shift+V")
menuPastePlain.setStatusTip("Paste Plain Text from Clipboard")
editMenu.addAction(menuPastePlain)
# Edit > Separator
editMenu.addSeparator()
# Edit > Settings
menuSettings = QAction(QIcon.fromTheme("applications-system"), "Program Setting", menuBar)
menuSettings.setStatusTip("Change %s Settings" % nw.__package__)
editMenu.addAction(menuSettings)
############################################################################################
# Format
formatMenu = menuBar.addMenu("&Format")
# Format > Font Style
menuFont = QAction(QIcon.fromTheme("preferences-desktop-font"), "Font Family", menuBar)
menuFont.setStatusTip("Set Font for Selected text")
formatMenu.addAction(menuFont)
# Format > Separator
formatMenu.addSeparator()
# Format > Bold
menuBold = QAction(QIcon.fromTheme("format-text-bold"), "Bold Text", menuBar)
menuBold.setShortcut("Ctrl+B")
menuBold.setStatusTip("Toggle Bold for Selected Text")
formatMenu.addAction(menuBold)
# Format > Italic
menuItalic = QAction(QIcon.fromTheme("format-text-italic"), "Italic Text", menuBar)
menuItalic.setShortcut("Ctrl+I")
menuItalic.setStatusTip("Toggle Italic for Selected Text")
formatMenu.addAction(menuItalic)
# Format > Underline
menuUnderline = QAction(QIcon.fromTheme("format-text-underline"), "Underline Text", menuBar)
menuUnderline.setShortcut("Ctrl+U")
menuUnderline.setStatusTip("Toggle Underline for Selected Text")
formatMenu.addAction(menuUnderline)
# Format > Strikethrough
menuStrikethrough = QAction(QIcon.fromTheme("format-text-strikethrough"), "Strikethrough Text", menuBar)
menuStrikethrough.setShortcut("Ctrl+D")
menuStrikethrough.setStatusTip("Toggle Strikethrough for Selected Text")
formatMenu.addAction(menuStrikethrough)
# Format > Separator
formatMenu.addSeparator()
# Format > Clear
menuClear = QAction(QIcon.fromTheme("edit-clear"), "Clear Formatting", menuBar)
menuClear.setStatusTip("Clear Formatting for Selected Text")
formatMenu.addAction(menuClear)
############################################################################################
# Help # Help
helpMenu = menuBar.addMenu("&Help") helpMenu = menuBar.addMenu("&Help")
# Help > About # Help > About
menuAbout = QAction(QIcon.fromTheme("help-about"), "About", menuBar) menuAbout = QAction(QIcon.fromTheme("help-about"), "About %s" % nw.__package__, menuBar)
menuAbout.setStatusTip("About") menuAbout.setStatusTip("About %s" % nw.__package__)
menuAbout.triggered.connect(self._showAbout) menuAbout.triggered.connect(self._showAbout)
helpMenu.addAction(menuAbout) helpMenu.addAction(menuAbout)
# Help > About Qt5
menuAboutQt5 = QAction(QIcon.fromTheme("help-about"), "About Qt5", menuBar)
menuAboutQt5.setStatusTip("About Qt5")
helpMenu.addAction(menuAboutQt5)
if not self.mainConf.debugGUI: if not self.mainConf.debugGUI:
return return
############################################################################################
# Debug GUI # Debug GUI
debugMenu = menuBar.addMenu("&Debug") debugMenu = menuBar.addMenu("&Debug")
@@ -238,38 +382,4 @@ class GuiMain(QMainWindow):
return return
def _closeMain(self):
logger.info("Exiting %s" % nw.__package__)
self.mainConf.setWinSize(self.frameGeometry().width(), self.frameGeometry().height())
self.mainConf.saveConfig()
return
def _setWindowTitle(self, projName=None):
winTitle = "%s [%s]" % (nw.__package__, nw.__version__)
if projName is not None:
winTitle += " - %s" % projName
self.setWindowTitle(winTitle)
return True
#
# Menu Action
#
def _menuExit(self):
self._closeMain()
qApp.quit()
return True
def _showAbout(self):
self.docTabs.createTab(None,nw.DOCTYPE_ABOUT)
return True
#
# Events
#
def closeEvent(self, guiEvent):
self._closeMain()
guiEvent.accept()
# END Class GuiMain # END Class GuiMain