Add word counts to the ODT file as user fields (#2033)
This commit is contained in:
@@ -89,11 +89,6 @@ class NWBuildDocument:
|
||||
# Setters
|
||||
##
|
||||
|
||||
def setCountEnabled(self, state: bool) -> None:
|
||||
"""Turn on/off stats for builds."""
|
||||
self._count = state
|
||||
return
|
||||
|
||||
def setBuildOutline(self, state: bool) -> None:
|
||||
"""Turn on/off outline for builds."""
|
||||
self._outline = state
|
||||
@@ -130,8 +125,8 @@ class NWBuildDocument:
|
||||
makeObj = ToQTextDocument(self._project)
|
||||
filtered = self._setupBuild(makeObj)
|
||||
|
||||
self._outline = True
|
||||
self._count = True
|
||||
self._outline = True
|
||||
|
||||
font = QFont()
|
||||
font.fromString(self._build.getStr("format.textFont"))
|
||||
@@ -169,6 +164,7 @@ class NWBuildDocument:
|
||||
filtered = self._setupBuild(makeObj)
|
||||
makeObj.initDocument()
|
||||
|
||||
self._count = True
|
||||
for i, tHandle in enumerate(self._queue):
|
||||
self._error = None
|
||||
if filtered.get(tHandle, (False, 0))[0]:
|
||||
@@ -199,6 +195,7 @@ class NWBuildDocument:
|
||||
makeObj = ToHtml(self._project)
|
||||
filtered = self._setupBuild(makeObj)
|
||||
|
||||
self._count = False
|
||||
for i, tHandle in enumerate(self._queue):
|
||||
self._error = None
|
||||
if filtered.get(tHandle, (False, 0))[0]:
|
||||
@@ -235,6 +232,7 @@ class NWBuildDocument:
|
||||
if self._build.getBool("format.replaceTabs"):
|
||||
makeObj.replaceTabs(nSpaces=4, spaceChar=" ")
|
||||
|
||||
self._count = False
|
||||
for i, tHandle in enumerate(self._queue):
|
||||
self._error = None
|
||||
if filtered.get(tHandle, (False, 0))[0]:
|
||||
@@ -262,6 +260,7 @@ class NWBuildDocument:
|
||||
|
||||
makeObj.setKeepMarkdown(True)
|
||||
|
||||
self._count = False
|
||||
for i, tHandle in enumerate(self._queue):
|
||||
self._error = None
|
||||
if filtered.get(tHandle, (False, 0))[0]:
|
||||
|
||||
@@ -532,11 +532,20 @@ class ToOdt(Tokenizer):
|
||||
return
|
||||
|
||||
def closeDocument(self) -> None:
|
||||
"""Pack the automatic styles of the XML document."""
|
||||
"""Add additional collected information to the XML."""
|
||||
for style in self._autoPara.values():
|
||||
style.packXML(self._xAuto)
|
||||
for style in self._autoText.values():
|
||||
style.packXML(self._xAuto)
|
||||
if self._counts:
|
||||
xFields = ET.Element(_mkTag("text", "user-field-decls"))
|
||||
for key, value in self._counts.items():
|
||||
ET.SubElement(xFields, _mkTag("text", "user-field-decl"), attrib={
|
||||
_mkTag("office", "value-type"): "float",
|
||||
_mkTag("office", "value"): str(value),
|
||||
_mkTag("text", "name"): f"Manuscript{key[:1].upper()}{key[1:]}",
|
||||
})
|
||||
self._xText.insert(0, xFields)
|
||||
return
|
||||
|
||||
def saveFlatXML(self, path: str | Path) -> None:
|
||||
|
||||
Reference in New Issue
Block a user