Change main menu to emit signals
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="m1.9519 3.0221-0.16749 0.58257h1.2161l-0.16749-0.58257q-0.11651-0.37867-0.22575-0.77919-0.10195-0.40052-0.2039-0.79375h-0.029128q-0.10195 0.40052-0.2039 0.80103-0.10195 0.39323-0.21846 0.7719zm-1.5948 2.5342 1.5511-4.7625h0.99037l1.5511 4.7625h-0.88842l-0.37139-1.2889h-1.6021l-0.37139 1.2889z" fill-opacity=".78039" stroke-opacity=".78039" stroke-width=".54616"/>
|
||||||
|
<path d="m4.4491 5.5562v-2.1167h0.67643q0.16506 0 0.30099 0.029128 0.13917 0.025892 0.2395 0.087385 0.10357 0.058257 0.15859 0.15859 0.058257 0.10033 0.058257 0.24597 0 0.15212-0.077675 0.28157-0.077675 0.12946-0.21684 0.17801v0.012947q0.17477 0.038837 0.28805 0.16506 0.11651 0.12299 0.11651 0.3366 0 0.15859-0.061493 0.2751-0.061493 0.11651-0.17153 0.19419-0.10681 0.077675-0.25568 0.11651-0.14888 0.035601-0.32365 0.035601zm0.37543-1.2428h0.26863q0.22332 0 0.32041-0.080912 0.10033-0.080912 0.10033-0.21684 0-0.15535-0.10357-0.22008-0.10357-0.064729-0.3107-0.064729h-0.2751zm0 0.95153h0.31718q0.23303 0 0.35925-0.084149 0.12622-0.087385 0.12622-0.26539 0-0.1683-0.12299-0.24274-0.12299-0.077676-0.36249-0.077676h-0.31718z" fill-opacity=".78039" stroke-opacity=".78039" stroke-width=".24274"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="m2.1082 3.0221-0.16749 0.58257h1.2161l-0.16749-0.58257q-0.11651-0.37867-0.22575-0.77919-0.10195-0.40052-0.2039-0.79375h-0.029128q-0.10195 0.40052-0.2039 0.80103-0.10195 0.39323-0.21846 0.7719zm-1.5948 2.5342 1.5511-4.7625h0.99037l1.5511 4.7625h-0.88842l-0.37139-1.2889h-1.6021l-0.37139 1.2889z" fill-opacity=".78039" stroke-opacity=".78039" stroke-width=".54616"/>
|
||||||
|
<path d="m4.2928 2.9104v-2.1167h0.67642q0.16507 0 0.301 0.029128 0.13917 0.025892 0.2395 0.087385 0.10357 0.058257 0.15859 0.15859 0.058257 0.10033 0.058257 0.24597 0 0.15212-0.077674 0.28157-0.077674 0.12946-0.21684 0.17801v0.012947q0.17477 0.038837 0.28805 0.16507 0.11651 0.12299 0.11651 0.3366 0 0.15859-0.061493 0.2751-0.061493 0.11651-0.17153 0.19418-0.1068 0.077674-0.25568 0.11651-0.14888 0.035601-0.32365 0.035601zm0.37544-1.2428h0.26862q0.22332 0 0.32041-0.080912 0.10033-0.080911 0.10033-0.21684 0-0.15535-0.10357-0.22008-0.10357-0.064728-0.3107-0.064728h-0.2751zm0 0.95153h0.31717q0.23303 0 0.35925-0.084149 0.12622-0.087385 0.12622-0.26538 0-0.16829-0.12299-0.24273-0.12299-0.077675-0.36249-0.077675h-0.31717z" fill-opacity=".78039" stroke-opacity=".78039" stroke-width=".24273"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
+18
-12
@@ -178,9 +178,11 @@ class Config:
|
|||||||
self.spellLanguage = "en"
|
self.spellLanguage = "en"
|
||||||
|
|
||||||
# State
|
# State
|
||||||
self.showRefPanel = True # The reference panel for the viewer is visible
|
self.showRefPanel = True # The reference panel for the viewer is visible
|
||||||
self.viewComments = True # Comments are shown in the viewer
|
self.showEditToolBar = False # The document editor toolbar visibility
|
||||||
self.viewSynopsis = True # Synopsis is shown in the viewer
|
self.useShortcodes = False # Use shorcodes for basic formatting
|
||||||
|
self.viewComments = True # Comments are shown in the viewer
|
||||||
|
self.viewSynopsis = True # Synopsis is shown in the viewer
|
||||||
|
|
||||||
# Search Bar Switches
|
# Search Bar Switches
|
||||||
self.searchCase = False
|
self.searchCase = False
|
||||||
@@ -598,15 +600,17 @@ class Config:
|
|||||||
|
|
||||||
# State
|
# State
|
||||||
sec = "State"
|
sec = "State"
|
||||||
self.showRefPanel = conf.rdBool(sec, "showrefpanel", self.showRefPanel)
|
self.showRefPanel = conf.rdBool(sec, "showrefpanel", self.showRefPanel)
|
||||||
self.viewComments = conf.rdBool(sec, "viewcomments", self.viewComments)
|
self.showEditToolBar = conf.rdBool(sec, "showedittoolbar", self.showEditToolBar)
|
||||||
self.viewSynopsis = conf.rdBool(sec, "viewsynopsis", self.viewSynopsis)
|
self.useShortcodes = conf.rdBool(sec, "useshortcodes", self.useShortcodes)
|
||||||
self.searchCase = conf.rdBool(sec, "searchcase", self.searchCase)
|
self.viewComments = conf.rdBool(sec, "viewcomments", self.viewComments)
|
||||||
self.searchWord = conf.rdBool(sec, "searchword", self.searchWord)
|
self.viewSynopsis = conf.rdBool(sec, "viewsynopsis", self.viewSynopsis)
|
||||||
self.searchRegEx = conf.rdBool(sec, "searchregex", self.searchRegEx)
|
self.searchCase = conf.rdBool(sec, "searchcase", self.searchCase)
|
||||||
self.searchLoop = conf.rdBool(sec, "searchloop", self.searchLoop)
|
self.searchWord = conf.rdBool(sec, "searchword", self.searchWord)
|
||||||
self.searchNextFile = conf.rdBool(sec, "searchnextfile", self.searchNextFile)
|
self.searchRegEx = conf.rdBool(sec, "searchregex", self.searchRegEx)
|
||||||
self.searchMatchCap = conf.rdBool(sec, "searchmatchcap", self.searchMatchCap)
|
self.searchLoop = conf.rdBool(sec, "searchloop", self.searchLoop)
|
||||||
|
self.searchNextFile = conf.rdBool(sec, "searchnextfile", self.searchNextFile)
|
||||||
|
self.searchMatchCap = conf.rdBool(sec, "searchmatchcap", self.searchMatchCap)
|
||||||
|
|
||||||
# Deprecated Settings or Locations as of 2.0
|
# Deprecated Settings or Locations as of 2.0
|
||||||
# ToDo: These will be loaded for a few minor releases until the users have converted them
|
# ToDo: These will be loaded for a few minor releases until the users have converted them
|
||||||
@@ -721,6 +725,8 @@ class Config:
|
|||||||
|
|
||||||
conf["State"] = {
|
conf["State"] = {
|
||||||
"showrefpanel": str(self.showRefPanel),
|
"showrefpanel": str(self.showRefPanel),
|
||||||
|
"showedittoolbar": str(self.showEditToolBar),
|
||||||
|
"useshortcodes": str(self.useShortcodes),
|
||||||
"viewcomments": str(self.viewComments),
|
"viewcomments": str(self.viewComments),
|
||||||
"viewsynopsis": str(self.viewSynopsis),
|
"viewsynopsis": str(self.viewSynopsis),
|
||||||
"searchcase": str(self.searchCase),
|
"searchcase": str(self.searchCase),
|
||||||
|
|||||||
@@ -138,9 +138,12 @@ class GuiDocEditor(QPlainTextEdit):
|
|||||||
self.docFooter = GuiDocEditFooter(self)
|
self.docFooter = GuiDocEditFooter(self)
|
||||||
self.docSearch = GuiDocEditSearch(self)
|
self.docSearch = GuiDocEditSearch(self)
|
||||||
self.docToolBar = GuiDocToolBar(self)
|
self.docToolBar = GuiDocToolBar(self)
|
||||||
|
self.docToolBar.setVisible(CONFIG.showEditToolBar)
|
||||||
|
|
||||||
# Connect Signals
|
# Connect Signals
|
||||||
self.docHeader.closeDocumentRequest.connect(self._closeCurrentDocument)
|
self.docHeader.closeDocumentRequest.connect(self._closeCurrentDocument)
|
||||||
|
self.docHeader.toggleToolBarRequest.connect(self._toggleToolBarVisibility)
|
||||||
|
self.docToolBar.requestDocAction.connect(self.docAction)
|
||||||
|
|
||||||
# Context Menu
|
# Context Menu
|
||||||
self.setContextMenuPolicy(Qt.CustomContextMenu)
|
self.setContextMenuPolicy(Qt.CustomContextMenu)
|
||||||
@@ -849,31 +852,11 @@ class GuiDocEditor(QPlainTextEdit):
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def insertKeyWord(self, keyword: str) -> bool:
|
|
||||||
"""Insert a keyword in the text editor, at the cursor position.
|
|
||||||
If the insert line is not blank, a new line is started.
|
|
||||||
"""
|
|
||||||
if keyword not in nwKeyWords.VALID_KEYS:
|
|
||||||
logger.error("Invalid keyword '%s'", keyword)
|
|
||||||
return False
|
|
||||||
logger.debug("Inserting keyword '%s'", keyword)
|
|
||||||
state = self.insertNewBlock("%s: " % keyword)
|
|
||||||
return state
|
|
||||||
|
|
||||||
def closeSearch(self) -> bool:
|
def closeSearch(self) -> bool:
|
||||||
"""Close the search box."""
|
"""Close the search box."""
|
||||||
self.docSearch.closeSearch()
|
self.docSearch.closeSearch()
|
||||||
return self.docSearch.isVisible()
|
return self.docSearch.isVisible()
|
||||||
|
|
||||||
@pyqtSlot()
|
|
||||||
def toggleSearch(self) -> None:
|
|
||||||
"""Toggle the visibility of the search box."""
|
|
||||||
if self.docSearch.isVisible():
|
|
||||||
self.docSearch.closeSearch()
|
|
||||||
else:
|
|
||||||
self.beginSearch()
|
|
||||||
return
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Document Events and Maintenance
|
# Document Events and Maintenance
|
||||||
##
|
##
|
||||||
@@ -968,6 +951,27 @@ class GuiDocEditor(QPlainTextEdit):
|
|||||||
self.updateDocMargins()
|
self.updateDocMargins()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@pyqtSlot(str)
|
||||||
|
def insertKeyWord(self, keyword: str) -> bool:
|
||||||
|
"""Insert a keyword in the text editor, at the cursor position.
|
||||||
|
If the insert line is not blank, a new line is started.
|
||||||
|
"""
|
||||||
|
if keyword not in nwKeyWords.VALID_KEYS:
|
||||||
|
logger.error("Invalid keyword '%s'", keyword)
|
||||||
|
return False
|
||||||
|
logger.debug("Inserting keyword '%s'", keyword)
|
||||||
|
state = self.insertNewBlock("%s: " % keyword)
|
||||||
|
return state
|
||||||
|
|
||||||
|
@pyqtSlot()
|
||||||
|
def toggleSearch(self) -> None:
|
||||||
|
"""Toggle the visibility of the search box."""
|
||||||
|
if self.docSearch.isVisible():
|
||||||
|
self.docSearch.closeSearch()
|
||||||
|
else:
|
||||||
|
self.beginSearch()
|
||||||
|
return
|
||||||
|
|
||||||
##
|
##
|
||||||
# Private Slots
|
# Private Slots
|
||||||
##
|
##
|
||||||
@@ -1194,6 +1198,14 @@ class GuiDocEditor(QPlainTextEdit):
|
|||||||
self.closeDocumentRequest.emit()
|
self.closeDocumentRequest.emit()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@pyqtSlot()
|
||||||
|
def _toggleToolBarVisibility(self) -> None:
|
||||||
|
"""Toggle the visibility of the tool bar."""
|
||||||
|
state = not self.docToolBar.isVisible()
|
||||||
|
self.docToolBar.setVisible(state)
|
||||||
|
CONFIG.showEditToolBar = state
|
||||||
|
return
|
||||||
|
|
||||||
##
|
##
|
||||||
# Search & Replace
|
# Search & Replace
|
||||||
##
|
##
|
||||||
@@ -2094,6 +2106,8 @@ class BackgroundWordCounterSignals(QObject):
|
|||||||
|
|
||||||
class GuiDocToolBar(QWidget):
|
class GuiDocToolBar(QWidget):
|
||||||
|
|
||||||
|
requestDocAction = pyqtSignal(nwDocAction)
|
||||||
|
|
||||||
def __init__(self, docEditor: GuiDocEditor) -> None:
|
def __init__(self, docEditor: GuiDocEditor) -> None:
|
||||||
super().__init__(parent=docEditor)
|
super().__init__(parent=docEditor)
|
||||||
|
|
||||||
@@ -2108,26 +2122,41 @@ class GuiDocToolBar(QWidget):
|
|||||||
# ===============
|
# ===============
|
||||||
|
|
||||||
self.tbMode = QToolButton(self)
|
self.tbMode = QToolButton(self)
|
||||||
|
self.tbMode.setToolTip(self.tr("Toggle Markdown or Shortcodes Mode"))
|
||||||
self.tbMode.setIconSize(iconSize)
|
self.tbMode.setIconSize(iconSize)
|
||||||
self.tbMode.setCheckable(True)
|
self.tbMode.setCheckable(True)
|
||||||
|
self.tbMode.setChecked(CONFIG.useShortcodes)
|
||||||
|
self.tbMode.toggled.connect(self._toggleFormatMode)
|
||||||
|
|
||||||
self.tbBold = QToolButton(self)
|
self.tbBold = QToolButton(self)
|
||||||
self.tbBold.setIconSize(iconSize)
|
self.tbBold.setIconSize(iconSize)
|
||||||
|
self.tbBold.clicked.connect(self._formatBold)
|
||||||
|
|
||||||
self.tbItalic = QToolButton(self)
|
self.tbItalic = QToolButton(self)
|
||||||
self.tbItalic.setIconSize(iconSize)
|
self.tbItalic.setIconSize(iconSize)
|
||||||
|
self.tbItalic.clicked.connect(self._formatItalic)
|
||||||
|
|
||||||
self.tbStrike = QToolButton(self)
|
self.tbStrike = QToolButton(self)
|
||||||
self.tbStrike.setIconSize(iconSize)
|
self.tbStrike.setIconSize(iconSize)
|
||||||
|
self.tbStrike.clicked.connect(self._formatStrike)
|
||||||
|
|
||||||
self.tbUnderline = QToolButton(self)
|
self.tbUnderline = QToolButton(self)
|
||||||
self.tbUnderline.setIconSize(iconSize)
|
self.tbUnderline.setIconSize(iconSize)
|
||||||
|
self.tbUnderline.clicked.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.SC_ULINE)
|
||||||
|
)
|
||||||
|
|
||||||
self.tbSuperscript = QToolButton(self)
|
self.tbSuperscript = QToolButton(self)
|
||||||
self.tbSuperscript.setIconSize(iconSize)
|
self.tbSuperscript.setIconSize(iconSize)
|
||||||
|
self.tbSuperscript.clicked.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.SC_SUP)
|
||||||
|
)
|
||||||
|
|
||||||
self.tbSubscript = QToolButton(self)
|
self.tbSubscript = QToolButton(self)
|
||||||
self.tbSubscript.setIconSize(iconSize)
|
self.tbSubscript.setIconSize(iconSize)
|
||||||
|
self.tbSubscript.clicked.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.SC_SUB)
|
||||||
|
)
|
||||||
|
|
||||||
# Assemble
|
# Assemble
|
||||||
# ========
|
# ========
|
||||||
@@ -2156,7 +2185,6 @@ class GuiDocToolBar(QWidget):
|
|||||||
palette.setColor(QPalette.Window, QColor(*SHARED.theme.colBack))
|
palette.setColor(QPalette.Window, QColor(*SHARED.theme.colBack))
|
||||||
palette.setColor(QPalette.WindowText, QColor(*SHARED.theme.colText))
|
palette.setColor(QPalette.WindowText, QColor(*SHARED.theme.colText))
|
||||||
palette.setColor(QPalette.Text, QColor(*SHARED.theme.colText))
|
palette.setColor(QPalette.Text, QColor(*SHARED.theme.colText))
|
||||||
|
|
||||||
self.setPalette(palette)
|
self.setPalette(palette)
|
||||||
|
|
||||||
# qPalette = self.palette()
|
# qPalette = self.palette()
|
||||||
@@ -2182,6 +2210,40 @@ class GuiDocToolBar(QWidget):
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
##
|
||||||
|
# Internal Slots
|
||||||
|
##
|
||||||
|
|
||||||
|
@pyqtSlot(bool)
|
||||||
|
def _toggleFormatMode(self, checked: bool) -> None:
|
||||||
|
"""Toggle the formatting mode."""
|
||||||
|
CONFIG.useShortcodes = checked
|
||||||
|
return
|
||||||
|
|
||||||
|
@pyqtSlot()
|
||||||
|
def _formatBold(self):
|
||||||
|
"""Call the bold format action."""
|
||||||
|
self.requestDocAction.emit(
|
||||||
|
nwDocAction.SC_BOLD if self.tbMode.isChecked() else nwDocAction.STRONG
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
|
@pyqtSlot()
|
||||||
|
def _formatItalic(self):
|
||||||
|
"""Call the italic format action."""
|
||||||
|
self.requestDocAction.emit(
|
||||||
|
nwDocAction.SC_ITALIC if self.tbMode.isChecked() else nwDocAction.EMPH
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
|
@pyqtSlot()
|
||||||
|
def _formatStrike(self):
|
||||||
|
"""Call the strikethrough format action."""
|
||||||
|
self.requestDocAction.emit(
|
||||||
|
nwDocAction.SC_STRIKE if self.tbMode.isChecked() else nwDocAction.STRIKE
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
# END Class GuiDocToolBar
|
# END Class GuiDocToolBar
|
||||||
|
|
||||||
|
|
||||||
@@ -2600,8 +2662,8 @@ class GuiDocEditSearch(QFrame):
|
|||||||
|
|
||||||
class GuiDocEditHeader(QWidget):
|
class GuiDocEditHeader(QWidget):
|
||||||
|
|
||||||
toggleToolBarRequest = pyqtSignal()
|
|
||||||
closeDocumentRequest = pyqtSignal()
|
closeDocumentRequest = pyqtSignal()
|
||||||
|
toggleToolBarRequest = pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, docEditor: GuiDocEditor) -> None:
|
def __init__(self, docEditor: GuiDocEditor) -> None:
|
||||||
super().__init__(parent=docEditor)
|
super().__init__(parent=docEditor)
|
||||||
|
|||||||
+182
-74
@@ -30,7 +30,7 @@ from pathlib import Path
|
|||||||
from urllib.parse import urljoin
|
from urllib.parse import urljoin
|
||||||
from urllib.request import pathname2url
|
from urllib.request import pathname2url
|
||||||
|
|
||||||
from PyQt5.QtCore import QUrl, pyqtSlot
|
from PyQt5.QtCore import QUrl, pyqtSignal, pyqtSlot
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt5.QtGui import QDesktopServices
|
||||||
from PyQt5.QtWidgets import QMenuBar, QAction
|
from PyQt5.QtWidgets import QMenuBar, QAction
|
||||||
|
|
||||||
@@ -50,6 +50,11 @@ class GuiMainMenu(QMenuBar):
|
|||||||
add them from this class.
|
add them from this class.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
requestDocAction = pyqtSignal(nwDocAction)
|
||||||
|
requestDocInsert = pyqtSignal(nwDocInsert)
|
||||||
|
requestDocInsertText = pyqtSignal(str)
|
||||||
|
requestDocKeyWordInsert = pyqtSignal(str)
|
||||||
|
|
||||||
def __init__(self, mainGui: GuiMain) -> None:
|
def __init__(self, mainGui: GuiMain) -> None:
|
||||||
super().__init__(parent=mainGui)
|
super().__init__(parent=mainGui)
|
||||||
|
|
||||||
@@ -68,11 +73,6 @@ class GuiMainMenu(QMenuBar):
|
|||||||
self._buildToolsMenu()
|
self._buildToolsMenu()
|
||||||
self._buildHelpMenu()
|
self._buildHelpMenu()
|
||||||
|
|
||||||
# Function Pointers
|
|
||||||
self._docAction = self.mainGui.passDocumentAction
|
|
||||||
self._docInsert = self.mainGui.docEditor.insertText
|
|
||||||
self._insertKeyWord = self.mainGui.docEditor.insertKeyWord
|
|
||||||
|
|
||||||
logger.debug("Ready: GuiMainMenu")
|
logger.debug("Ready: GuiMainMenu")
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -246,12 +246,12 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Edit > Undo
|
# Edit > Undo
|
||||||
self.aEditUndo = self.editMenu.addAction(self.tr("Undo"))
|
self.aEditUndo = self.editMenu.addAction(self.tr("Undo"))
|
||||||
self.aEditUndo.setShortcut("Ctrl+Z")
|
self.aEditUndo.setShortcut("Ctrl+Z")
|
||||||
self.aEditUndo.triggered.connect(lambda: self._docAction(nwDocAction.UNDO))
|
self.aEditUndo.triggered.connect(lambda: self.requestDocAction.emit(nwDocAction.UNDO))
|
||||||
|
|
||||||
# Edit > Redo
|
# Edit > Redo
|
||||||
self.aEditRedo = self.editMenu.addAction(self.tr("Redo"))
|
self.aEditRedo = self.editMenu.addAction(self.tr("Redo"))
|
||||||
self.aEditRedo.setShortcut("Ctrl+Y")
|
self.aEditRedo.setShortcut("Ctrl+Y")
|
||||||
self.aEditRedo.triggered.connect(lambda: self._docAction(nwDocAction.REDO))
|
self.aEditRedo.triggered.connect(lambda: self.requestDocAction.emit(nwDocAction.REDO))
|
||||||
|
|
||||||
# Edit > Separator
|
# Edit > Separator
|
||||||
self.editMenu.addSeparator()
|
self.editMenu.addSeparator()
|
||||||
@@ -259,17 +259,17 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Edit > Cut
|
# Edit > Cut
|
||||||
self.aEditCut = self.editMenu.addAction(self.tr("Cut"))
|
self.aEditCut = self.editMenu.addAction(self.tr("Cut"))
|
||||||
self.aEditCut.setShortcut("Ctrl+X")
|
self.aEditCut.setShortcut("Ctrl+X")
|
||||||
self.aEditCut.triggered.connect(lambda: self._docAction(nwDocAction.CUT))
|
self.aEditCut.triggered.connect(lambda: self.requestDocAction.emit(nwDocAction.CUT))
|
||||||
|
|
||||||
# Edit > Copy
|
# Edit > Copy
|
||||||
self.aEditCopy = self.editMenu.addAction(self.tr("Copy"))
|
self.aEditCopy = self.editMenu.addAction(self.tr("Copy"))
|
||||||
self.aEditCopy.setShortcut("Ctrl+C")
|
self.aEditCopy.setShortcut("Ctrl+C")
|
||||||
self.aEditCopy.triggered.connect(lambda: self._docAction(nwDocAction.COPY))
|
self.aEditCopy.triggered.connect(lambda: self.requestDocAction.emit(nwDocAction.COPY))
|
||||||
|
|
||||||
# Edit > Paste
|
# Edit > Paste
|
||||||
self.aEditPaste = self.editMenu.addAction(self.tr("Paste"))
|
self.aEditPaste = self.editMenu.addAction(self.tr("Paste"))
|
||||||
self.aEditPaste.setShortcut("Ctrl+V")
|
self.aEditPaste.setShortcut("Ctrl+V")
|
||||||
self.aEditPaste.triggered.connect(lambda: self._docAction(nwDocAction.PASTE))
|
self.aEditPaste.triggered.connect(lambda: self.requestDocAction.emit(nwDocAction.PASTE))
|
||||||
|
|
||||||
# Edit > Separator
|
# Edit > Separator
|
||||||
self.editMenu.addSeparator()
|
self.editMenu.addSeparator()
|
||||||
@@ -277,12 +277,12 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Edit > Select All
|
# Edit > Select All
|
||||||
self.aSelectAll = self.editMenu.addAction(self.tr("Select All"))
|
self.aSelectAll = self.editMenu.addAction(self.tr("Select All"))
|
||||||
self.aSelectAll.setShortcut("Ctrl+A")
|
self.aSelectAll.setShortcut("Ctrl+A")
|
||||||
self.aSelectAll.triggered.connect(lambda: self._docAction(nwDocAction.SEL_ALL))
|
self.aSelectAll.triggered.connect(lambda: self.requestDocAction.emit(nwDocAction.SEL_ALL))
|
||||||
|
|
||||||
# Edit > Select Paragraph
|
# Edit > Select Paragraph
|
||||||
self.aSelectPar = self.editMenu.addAction(self.tr("Select Paragraph"))
|
self.aSelectPar = self.editMenu.addAction(self.tr("Select Paragraph"))
|
||||||
self.aSelectPar.setShortcut("Ctrl+Shift+A")
|
self.aSelectPar.setShortcut("Ctrl+Shift+A")
|
||||||
self.aSelectPar.triggered.connect(lambda: self._docAction(nwDocAction.SEL_PARA))
|
self.aSelectPar.triggered.connect(lambda: self.requestDocAction.emit(nwDocAction.SEL_PARA))
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -350,22 +350,30 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Insert > Short Dash
|
# Insert > Short Dash
|
||||||
self.aInsENDash = self.mInsDashes.addAction(self.tr("Short Dash"))
|
self.aInsENDash = self.mInsDashes.addAction(self.tr("Short Dash"))
|
||||||
self.aInsENDash.setShortcut("Ctrl+K, -")
|
self.aInsENDash.setShortcut("Ctrl+K, -")
|
||||||
self.aInsENDash.triggered.connect(lambda: self._docInsert(nwUnicode.U_ENDASH))
|
self.aInsENDash.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_ENDASH)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Long Dash
|
# Insert > Long Dash
|
||||||
self.aInsEMDash = self.mInsDashes.addAction(self.tr("Long Dash"))
|
self.aInsEMDash = self.mInsDashes.addAction(self.tr("Long Dash"))
|
||||||
self.aInsEMDash.setShortcut("Ctrl+K, _")
|
self.aInsEMDash.setShortcut("Ctrl+K, _")
|
||||||
self.aInsEMDash.triggered.connect(lambda: self._docInsert(nwUnicode.U_EMDASH))
|
self.aInsEMDash.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_EMDASH)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Long Dash
|
# Insert > Long Dash
|
||||||
self.aInsHorBar = self.mInsDashes.addAction(self.tr("Horizontal Bar"))
|
self.aInsHorBar = self.mInsDashes.addAction(self.tr("Horizontal Bar"))
|
||||||
self.aInsHorBar.setShortcut("Ctrl+K, Ctrl+_")
|
self.aInsHorBar.setShortcut("Ctrl+K, Ctrl+_")
|
||||||
self.aInsHorBar.triggered.connect(lambda: self._docInsert(nwUnicode.U_HBAR))
|
self.aInsHorBar.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_HBAR)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Figure Dash
|
# Insert > Figure Dash
|
||||||
self.aInsFigDash = self.mInsDashes.addAction(self.tr("Figure Dash"))
|
self.aInsFigDash = self.mInsDashes.addAction(self.tr("Figure Dash"))
|
||||||
self.aInsFigDash.setShortcut("Ctrl+K, ~")
|
self.aInsFigDash.setShortcut("Ctrl+K, ~")
|
||||||
self.aInsFigDash.triggered.connect(lambda: self._docInsert(nwUnicode.U_FGDASH))
|
self.aInsFigDash.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_FGDASH)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Quote Marks
|
# Insert > Quote Marks
|
||||||
self.mInsQuotes = self.insMenu.addMenu(self.tr("Quote Marks"))
|
self.mInsQuotes = self.insMenu.addMenu(self.tr("Quote Marks"))
|
||||||
@@ -373,27 +381,37 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Insert > Left Single Quote
|
# Insert > Left Single Quote
|
||||||
self.aInsQuoteLS = self.mInsQuotes.addAction(self.tr("Left Single Quote"))
|
self.aInsQuoteLS = self.mInsQuotes.addAction(self.tr("Left Single Quote"))
|
||||||
self.aInsQuoteLS.setShortcut("Ctrl+K, 1")
|
self.aInsQuoteLS.setShortcut("Ctrl+K, 1")
|
||||||
self.aInsQuoteLS.triggered.connect(lambda: self._docInsert(nwDocInsert.QUOTE_LS))
|
self.aInsQuoteLS.triggered.connect(
|
||||||
|
lambda: self.requestDocInsert.emit(nwDocInsert.QUOTE_LS)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Right Single Quote
|
# Insert > Right Single Quote
|
||||||
self.aInsQuoteRS = self.mInsQuotes.addAction(self.tr("Right Single Quote"))
|
self.aInsQuoteRS = self.mInsQuotes.addAction(self.tr("Right Single Quote"))
|
||||||
self.aInsQuoteRS.setShortcut("Ctrl+K, 2")
|
self.aInsQuoteRS.setShortcut("Ctrl+K, 2")
|
||||||
self.aInsQuoteRS.triggered.connect(lambda: self._docInsert(nwDocInsert.QUOTE_RS))
|
self.aInsQuoteRS.triggered.connect(
|
||||||
|
lambda: self.requestDocInsert.emit(nwDocInsert.QUOTE_RS)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Left Double Quote
|
# Insert > Left Double Quote
|
||||||
self.aInsQuoteLD = self.mInsQuotes.addAction(self.tr("Left Double Quote"))
|
self.aInsQuoteLD = self.mInsQuotes.addAction(self.tr("Left Double Quote"))
|
||||||
self.aInsQuoteLD.setShortcut("Ctrl+K, 3")
|
self.aInsQuoteLD.setShortcut("Ctrl+K, 3")
|
||||||
self.aInsQuoteLD.triggered.connect(lambda: self._docInsert(nwDocInsert.QUOTE_LD))
|
self.aInsQuoteLD.triggered.connect(
|
||||||
|
lambda: self.requestDocInsert.emit(nwDocInsert.QUOTE_LD)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Right Double Quote
|
# Insert > Right Double Quote
|
||||||
self.aInsQuoteRD = self.mInsQuotes.addAction(self.tr("Right Double Quote"))
|
self.aInsQuoteRD = self.mInsQuotes.addAction(self.tr("Right Double Quote"))
|
||||||
self.aInsQuoteRD.setShortcut("Ctrl+K, 4")
|
self.aInsQuoteRD.setShortcut("Ctrl+K, 4")
|
||||||
self.aInsQuoteRD.triggered.connect(lambda: self._docInsert(nwDocInsert.QUOTE_RD))
|
self.aInsQuoteRD.triggered.connect(
|
||||||
|
lambda: self.requestDocInsert.emit(nwDocInsert.QUOTE_RD)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Alternative Apostrophe
|
# Insert > Alternative Apostrophe
|
||||||
self.aInsMSApos = self.mInsQuotes.addAction(self.tr("Alternative Apostrophe"))
|
self.aInsMSApos = self.mInsQuotes.addAction(self.tr("Alternative Apostrophe"))
|
||||||
self.aInsMSApos.setShortcut("Ctrl+K, '")
|
self.aInsMSApos.setShortcut("Ctrl+K, '")
|
||||||
self.aInsMSApos.triggered.connect(lambda: self._docInsert(nwUnicode.U_MAPOSS))
|
self.aInsMSApos.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_MAPOSS)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Symbols
|
# Insert > Symbols
|
||||||
self.mInsPunct = self.insMenu.addMenu(self.tr("General Punctuation"))
|
self.mInsPunct = self.insMenu.addMenu(self.tr("General Punctuation"))
|
||||||
@@ -401,17 +419,23 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Insert > Ellipsis
|
# Insert > Ellipsis
|
||||||
self.aInsEllipsis = self.mInsPunct.addAction(self.tr("Ellipsis"))
|
self.aInsEllipsis = self.mInsPunct.addAction(self.tr("Ellipsis"))
|
||||||
self.aInsEllipsis.setShortcut("Ctrl+K, .")
|
self.aInsEllipsis.setShortcut("Ctrl+K, .")
|
||||||
self.aInsEllipsis.triggered.connect(lambda: self._docInsert(nwUnicode.U_HELLIP))
|
self.aInsEllipsis.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_HELLIP)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Prime
|
# Insert > Prime
|
||||||
self.aInsPrime = self.mInsPunct.addAction(self.tr("Prime"))
|
self.aInsPrime = self.mInsPunct.addAction(self.tr("Prime"))
|
||||||
self.aInsPrime.setShortcut("Ctrl+K, Ctrl+'")
|
self.aInsPrime.setShortcut("Ctrl+K, Ctrl+'")
|
||||||
self.aInsPrime.triggered.connect(lambda: self._docInsert(nwUnicode.U_PRIME))
|
self.aInsPrime.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_PRIME)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Double Prime
|
# Insert > Double Prime
|
||||||
self.aInsDPrime = self.mInsPunct.addAction(self.tr("Double Prime"))
|
self.aInsDPrime = self.mInsPunct.addAction(self.tr("Double Prime"))
|
||||||
self.aInsDPrime.setShortcut("Ctrl+K, Ctrl+\"")
|
self.aInsDPrime.setShortcut("Ctrl+K, Ctrl+\"")
|
||||||
self.aInsDPrime.triggered.connect(lambda: self._docInsert(nwUnicode.U_DPRIME))
|
self.aInsDPrime.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_DPRIME)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > White Spaces
|
# Insert > White Spaces
|
||||||
self.mInsSpace = self.insMenu.addMenu(self.tr("White Spaces"))
|
self.mInsSpace = self.insMenu.addMenu(self.tr("White Spaces"))
|
||||||
@@ -419,17 +443,23 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Insert > Non-Breaking Space
|
# Insert > Non-Breaking Space
|
||||||
self.aInsNBSpace = self.mInsSpace.addAction(self.tr("Non-Breaking Space"))
|
self.aInsNBSpace = self.mInsSpace.addAction(self.tr("Non-Breaking Space"))
|
||||||
self.aInsNBSpace.setShortcut("Ctrl+K, Space")
|
self.aInsNBSpace.setShortcut("Ctrl+K, Space")
|
||||||
self.aInsNBSpace.triggered.connect(lambda: self._docInsert(nwUnicode.U_NBSP))
|
self.aInsNBSpace.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_NBSP)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Thin Space
|
# Insert > Thin Space
|
||||||
self.aInsThinSpace = self.mInsSpace.addAction(self.tr("Thin Space"))
|
self.aInsThinSpace = self.mInsSpace.addAction(self.tr("Thin Space"))
|
||||||
self.aInsThinSpace.setShortcut("Ctrl+K, Shift+Space")
|
self.aInsThinSpace.setShortcut("Ctrl+K, Shift+Space")
|
||||||
self.aInsThinSpace.triggered.connect(lambda: self._docInsert(nwUnicode.U_THSP))
|
self.aInsThinSpace.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_THSP)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Thin Non-Breaking Space
|
# Insert > Thin Non-Breaking Space
|
||||||
self.aInsThinNBSpace = self.mInsSpace.addAction(self.tr("Thin Non-Breaking Space"))
|
self.aInsThinNBSpace = self.mInsSpace.addAction(self.tr("Thin Non-Breaking Space"))
|
||||||
self.aInsThinNBSpace.setShortcut("Ctrl+K, Ctrl+Space")
|
self.aInsThinNBSpace.setShortcut("Ctrl+K, Ctrl+Space")
|
||||||
self.aInsThinNBSpace.triggered.connect(lambda: self._docInsert(nwUnicode.U_THNBSP))
|
self.aInsThinNBSpace.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_THNBSP)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Symbols
|
# Insert > Symbols
|
||||||
self.mInsSymbol = self.insMenu.addMenu(self.tr("Other Symbols"))
|
self.mInsSymbol = self.insMenu.addMenu(self.tr("Other Symbols"))
|
||||||
@@ -437,42 +467,58 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Insert > List Bullet
|
# Insert > List Bullet
|
||||||
self.aInsBullet = self.mInsSymbol.addAction(self.tr("List Bullet"))
|
self.aInsBullet = self.mInsSymbol.addAction(self.tr("List Bullet"))
|
||||||
self.aInsBullet.setShortcut("Ctrl+K, *")
|
self.aInsBullet.setShortcut("Ctrl+K, *")
|
||||||
self.aInsBullet.triggered.connect(lambda: self._docInsert(nwUnicode.U_BULL))
|
self.aInsBullet.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_BULL)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Hyphen Bullet
|
# Insert > Hyphen Bullet
|
||||||
self.aInsHyBull = self.mInsSymbol.addAction(self.tr("Hyphen Bullet"))
|
self.aInsHyBull = self.mInsSymbol.addAction(self.tr("Hyphen Bullet"))
|
||||||
self.aInsHyBull.setShortcut("Ctrl+K, Ctrl+-")
|
self.aInsHyBull.setShortcut("Ctrl+K, Ctrl+-")
|
||||||
self.aInsHyBull.triggered.connect(lambda: self._docInsert(nwUnicode.U_HYBULL))
|
self.aInsHyBull.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_HYBULL)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Flower Mark
|
# Insert > Flower Mark
|
||||||
self.aInsFlower = self.mInsSymbol.addAction(self.tr("Flower Mark"))
|
self.aInsFlower = self.mInsSymbol.addAction(self.tr("Flower Mark"))
|
||||||
self.aInsFlower.setShortcut("Ctrl+K, Ctrl+*")
|
self.aInsFlower.setShortcut("Ctrl+K, Ctrl+*")
|
||||||
self.aInsFlower.triggered.connect(lambda: self._docInsert(nwUnicode.U_FLOWER))
|
self.aInsFlower.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_FLOWER)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Per Mille
|
# Insert > Per Mille
|
||||||
self.aInsPerMille = self.mInsSymbol.addAction(self.tr("Per Mille"))
|
self.aInsPerMille = self.mInsSymbol.addAction(self.tr("Per Mille"))
|
||||||
self.aInsPerMille.setShortcut("Ctrl+K, %")
|
self.aInsPerMille.setShortcut("Ctrl+K, %")
|
||||||
self.aInsPerMille.triggered.connect(lambda: self._docInsert(nwUnicode.U_PERMIL))
|
self.aInsPerMille.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_PERMIL)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Degree Symbol
|
# Insert > Degree Symbol
|
||||||
self.aInsDegree = self.mInsSymbol.addAction(self.tr("Degree Symbol"))
|
self.aInsDegree = self.mInsSymbol.addAction(self.tr("Degree Symbol"))
|
||||||
self.aInsDegree.setShortcut("Ctrl+K, Ctrl+O")
|
self.aInsDegree.setShortcut("Ctrl+K, Ctrl+O")
|
||||||
self.aInsDegree.triggered.connect(lambda: self._docInsert(nwUnicode.U_DEGREE))
|
self.aInsDegree.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_DEGREE)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Minus Sign
|
# Insert > Minus Sign
|
||||||
self.aInsMinus = self.mInsSymbol.addAction(self.tr("Minus Sign"))
|
self.aInsMinus = self.mInsSymbol.addAction(self.tr("Minus Sign"))
|
||||||
self.aInsMinus.setShortcut("Ctrl+K, Ctrl+M")
|
self.aInsMinus.setShortcut("Ctrl+K, Ctrl+M")
|
||||||
self.aInsMinus.triggered.connect(lambda: self._docInsert(nwUnicode.U_MINUS))
|
self.aInsMinus.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_MINUS)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Times Sign
|
# Insert > Times Sign
|
||||||
self.aInsTimes = self.mInsSymbol.addAction(self.tr("Times Sign"))
|
self.aInsTimes = self.mInsSymbol.addAction(self.tr("Times Sign"))
|
||||||
self.aInsTimes.setShortcut("Ctrl+K, Ctrl+X")
|
self.aInsTimes.setShortcut("Ctrl+K, Ctrl+X")
|
||||||
self.aInsTimes.triggered.connect(lambda: self._docInsert(nwUnicode.U_TIMES))
|
self.aInsTimes.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_TIMES)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Division
|
# Insert > Division
|
||||||
self.aInsDivide = self.mInsSymbol.addAction(self.tr("Division Sign"))
|
self.aInsDivide = self.mInsSymbol.addAction(self.tr("Division Sign"))
|
||||||
self.aInsDivide.setShortcut("Ctrl+K, Ctrl+D")
|
self.aInsDivide.setShortcut("Ctrl+K, Ctrl+D")
|
||||||
self.aInsDivide.triggered.connect(lambda: self._docInsert(nwUnicode.U_DIVIDE))
|
self.aInsDivide.triggered.connect(
|
||||||
|
lambda: self.requestDocInsertText.emit(nwUnicode.U_DIVIDE)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Tags and References
|
# Insert > Tags and References
|
||||||
self.mInsKeywords = self.insMenu.addMenu(self.tr("Tags and References"))
|
self.mInsKeywords = self.insMenu.addMenu(self.tr("Tags and References"))
|
||||||
@@ -491,7 +537,7 @@ class GuiMainMenu(QMenuBar):
|
|||||||
self.mInsKWItems[keyWord][0].setText(trConst(nwLabels.KEY_NAME[keyWord]))
|
self.mInsKWItems[keyWord][0].setText(trConst(nwLabels.KEY_NAME[keyWord]))
|
||||||
self.mInsKWItems[keyWord][0].setShortcut(self.mInsKWItems[keyWord][1])
|
self.mInsKWItems[keyWord][0].setShortcut(self.mInsKWItems[keyWord][1])
|
||||||
self.mInsKWItems[keyWord][0].triggered.connect(
|
self.mInsKWItems[keyWord][0].triggered.connect(
|
||||||
lambda n, keyWord=keyWord: self._insertKeyWord(keyWord)
|
lambda n, keyWord=keyWord: self.requestDocKeyWordInsert.emit(keyWord)
|
||||||
)
|
)
|
||||||
self.mInsKeywords.addAction(self.mInsKWItems[keyWord][0])
|
self.mInsKeywords.addAction(self.mInsKWItems[keyWord][0])
|
||||||
|
|
||||||
@@ -501,22 +547,30 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Insert > Synopsis Comment
|
# Insert > Synopsis Comment
|
||||||
self.aInsSynopsis = self.mInsComments.addAction(self.tr("Synopsis Comment"))
|
self.aInsSynopsis = self.mInsComments.addAction(self.tr("Synopsis Comment"))
|
||||||
self.aInsSynopsis.setShortcut("Ctrl+K, S")
|
self.aInsSynopsis.setShortcut("Ctrl+K, S")
|
||||||
self.aInsSynopsis.triggered.connect(lambda: self._docInsert(nwDocInsert.SYNOPSIS))
|
self.aInsSynopsis.triggered.connect(
|
||||||
|
lambda: self.requestDocInsert.emit(nwDocInsert.SYNOPSIS)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Symbols
|
# Insert > Symbols
|
||||||
self.mInsBreaks = self.insMenu.addMenu(self.tr("Page Break and Space"))
|
self.mInsBreaks = self.insMenu.addMenu(self.tr("Page Break and Space"))
|
||||||
|
|
||||||
# Insert > New Page
|
# Insert > New Page
|
||||||
self.aInsNewPage = self.mInsBreaks.addAction(self.tr("Page Break"))
|
self.aInsNewPage = self.mInsBreaks.addAction(self.tr("Page Break"))
|
||||||
self.aInsNewPage.triggered.connect(lambda: self._docInsert(nwDocInsert.NEW_PAGE))
|
self.aInsNewPage.triggered.connect(
|
||||||
|
lambda: self.requestDocInsert.emit(nwDocInsert.NEW_PAGE)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Vertical Space (Single)
|
# Insert > Vertical Space (Single)
|
||||||
self.aInsVSpaceS = self.mInsBreaks.addAction(self.tr("Vertical Space (Single)"))
|
self.aInsVSpaceS = self.mInsBreaks.addAction(self.tr("Vertical Space (Single)"))
|
||||||
self.aInsVSpaceS.triggered.connect(lambda: self._docInsert(nwDocInsert.VSPACE_S))
|
self.aInsVSpaceS.triggered.connect(
|
||||||
|
lambda: self.requestDocInsert.emit(nwDocInsert.VSPACE_S)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Vertical Space (Multi)
|
# Insert > Vertical Space (Multi)
|
||||||
self.aInsVSpaceM = self.mInsBreaks.addAction(self.tr("Vertical Space (Multi)"))
|
self.aInsVSpaceM = self.mInsBreaks.addAction(self.tr("Vertical Space (Multi)"))
|
||||||
self.aInsVSpaceM.triggered.connect(lambda: self._docInsert(nwDocInsert.VSPACE_M))
|
self.aInsVSpaceM.triggered.connect(
|
||||||
|
lambda: self.requestDocInsert.emit(nwDocInsert.VSPACE_M)
|
||||||
|
)
|
||||||
|
|
||||||
# Insert > Placeholder Text
|
# Insert > Placeholder Text
|
||||||
self.aLipsumText = self.mInsBreaks.addAction(self.tr("Placeholder Text"))
|
self.aLipsumText = self.mInsBreaks.addAction(self.tr("Placeholder Text"))
|
||||||
@@ -532,17 +586,23 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Format > Emphasis
|
# Format > Emphasis
|
||||||
self.aFmtEmph = self.fmtMenu.addAction(self.tr("Emphasis"))
|
self.aFmtEmph = self.fmtMenu.addAction(self.tr("Emphasis"))
|
||||||
self.aFmtEmph.setShortcut("Ctrl+I")
|
self.aFmtEmph.setShortcut("Ctrl+I")
|
||||||
self.aFmtEmph.triggered.connect(lambda: self._docAction(nwDocAction.EMPH))
|
self.aFmtEmph.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.EMPH)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Strong Emphasis
|
# Format > Strong Emphasis
|
||||||
self.aFmtStrong = self.fmtMenu.addAction(self.tr("Strong Emphasis"))
|
self.aFmtStrong = self.fmtMenu.addAction(self.tr("Strong Emphasis"))
|
||||||
self.aFmtStrong.setShortcut("Ctrl+B")
|
self.aFmtStrong.setShortcut("Ctrl+B")
|
||||||
self.aFmtStrong.triggered.connect(lambda: self._docAction(nwDocAction.STRONG))
|
self.aFmtStrong.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.STRONG)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Strikethrough
|
# Format > Strikethrough
|
||||||
self.aFmtStrike = self.fmtMenu.addAction(self.tr("Strikethrough"))
|
self.aFmtStrike = self.fmtMenu.addAction(self.tr("Strikethrough"))
|
||||||
self.aFmtStrike.setShortcut("Ctrl+D")
|
self.aFmtStrike.setShortcut("Ctrl+D")
|
||||||
self.aFmtStrike.triggered.connect(lambda: self._docAction(nwDocAction.STRIKE))
|
self.aFmtStrike.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.STRIKE)
|
||||||
|
)
|
||||||
|
|
||||||
# Edit > Separator
|
# Edit > Separator
|
||||||
self.fmtMenu.addSeparator()
|
self.fmtMenu.addSeparator()
|
||||||
@@ -550,12 +610,16 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Format > Double Quotes
|
# Format > Double Quotes
|
||||||
self.aFmtDQuote = self.fmtMenu.addAction(self.tr("Wrap Double Quotes"))
|
self.aFmtDQuote = self.fmtMenu.addAction(self.tr("Wrap Double Quotes"))
|
||||||
self.aFmtDQuote.setShortcut("Ctrl+\"")
|
self.aFmtDQuote.setShortcut("Ctrl+\"")
|
||||||
self.aFmtDQuote.triggered.connect(lambda: self._docAction(nwDocAction.D_QUOTE))
|
self.aFmtDQuote.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.D_QUOTE)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Single Quotes
|
# Format > Single Quotes
|
||||||
self.aFmtSQuote = self.fmtMenu.addAction(self.tr("Wrap Single Quotes"))
|
self.aFmtSQuote = self.fmtMenu.addAction(self.tr("Wrap Single Quotes"))
|
||||||
self.aFmtSQuote.setShortcut("Ctrl+'")
|
self.aFmtSQuote.setShortcut("Ctrl+'")
|
||||||
self.aFmtSQuote.triggered.connect(lambda: self._docAction(nwDocAction.S_QUOTE))
|
self.aFmtSQuote.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.S_QUOTE)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Separator
|
# Format > Separator
|
||||||
self.fmtMenu.addSeparator()
|
self.fmtMenu.addSeparator()
|
||||||
@@ -564,28 +628,40 @@ class GuiMainMenu(QMenuBar):
|
|||||||
self.mShortcodes = self.fmtMenu.addMenu(self.tr("More Formats ..."))
|
self.mShortcodes = self.fmtMenu.addMenu(self.tr("More Formats ..."))
|
||||||
|
|
||||||
# Shortcode Italic
|
# Shortcode Italic
|
||||||
self.aScItalic = self.mShortcodes.addAction(self.tr("Italics Shortcode"))
|
self.aScItalic = self.mShortcodes.addAction(self.tr("Italics (Shortcode)"))
|
||||||
self.aScItalic.triggered.connect(lambda: self._docAction(nwDocAction.SC_ITALIC))
|
self.aScItalic.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.SC_ITALIC)
|
||||||
|
)
|
||||||
|
|
||||||
# Shortcode Bold
|
# Shortcode Bold
|
||||||
self.aScBold = self.mShortcodes.addAction(self.tr("Bold Shortcode"))
|
self.aScBold = self.mShortcodes.addAction(self.tr("Bold (Shortcode)"))
|
||||||
self.aScBold.triggered.connect(lambda: self._docAction(nwDocAction.SC_BOLD))
|
self.aScBold.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.SC_BOLD)
|
||||||
# Shortcode Underline
|
)
|
||||||
self.aScULine = self.mShortcodes.addAction(self.tr("Underline Shortcode"))
|
|
||||||
self.aScULine.triggered.connect(lambda: self._docAction(nwDocAction.SC_ULINE))
|
|
||||||
|
|
||||||
# Shortcode Strikethrough
|
# Shortcode Strikethrough
|
||||||
self.aScStrike = self.mShortcodes.addAction(self.tr("Strikethrough Shortcode"))
|
self.aScStrike = self.mShortcodes.addAction(self.tr("Strikethrough (Shortcode)"))
|
||||||
self.aScStrike.triggered.connect(lambda: self._docAction(nwDocAction.SC_STRIKE))
|
self.aScStrike.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.SC_STRIKE)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Shortcode Underline
|
||||||
|
self.aScULine = self.mShortcodes.addAction(self.tr("Underline"))
|
||||||
|
self.aScULine.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.SC_ULINE)
|
||||||
|
)
|
||||||
|
|
||||||
# Shortcode Superscript
|
# Shortcode Superscript
|
||||||
self.aScSuper = self.mShortcodes.addAction(self.tr("Superscript"))
|
self.aScSuper = self.mShortcodes.addAction(self.tr("Superscript"))
|
||||||
self.aScSuper.triggered.connect(lambda: self._docAction(nwDocAction.SC_SUP))
|
self.aScSuper.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.SC_SUP)
|
||||||
|
)
|
||||||
|
|
||||||
# Shortcode Subscript
|
# Shortcode Subscript
|
||||||
self.aScSub = self.mShortcodes.addAction(self.tr("Subscript"))
|
self.aScSub = self.mShortcodes.addAction(self.tr("Subscript"))
|
||||||
self.aScSub.triggered.connect(lambda: self._docAction(nwDocAction.SC_SUB))
|
self.aScSub.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.SC_SUB)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Separator
|
# Format > Separator
|
||||||
self.fmtMenu.addSeparator()
|
self.fmtMenu.addSeparator()
|
||||||
@@ -593,33 +669,45 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Format > Header 1 (Partition)
|
# Format > Header 1 (Partition)
|
||||||
self.aFmtHead1 = self.fmtMenu.addAction(self.tr("Header 1 (Partition)"))
|
self.aFmtHead1 = self.fmtMenu.addAction(self.tr("Header 1 (Partition)"))
|
||||||
self.aFmtHead1.setShortcut("Ctrl+1")
|
self.aFmtHead1.setShortcut("Ctrl+1")
|
||||||
self.aFmtHead1.triggered.connect(lambda: self._docAction(nwDocAction.BLOCK_H1))
|
self.aFmtHead1.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.BLOCK_H1)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Header 2 (Chapter)
|
# Format > Header 2 (Chapter)
|
||||||
self.aFmtHead2 = self.fmtMenu.addAction(self.tr("Header 2 (Chapter)"))
|
self.aFmtHead2 = self.fmtMenu.addAction(self.tr("Header 2 (Chapter)"))
|
||||||
self.aFmtHead2.setShortcut("Ctrl+2")
|
self.aFmtHead2.setShortcut("Ctrl+2")
|
||||||
self.aFmtHead2.triggered.connect(lambda: self._docAction(nwDocAction.BLOCK_H2))
|
self.aFmtHead2.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.BLOCK_H2)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Header 3 (Scene)
|
# Format > Header 3 (Scene)
|
||||||
self.aFmtHead3 = self.fmtMenu.addAction(self.tr("Header 3 (Scene)"))
|
self.aFmtHead3 = self.fmtMenu.addAction(self.tr("Header 3 (Scene)"))
|
||||||
self.aFmtHead3.setShortcut("Ctrl+3")
|
self.aFmtHead3.setShortcut("Ctrl+3")
|
||||||
self.aFmtHead3.triggered.connect(lambda: self._docAction(nwDocAction.BLOCK_H3))
|
self.aFmtHead3.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.BLOCK_H3)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Header 4 (Section)
|
# Format > Header 4 (Section)
|
||||||
self.aFmtHead4 = self.fmtMenu.addAction(self.tr("Header 4 (Section)"))
|
self.aFmtHead4 = self.fmtMenu.addAction(self.tr("Header 4 (Section)"))
|
||||||
self.aFmtHead4.setShortcut("Ctrl+4")
|
self.aFmtHead4.setShortcut("Ctrl+4")
|
||||||
self.aFmtHead4.triggered.connect(lambda: self._docAction(nwDocAction.BLOCK_H4))
|
self.aFmtHead4.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.BLOCK_H4)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Separator
|
# Format > Separator
|
||||||
self.fmtMenu.addSeparator()
|
self.fmtMenu.addSeparator()
|
||||||
|
|
||||||
# Format > Novel Title
|
# Format > Novel Title
|
||||||
self.aFmtTitle = self.fmtMenu.addAction(self.tr("Novel Title"))
|
self.aFmtTitle = self.fmtMenu.addAction(self.tr("Novel Title"))
|
||||||
self.aFmtTitle.triggered.connect(lambda: self._docAction(nwDocAction.BLOCK_TTL))
|
self.aFmtTitle.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.BLOCK_TTL)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Unnumbered Chapter
|
# Format > Unnumbered Chapter
|
||||||
self.aFmtUnNum = self.fmtMenu.addAction(self.tr("Unnumbered Chapter"))
|
self.aFmtUnNum = self.fmtMenu.addAction(self.tr("Unnumbered Chapter"))
|
||||||
self.aFmtUnNum.triggered.connect(lambda: self._docAction(nwDocAction.BLOCK_UNN))
|
self.aFmtUnNum.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.BLOCK_UNN)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Separator
|
# Format > Separator
|
||||||
self.fmtMenu.addSeparator()
|
self.fmtMenu.addSeparator()
|
||||||
@@ -627,17 +715,23 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Format > Align Left
|
# Format > Align Left
|
||||||
self.aFmtAlignLeft = self.fmtMenu.addAction(self.tr("Align Left"))
|
self.aFmtAlignLeft = self.fmtMenu.addAction(self.tr("Align Left"))
|
||||||
self.aFmtAlignLeft.setShortcut("Ctrl+5")
|
self.aFmtAlignLeft.setShortcut("Ctrl+5")
|
||||||
self.aFmtAlignLeft.triggered.connect(lambda: self._docAction(nwDocAction.ALIGN_L))
|
self.aFmtAlignLeft.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.ALIGN_L)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Align Centre
|
# Format > Align Centre
|
||||||
self.aFmtAlignCentre = self.fmtMenu.addAction(self.tr("Align Centre"))
|
self.aFmtAlignCentre = self.fmtMenu.addAction(self.tr("Align Centre"))
|
||||||
self.aFmtAlignCentre.setShortcut("Ctrl+6")
|
self.aFmtAlignCentre.setShortcut("Ctrl+6")
|
||||||
self.aFmtAlignCentre.triggered.connect(lambda: self._docAction(nwDocAction.ALIGN_C))
|
self.aFmtAlignCentre.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.ALIGN_C)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Align Right
|
# Format > Align Right
|
||||||
self.aFmtAlignRight = self.fmtMenu.addAction(self.tr("Align Right"))
|
self.aFmtAlignRight = self.fmtMenu.addAction(self.tr("Align Right"))
|
||||||
self.aFmtAlignRight.setShortcut("Ctrl+7")
|
self.aFmtAlignRight.setShortcut("Ctrl+7")
|
||||||
self.aFmtAlignRight.triggered.connect(lambda: self._docAction(nwDocAction.ALIGN_R))
|
self.aFmtAlignRight.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.ALIGN_R)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Separator
|
# Format > Separator
|
||||||
self.fmtMenu.addSeparator()
|
self.fmtMenu.addSeparator()
|
||||||
@@ -645,12 +739,16 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Format > Indent Left
|
# Format > Indent Left
|
||||||
self.aFmtIndentLeft = self.fmtMenu.addAction(self.tr("Indent Left"))
|
self.aFmtIndentLeft = self.fmtMenu.addAction(self.tr("Indent Left"))
|
||||||
self.aFmtIndentLeft.setShortcut("Ctrl+8")
|
self.aFmtIndentLeft.setShortcut("Ctrl+8")
|
||||||
self.aFmtIndentLeft.triggered.connect(lambda: self._docAction(nwDocAction.INDENT_L))
|
self.aFmtIndentLeft.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.INDENT_L)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Indent Right
|
# Format > Indent Right
|
||||||
self.aFmtIndentRight = self.fmtMenu.addAction(self.tr("Indent Right"))
|
self.aFmtIndentRight = self.fmtMenu.addAction(self.tr("Indent Right"))
|
||||||
self.aFmtIndentRight.setShortcut("Ctrl+9")
|
self.aFmtIndentRight.setShortcut("Ctrl+9")
|
||||||
self.aFmtIndentRight.triggered.connect(lambda: self._docAction(nwDocAction.INDENT_R))
|
self.aFmtIndentRight.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.INDENT_R)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Separator
|
# Format > Separator
|
||||||
self.fmtMenu.addSeparator()
|
self.fmtMenu.addSeparator()
|
||||||
@@ -658,27 +756,37 @@ class GuiMainMenu(QMenuBar):
|
|||||||
# Format > Comment
|
# Format > Comment
|
||||||
self.aFmtComment = self.fmtMenu.addAction(self.tr("Toggle Comment"))
|
self.aFmtComment = self.fmtMenu.addAction(self.tr("Toggle Comment"))
|
||||||
self.aFmtComment.setShortcut("Ctrl+/")
|
self.aFmtComment.setShortcut("Ctrl+/")
|
||||||
self.aFmtComment.triggered.connect(lambda: self._docAction(nwDocAction.BLOCK_COM))
|
self.aFmtComment.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.BLOCK_COM)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Remove Block Format
|
# Format > Remove Block Format
|
||||||
self.aFmtNoFormat = self.fmtMenu.addAction(self.tr("Remove Block Format"))
|
self.aFmtNoFormat = self.fmtMenu.addAction(self.tr("Remove Block Format"))
|
||||||
self.aFmtNoFormat.setShortcuts(["Ctrl+0", "Ctrl+Shift+/"])
|
self.aFmtNoFormat.setShortcuts(["Ctrl+0", "Ctrl+Shift+/"])
|
||||||
self.aFmtNoFormat.triggered.connect(lambda: self._docAction(nwDocAction.BLOCK_TXT))
|
self.aFmtNoFormat.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.BLOCK_TXT)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Separator
|
# Format > Separator
|
||||||
self.fmtMenu.addSeparator()
|
self.fmtMenu.addSeparator()
|
||||||
|
|
||||||
# Format > Replace Single Quotes
|
# Format > Replace Single Quotes
|
||||||
self.aFmtReplSng = self.fmtMenu.addAction(self.tr("Convert Single Quotes"))
|
self.aFmtReplSng = self.fmtMenu.addAction(self.tr("Convert Single Quotes"))
|
||||||
self.aFmtReplSng.triggered.connect(lambda: self._docAction(nwDocAction.REPL_SNG))
|
self.aFmtReplSng.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.REPL_SNG)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Replace Double Quotes
|
# Format > Replace Double Quotes
|
||||||
self.aFmtReplDbl = self.fmtMenu.addAction(self.tr("Convert Double Quotes"))
|
self.aFmtReplDbl = self.fmtMenu.addAction(self.tr("Convert Double Quotes"))
|
||||||
self.aFmtReplDbl.triggered.connect(lambda: self._docAction(nwDocAction.REPL_DBL))
|
self.aFmtReplDbl.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.REPL_DBL)
|
||||||
|
)
|
||||||
|
|
||||||
# Format > Remove In-Paragraph Breaks
|
# Format > Remove In-Paragraph Breaks
|
||||||
self.aFmtRmBreaks = self.fmtMenu.addAction(self.tr("Remove In-Paragraph Breaks"))
|
self.aFmtRmBreaks = self.fmtMenu.addAction(self.tr("Remove In-Paragraph Breaks"))
|
||||||
self.aFmtRmBreaks.triggered.connect(lambda: self._docAction(nwDocAction.RM_BREAKS))
|
self.aFmtRmBreaks.triggered.connect(
|
||||||
|
lambda: self.requestDocAction.emit(nwDocAction.RM_BREAKS)
|
||||||
|
)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
+30
-15
@@ -62,7 +62,7 @@ from novelwriter.tools.writingstats import GuiWritingStats
|
|||||||
from novelwriter.core.coretools import ProjectBuilder
|
from novelwriter.core.coretools import ProjectBuilder
|
||||||
|
|
||||||
from novelwriter.enum import (
|
from novelwriter.enum import (
|
||||||
nwDocAction, nwDocMode, nwItemType, nwItemClass, nwWidget, nwView
|
nwDocAction, nwDocInsert, nwDocMode, nwItemType, nwItemClass, nwWidget, nwView
|
||||||
)
|
)
|
||||||
from novelwriter.common import getGuiItem, hexToInt
|
from novelwriter.common import getGuiItem, hexToInt
|
||||||
from novelwriter.constants import nwFiles
|
from novelwriter.constants import nwFiles
|
||||||
@@ -243,6 +243,11 @@ class GuiMain(QMainWindow):
|
|||||||
SHARED.projectStatusMessage.connect(self.mainStatus.setStatusMessage)
|
SHARED.projectStatusMessage.connect(self.mainStatus.setStatusMessage)
|
||||||
SHARED.spellLanguageChanged.connect(self.mainStatus.setLanguage)
|
SHARED.spellLanguageChanged.connect(self.mainStatus.setLanguage)
|
||||||
|
|
||||||
|
self.mainMenu.requestDocAction.connect(self._passDocumentAction)
|
||||||
|
self.mainMenu.requestDocInsert.connect(self._passDocumentInsert)
|
||||||
|
self.mainMenu.requestDocInsertText.connect(self._passDocumentInsert)
|
||||||
|
self.mainMenu.requestDocKeyWordInsert.connect(self.docEditor.insertKeyWord)
|
||||||
|
|
||||||
self.sideBar.viewChangeRequested.connect(self._changeView)
|
self.sideBar.viewChangeRequested.connect(self._changeView)
|
||||||
|
|
||||||
self.projView.selectedItemChanged.connect(self.itemDetails.updateViewBox)
|
self.projView.selectedItemChanged.connect(self.itemDetails.updateViewBox)
|
||||||
@@ -735,20 +740,6 @@ class GuiMain(QMainWindow):
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def passDocumentAction(self, action: nwDocAction) -> None:
|
|
||||||
"""Pass on document action to the document viewer if it has
|
|
||||||
focus, or pass it to the document editor if it or any of
|
|
||||||
its child widgets have focus. If neither has focus, ignore the
|
|
||||||
action.
|
|
||||||
"""
|
|
||||||
if self.docViewer.hasFocus():
|
|
||||||
self.docViewer.docAction(action)
|
|
||||||
elif self.docEditor.hasFocus():
|
|
||||||
self.docEditor.docAction(action)
|
|
||||||
else:
|
|
||||||
logger.debug("Action cancelled as neither editor nor viewer has focus")
|
|
||||||
return
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Tree Item Actions
|
# Tree Item Actions
|
||||||
##
|
##
|
||||||
@@ -1247,6 +1238,30 @@ class GuiMain(QMainWindow):
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@pyqtSlot(nwDocAction)
|
||||||
|
def _passDocumentAction(self, action: nwDocAction) -> None:
|
||||||
|
"""Pass on a document action to the document viewer if it has
|
||||||
|
focus, or pass it to the document editor if it or any of its
|
||||||
|
child widgets have focus. If neither has focus, ignore it.
|
||||||
|
"""
|
||||||
|
if self.docViewer.hasFocus():
|
||||||
|
self.docViewer.docAction(action)
|
||||||
|
elif self.docEditor.hasFocus():
|
||||||
|
self.docEditor.docAction(action)
|
||||||
|
else:
|
||||||
|
logger.debug("Action cancelled as neither editor nor viewer has focus")
|
||||||
|
return
|
||||||
|
|
||||||
|
@pyqtSlot(str)
|
||||||
|
@pyqtSlot(nwDocInsert)
|
||||||
|
def _passDocumentInsert(self, content: str | nwDocInsert) -> None:
|
||||||
|
"""Pass on a document insert action to the document editor if it
|
||||||
|
has focus. If not, ignore it.
|
||||||
|
"""
|
||||||
|
if self.docEditor.hasFocus():
|
||||||
|
self.docEditor.insertText(content)
|
||||||
|
return
|
||||||
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
def _timeTick(self) -> None:
|
def _timeTick(self) -> None:
|
||||||
"""Process time tick of the main timer."""
|
"""Process time tick of the main timer."""
|
||||||
|
|||||||
Reference in New Issue
Block a user