diff --git a/nw/gui/__init__.py b/nw/gui/__init__.py index b1912bbb..0ce25673 100644 --- a/nw/gui/__init__.py +++ b/nw/gui/__init__.py @@ -31,7 +31,6 @@ from nw.gui.elements.viewdetails import GuiDocViewDetails # Tools from nw.gui.tools.dochighlight import GuiDocHighlighter from nw.gui.tools.optionstate import OptionState -from nw.gui.tools.wordcounter import WordCounter __all__ = [ "GuiBuildNovel", @@ -58,5 +57,4 @@ __all__ = [ "GuiDocViewDetails", "GuiDocHighlighter", "OptionState", - "WordCounter", ] diff --git a/nw/gui/elements/doceditor.py b/nw/gui/elements/doceditor.py index 8ceb297e..9d9f7fa2 100644 --- a/nw/gui/elements/doceditor.py +++ b/nw/gui/elements/doceditor.py @@ -6,7 +6,8 @@ Class holding the document editor File History: - Created: 2018-09-29 [0.0.1] + Created: 2018-09-29 [0.0.1] GuiDocEditor + Created: 2019-04-22 [0.0.1] WordCounter This file is a part of novelWriter Copyright 2020, Veronica Berglyd Olsen @@ -30,7 +31,7 @@ import nw from time import time -from PyQt5.QtCore import Qt, QTimer, pyqtSlot +from PyQt5.QtCore import Qt, QThread, QTimer, pyqtSlot from PyQt5.QtWidgets import ( qApp, QTextEdit, QAction, QMenu, QShortcut, QMessageBox ) @@ -40,9 +41,9 @@ from PyQt5.QtGui import ( ) from nw.core import NWDoc -from nw.gui.tools import GuiDocHighlighter, WordCounter +from nw.gui.tools import GuiDocHighlighter from nw.gui.elements.doctitlebar import GuiDocTitleBar -from nw.core import NWSpellSimple +from nw.core import NWSpellSimple, countWords from nw.constants import nwUnicode, nwDocAction logger = logging.getLogger(__name__) @@ -52,7 +53,7 @@ class GuiDocEditor(QTextEdit): def __init__(self, theParent, theProject): QTextEdit.__init__(self) - logger.debug("Initialising DocEditor ...") + logger.debug("Initialising GuiDocEditor ...") # Class Variables self.mainConf = nw.CONFIG @@ -131,7 +132,7 @@ class GuiDocEditor(QTextEdit): self.initEditor() - logger.debug("DocEditor initialisation complete") + logger.debug("GuiDocEditor initialisation complete") # Connect Functions self.setSelectedHandle = self.theParent.treeView.setSelectedHandle @@ -1082,3 +1083,28 @@ class GuiDocEditor(QTextEdit): return # END Class GuiDocEditor + +class WordCounter(QThread): + + def __init__(self, theParent): + QThread.__init__(self, theParent) + self.theParent = theParent + self.charCount = 0 + self.wordCount = 0 + self.paraCount = 0 + return + + def run(self): + """Overloaded run function for the word counter, forwarding the + call to the function that does the actual counting. + """ + theText = self.theParent.getText() + cC, wC, pC = countWords(theText) + + self.charCount = cC + self.wordCount = wC + self.paraCount = pC + + return + +## END Class WordCounter diff --git a/nw/gui/tools/__init__.py b/nw/gui/tools/__init__.py index cc6cfdfa..e69db837 100644 --- a/nw/gui/tools/__init__.py +++ b/nw/gui/tools/__init__.py @@ -2,10 +2,8 @@ from nw.gui.tools.dochighlight import GuiDocHighlighter from nw.gui.tools.optionstate import OptionState -from nw.gui.tools.wordcounter import WordCounter __all__ = [ "GuiDocHighlighter", "OptionState", - "WordCounter", ] diff --git a/nw/gui/tools/wordcounter.py b/nw/gui/tools/wordcounter.py deleted file mode 100644 index 49255040..00000000 --- a/nw/gui/tools/wordcounter.py +++ /dev/null @@ -1,60 +0,0 @@ -# -*- coding: utf-8 -*- -"""novelWriter GUI Document Word Counter - - novelWriter – GUI Document Word Counter -=================================== - A thread for counting words and characters in a document - - File History: - Created: 2019-04-22 [0.0.1] - - This file is a part of novelWriter - Copyright 2020, Veronica Berglyd Olsen - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -""" - -import logging -import nw - -from PyQt5.QtCore import QThread - -from nw.core.tools import countWords - -logger = logging.getLogger(__name__) - -class WordCounter(QThread): - - def __init__(self, theParent): - QThread.__init__(self, theParent) - self.theParent = theParent - self.charCount = 0 - self.wordCount = 0 - self.paraCount = 0 - return - - def run(self): - """Overloaded run function for the word counter, forwarding the - call to the function that does the actual counting. - """ - theText = self.theParent.getText() - cC, wC, pC = countWords(theText) - - self.charCount = cC - self.wordCount = wC - self.paraCount = pC - - return - -## END Class WordCounter