Started adding framework for document tokenizer.
This commit is contained in:
@@ -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
|
||||
@@ -289,6 +289,14 @@ class GuiDocTree(QTreeWidget):
|
||||
return selItem[0].text(self.C_HANDLE)
|
||||
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
|
||||
##
|
||||
|
||||
@@ -231,6 +231,16 @@ class GuiMainMenu(QMenuBar):
|
||||
# Document > Separator
|
||||
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
|
||||
menuItem = QAction(QIcon.fromTheme("list-add"), "Split Document", self)
|
||||
menuItem.setStatusTip("Split Selected Document")
|
||||
|
||||
@@ -28,6 +28,7 @@ from nw.gui.statusbar import GuiMainStatus
|
||||
from nw.project.project import NWProject
|
||||
from nw.project.document import NWDoc
|
||||
from nw.project.item import NWItem
|
||||
from nw.convert.tokenizer import Tokenizer
|
||||
from nw.enum import nwItemType
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -189,6 +190,22 @@ class GuiMain(QMainWindow):
|
||||
self.docEditor.setDocumentChanged(False)
|
||||
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
|
||||
##
|
||||
|
||||
Reference in New Issue
Block a user