From 4ce8b38acd86adc75daa783febca7206a2427eda Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Sun, 16 May 2021 00:41:44 +0200 Subject: [PATCH] Add editorDocumentChanged signal in GuiDocEditor --- nw/gui/doceditor.py | 5 ++-- nw/gui/statusbar.py | 68 ++++++++++++++++++++++++--------------------- nw/guimain.py | 3 +- 3 files changed, 42 insertions(+), 34 deletions(-) diff --git a/nw/gui/doceditor.py b/nw/gui/doceditor.py index ef0e685f..9cf64a1d 100644 --- a/nw/gui/doceditor.py +++ b/nw/gui/doceditor.py @@ -66,6 +66,7 @@ class GuiDocEditor(QTextEdit): # Custom Signals spellDictionaryChanged = pyqtSignal(str, str) + editorDocumentChanged = pyqtSignal(bool) def __init__(self, theParent): QTextEdit.__init__(self, theParent) @@ -623,7 +624,7 @@ class GuiDocEditor(QTextEdit): status. """ self._docChanged = bValue - self.theParent.statusBar.setDocumentStatus(self._docChanged) + self.editorDocumentChanged.emit(self._docChanged) return self._docChanged def setCursorPosition(self, thePosition): @@ -728,7 +729,7 @@ class GuiDocEditor(QTextEdit): qApp.restoreOverrideCursor() afTime = time() logger.debug("Document highlighted in %.3f ms" % (1000*(afTime-bfTime))) - self.theParent.statusBar.showMessage(self.tr("Spell check complete")) + self.theParent.statusBar.setStatus(self.tr("Spell check complete")) return True diff --git a/nw/gui/statusbar.py b/nw/gui/statusbar.py index d3490bf4..c7fc5aeb 100644 --- a/nw/gui/statusbar.py +++ b/nw/gui/statusbar.py @@ -126,7 +126,7 @@ class GuiMainStatus(QStatusBar): self.setLanguage(None, "") self.setStats(0, 0) self.setProjectStatus(None) - self.setDocumentStatus(None) + self.updateDocumentStatus(None) self.updateTime() return True @@ -147,36 +147,6 @@ class GuiMainStatus(QStatusBar): qApp.processEvents() return - @pyqtSlot(str, str) - def setLanguage(self, theLanguage, theProvider): - """Set the language code for the spell checker. - """ - if theLanguage is None: - self.langText.setText(self.tr("None")) - self.langText.setToolTip("") - else: - qLocal = QLocale(theLanguage) - spLang = qLocal.nativeLanguageName().title() - self.langText.setText(spLang) - if theProvider: - self.langText.setToolTip("%s (%s)" % (theLanguage, theProvider)) - else: - self.langText.setToolTip(theLanguage) - - return - - def setProjectStatus(self, isChanged): - """Set the project status colour icon. - """ - self.projIcon.setState(isChanged) - return - - def setDocumentStatus(self, isChanged): - """Set the document status colour icon. - """ - self.docIcon.setState(isChanged) - return - def setStats(self, pWC, sWC): """Set the current project statistics. """ @@ -213,6 +183,42 @@ class GuiMainStatus(QStatusBar): self.timeText.setText(formatTime(sessTime)) return + ## + # Slots + ## + + @pyqtSlot(str, str) + def setLanguage(self, theLanguage, theProvider): + """Set the language code for the spell checker. + """ + if theLanguage is None: + self.langText.setText(self.tr("None")) + self.langText.setToolTip("") + else: + qLocal = QLocale(theLanguage) + spLang = qLocal.nativeLanguageName().title() + self.langText.setText(spLang) + if theProvider: + self.langText.setToolTip("%s (%s)" % (theLanguage, theProvider)) + else: + self.langText.setToolTip(theLanguage) + + return + + @pyqtSlot(bool) + def setProjectStatus(self, isChanged): + """Set the project status colour icon. + """ + self.projIcon.setState(isChanged) + return + + @pyqtSlot(bool) + def updateDocumentStatus(self, isChanged): + """Set the document status colour icon. + """ + self.docIcon.setState(isChanged) + return + # END Class GuiMainStatus class StatusLED(QAbstractButton): diff --git a/nw/guimain.py b/nw/guimain.py index 491671bb..9d077b06 100644 --- a/nw/guimain.py +++ b/nw/guimain.py @@ -121,6 +121,7 @@ class GuiMain(QMainWindow): # Signals Between Main Elements self.docEditor.spellDictionaryChanged.connect(self.statusBar.setLanguage) + self.docEditor.editorDocumentChanged.connect(self.statusBar.updateDocumentStatus) # Minor GUI Elements self.statusIcons = [] @@ -381,7 +382,7 @@ class GuiMain(QMainWindow): self.rebuildIndex(beQuiet=True) self.statusBar.setRefTime(self.theProject.projOpened) self.statusBar.setProjectStatus(True) - self.statusBar.setDocumentStatus(None) + self.statusBar.updateDocumentStatus(None) self.statusBar.setStatus(self.tr("New project created ...")) self._updateWindowTitle(self.theProject.projName) else: