Started adding framework for document tokenizer.

This commit is contained in:
Veronica K. B. Olsen
2019-05-05 23:16:53 +02:00
parent fd3b05f118
commit 7166dfbb2e
4 changed files with 80 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-
"""novelWriter Text Tokenizer
novelWriter Text Tokenizer
==============================
Splits a piece of nW markdown text into its elements
File History:
Created: 2019-05-05 [0.0.1]
"""
import logging
import nw
from nw.project.document import NWDoc
logger = logging.getLogger(__name__)
class Tokenizer():
def __init__(self, theProject, theParent):
self.mainConf = nw.CONFIG
self.theProject = theProject
self.theParent = theParent
self.theHandle = None
self.theItem = None
self.theTokens = None
return
def tokenizeText(self, tHandle):
self.theItem = self.theProject.getItem(tHandle)
theDoc = NWDoc(self.theProject, self.theParent)
theText = theDoc.openDocument(tHandle)
for aLine in theText.splitlines():
print(aLine)
return
# END Class Tokenizer
+8
View File
@@ -289,6 +289,14 @@ class GuiDocTree(QTreeWidget):
return selItem[0].text(self.C_HANDLE) return selItem[0].text(self.C_HANDLE)
return None return None
def getSelectedHandles(self):
selItems = self.selectedItems()
selHandles = []
for n in range(len(selItems)):
if isinstance(selItems[n], QTreeWidgetItem):
selHandles.append(selItems[n].text(self.C_HANDLE))
return selHandles
## ##
# Internal Functions # Internal Functions
## ##
+10
View File
@@ -231,6 +231,16 @@ class GuiMainMenu(QMenuBar):
# Document > Separator # Document > Separator
self.docuMenu.addSeparator() self.docuMenu.addSeparator()
# Document > Preview
menuItem = QAction(QIcon.fromTheme("text-html"), "Preview Document", self)
menuItem.setStatusTip("Preview Document")
menuItem.setShortcut("Ctrl+R")
menuItem.triggered.connect(self.theParent._previewDocument)
self.docuMenu.addAction(menuItem)
# Document > Separator
self.docuMenu.addSeparator()
# Document > Split # Document > Split
menuItem = QAction(QIcon.fromTheme("list-add"), "Split Document", self) menuItem = QAction(QIcon.fromTheme("list-add"), "Split Document", self)
menuItem.setStatusTip("Split Selected Document") menuItem.setStatusTip("Split Selected Document")
+17
View File
@@ -28,6 +28,7 @@ from nw.gui.statusbar import GuiMainStatus
from nw.project.project import NWProject from nw.project.project import NWProject
from nw.project.document import NWDoc from nw.project.document import NWDoc
from nw.project.item import NWItem from nw.project.item import NWItem
from nw.convert.tokenizer import Tokenizer
from nw.enum import nwItemType from nw.enum import nwItemType
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -189,6 +190,22 @@ class GuiMain(QMainWindow):
self.docEditor.setDocumentChanged(False) self.docEditor.setDocumentChanged(False)
return return
def _previewDocument(self):
theHandles = self.treeView.getSelectedHandles()
if len(theHandles) == 0:
return
theDocs = []
self.treeView.saveTreeOrder()
for tHandle in self.theProject.treeOrder:
if tHandle not in theHandles:
continue
aDoc = Tokenizer(self.theProject, self)
aDoc.tokenizeText(tHandle)
return
## ##
# Tree Item Actions # Tree Item Actions
## ##