Add page offset option to ODT build (#1505)
This commit is contained in:
@@ -80,6 +80,7 @@ SETTINGS_TEMPLATE = {
|
||||
"format.rightMargin": (float, 2.0),
|
||||
"odt.addColours": (bool, True),
|
||||
"odt.pageHeader": (str, nwHeadFmt.ODT_AUTO),
|
||||
"odt.pageCountOffset": (int, 0),
|
||||
"html.addStyles": (bool, True),
|
||||
}
|
||||
|
||||
@@ -127,6 +128,7 @@ SETTINGS_LABELS = {
|
||||
"odt": QT_TRANSLATE_NOOP("Builds", "Open Document (.odt)"),
|
||||
"odt.addColours": QT_TRANSLATE_NOOP("Builds", "Add Highlight Colours"),
|
||||
"odt.pageHeader": QT_TRANSLATE_NOOP("Builds", "Page Header"),
|
||||
"odt.pageCountOffset": QT_TRANSLATE_NOOP("Builds", "Page Counter Offset"),
|
||||
|
||||
"html": QT_TRANSLATE_NOOP("Builds", "HTML (.html)"),
|
||||
"html.addStyles": QT_TRANSLATE_NOOP("Builds", "Add CSS Styles"),
|
||||
|
||||
@@ -284,7 +284,9 @@ class NWBuildDocument:
|
||||
if isinstance(bldObj, ToOdt):
|
||||
bldObj.setColourHeaders(self._build.getBool("odt.addColours"))
|
||||
bldObj.setLanguage(self._project.data.language)
|
||||
bldObj.setHeaderFormat(self._build.getStr("odt.pageHeader"))
|
||||
bldObj.setHeaderFormat(
|
||||
self._build.getStr("odt.pageHeader"), self._build.getInt("odt.pageCountOffset")
|
||||
)
|
||||
|
||||
scale = nwLabels.UNIT_SCALE.get(self._build.getStr("format.pageUnit"), 1.0)
|
||||
pW, pH = nwLabels.PAPER_SIZE.get(self._build.getStr("format.pageSize"), (-1.0, -1.0))
|
||||
|
||||
@@ -137,6 +137,7 @@ class ToOdt(Tokenizer):
|
||||
self._textFixed = False
|
||||
self._colourHead = False
|
||||
self._headerFormat = ""
|
||||
self._pageOffset = 0
|
||||
|
||||
# Internal
|
||||
self._fontFamily = "'Liberation Serif'"
|
||||
@@ -222,9 +223,10 @@ class ToOdt(Tokenizer):
|
||||
self._mDocRight = f"{right/10.0:.3f}cm"
|
||||
return
|
||||
|
||||
def setHeaderFormat(self, format: str) -> None:
|
||||
def setHeaderFormat(self, format: str, offset: int) -> None:
|
||||
"""Set the document header format."""
|
||||
self._headerFormat = format.strip()
|
||||
self._pageOffset = offset
|
||||
return
|
||||
|
||||
##
|
||||
@@ -1023,9 +1025,10 @@ class ToOdt(Tokenizer):
|
||||
})
|
||||
xPar.text = pre
|
||||
if page:
|
||||
xTail = ET.SubElement(xPar, _mkTag("text", "page-number"), attrib={
|
||||
_mkTag("text", "select-page"): "current"
|
||||
})
|
||||
attrib = {_mkTag("text", "select-page"): "current"}
|
||||
if self._pageOffset > 0:
|
||||
attrib = {_mkTag("text", "page-adjust"): str(0 - self._pageOffset)}
|
||||
xTail = ET.SubElement(xPar, _mkTag("text", "page-number"), attrib=attrib)
|
||||
xTail.text = "2"
|
||||
xTail.tail = post
|
||||
else:
|
||||
|
||||
@@ -1210,6 +1210,7 @@ class _OutputTab(NScrollableForm):
|
||||
self._build = build
|
||||
|
||||
iPx = SHARED.theme.baseIconSize
|
||||
spW = 6*SHARED.theme.textNWidth
|
||||
|
||||
# Open Document
|
||||
self.addGroupLabel(self._build.getLabel("odt"))
|
||||
@@ -1227,6 +1228,13 @@ class _OutputTab(NScrollableForm):
|
||||
button=self.btnPageHeader, stretch=(1, 1)
|
||||
)
|
||||
|
||||
self.odtPageCountOffset = QSpinBox(self)
|
||||
self.odtPageCountOffset.setMinimum(0)
|
||||
self.odtPageCountOffset.setMaximum(999)
|
||||
self.odtPageCountOffset.setSingleStep(1)
|
||||
self.odtPageCountOffset.setMinimumWidth(spW)
|
||||
self.addRow(self._build.getLabel("odt.pageCountOffset"), self.odtPageCountOffset)
|
||||
|
||||
# HTML Document
|
||||
self.addGroupLabel(self._build.getLabel("html"))
|
||||
|
||||
@@ -1242,6 +1250,7 @@ class _OutputTab(NScrollableForm):
|
||||
"""Populate the widgets."""
|
||||
self.odtAddColours.setChecked(self._build.getBool("odt.addColours"))
|
||||
self.odtPageHeader.setText(self._build.getStr("odt.pageHeader"))
|
||||
self.odtPageCountOffset.setValue(self._build.getInt("odt.pageCountOffset"))
|
||||
self.htmlAddStyles.setChecked(self._build.getBool("html.addStyles"))
|
||||
return
|
||||
|
||||
@@ -1249,6 +1258,7 @@ class _OutputTab(NScrollableForm):
|
||||
"""Save choices back into build object."""
|
||||
self._build.setValue("odt.addColours", self.odtAddColours.isChecked())
|
||||
self._build.setValue("odt.pageHeader", self.odtPageHeader.text())
|
||||
self._build.setValue("odt.pageCountOffset", self.odtPageCountOffset.value())
|
||||
self._build.setValue("html.addStyles", self.htmlAddStyles.isChecked())
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user