From 16f15db6fdbdf9562d6690012e5688b0d1819f31 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" Date: Tue, 23 Apr 2019 18:38:22 +0200 Subject: [PATCH] Added select all and select paragraph features. --- nw/enum.py | 24 +++++++++++++----------- nw/gui/doceditor.py | 29 +++++++++++++++++++---------- nw/gui/dochighlight.py | 2 +- nw/gui/winmain.py | 17 +++++++++++++++++ 4 files changed, 50 insertions(+), 22 deletions(-) diff --git a/nw/enum.py b/nw/enum.py index 1936151e..e78863d7 100644 --- a/nw/enum.py +++ b/nw/enum.py @@ -57,16 +57,18 @@ class nwItemAction(Enum): class nwDocAction(Enum): - NONE = 0 - UNDO = 1 - REDO = 2 - CUT = 3 - COPY = 4 - PASTE = 5 - BOLD = 6 - ITALIC = 7 - U_LINE = 8 - S_QUOTE = 9 - D_QUOTE = 10 + NONE = 0 + UNDO = 1 + REDO = 2 + CUT = 3 + COPY = 4 + PASTE = 5 + BOLD = 6 + ITALIC = 7 + U_LINE = 8 + S_QUOTE = 9 + D_QUOTE = 10 + SEL_ALL = 11 + SEL_PARA = 12 # END Enum nwDocAction diff --git a/nw/gui/doceditor.py b/nw/gui/doceditor.py index 6e9e6625..2e9f1297 100644 --- a/nw/gui/doceditor.py +++ b/nw/gui/doceditor.py @@ -113,16 +113,18 @@ class GuiDocEditor(QTextEdit): def docAction(self, theAction): logger.verbose("Requesting action: %s" % theAction.name) - if theAction == nwDocAction.UNDO: self.undo() - elif theAction == nwDocAction.REDO: self.redo() - elif theAction == nwDocAction.CUT: self.cut() - elif theAction == nwDocAction.COPY: self.copy() - elif theAction == nwDocAction.PASTE: self.paste() - elif theAction == nwDocAction.BOLD: self._wrapSelection("**","**") - elif theAction == nwDocAction.ITALIC: self._wrapSelection("_","_") - elif theAction == nwDocAction.U_LINE: self._wrapSelection("__","__") - elif theAction == nwDocAction.S_QUOTE: self._wrapSelection(self.typSQOpen,self.typSQClose) - elif theAction == nwDocAction.D_QUOTE: self._wrapSelection(self.typDQOpen,self.typDQClose) + if theAction == nwDocAction.UNDO: self.undo() + elif theAction == nwDocAction.REDO: self.redo() + elif theAction == nwDocAction.CUT: self.cut() + elif theAction == nwDocAction.COPY: self.copy() + elif theAction == nwDocAction.PASTE: self.paste() + elif theAction == nwDocAction.BOLD: self._wrapSelection("**","**") + elif theAction == nwDocAction.ITALIC: self._wrapSelection("_","_") + elif theAction == nwDocAction.U_LINE: self._wrapSelection("__","__") + elif theAction == nwDocAction.S_QUOTE: self._wrapSelection(self.typSQOpen,self.typSQClose) + elif theAction == nwDocAction.D_QUOTE: self._wrapSelection(self.typDQOpen,self.typDQClose) + elif theAction == nwDocAction.SEL_ALL: self._makeSelection(QTextCursor.Document) + elif theAction == nwDocAction.SEL_PARA: self._makeSelection(QTextCursor.BlockUnderCursor) else: logger.error("Unknown or unsupported document action %s" % str(theAction)) return @@ -256,4 +258,11 @@ class GuiDocEditor(QTextEdit): logger.warning("No selection made, nothing to do") return + def _makeSelection(self, selMode): + theCursor = self.textCursor() + theCursor.clearSelection() + theCursor.select(selMode) + self.setTextCursor(theCursor) + return + # END Class GuiDocEditor diff --git a/nw/gui/dochighlight.py b/nw/gui/dochighlight.py index 3943928b..3a931b22 100644 --- a/nw/gui/dochighlight.py +++ b/nw/gui/dochighlight.py @@ -35,7 +35,7 @@ class GuiDocHighlighter(QSyntaxHighlighter): self.colDialD = (184,200, 0,255) self.colDialS = (136,200, 0,255) self.colComm = (150,150,150,255) - self.colKey = (200, 0, 0,255) + self.colKey = (200, 46, 0,255) self.colVal = (184,200, 0,255) self.hStyles = { diff --git a/nw/gui/winmain.py b/nw/gui/winmain.py index 379fade5..af369fb9 100644 --- a/nw/gui/winmain.py +++ b/nw/gui/winmain.py @@ -369,6 +369,23 @@ class GuiMain(QMainWindow): # Edit > Separator editMenu.addSeparator() + # Edit > Select All + menuItem = QAction(QIcon.fromTheme("edit-select-all"), "Select All", menuBar) + menuItem.setStatusTip("Select All Text in Document") + menuItem.setShortcut("Ctrl+A") + menuItem.triggered.connect(lambda: self.docEditor.docAction(nwDocAction.SEL_ALL)) + editMenu.addAction(menuItem) + + # Edit > Select Paragraph + menuItem = QAction(QIcon.fromTheme("edit-select-all"), "Select Paragraph", menuBar) + menuItem.setStatusTip("Select All Text in Paragraph") + menuItem.setShortcut("Ctrl+Shift+A") + menuItem.triggered.connect(lambda: self.docEditor.docAction(nwDocAction.SEL_PARA)) + editMenu.addAction(menuItem) + + # Edit > Separator + editMenu.addSeparator() + # Edit > Settings menuItem = QAction(QIcon.fromTheme("applications-system"), "Program Setting", menuBar) menuItem.setStatusTip("Change %s Settings" % nw.__package__)