Generalise ODT variables to DOC

This commit is contained in:
Veronica Berglyd Olsen
2024-10-21 17:00:44 +02:00
parent 787e1a46d1
commit ec7781fb9f
11 changed files with 77 additions and 71 deletions
+5 -5
View File
@@ -369,11 +369,11 @@ class nwHeadFmt:
CHAR_POV, CHAR_FOCUS CHAR_POV, CHAR_FOCUS
] ]
# ODT Document Page Header # Document Page Header
ODT_PROJECT = "{Project}" DOC_PROJECT = "{Project}"
ODT_AUTHOR = "{Author}" DOC_AUTHOR = "{Author}"
ODT_PAGE = "{Page}" DOC_PAGE = "{Page}"
ODT_AUTO = "{Project} / {Author} / {Page}" DOC_AUTO = "{Project} / {Author} / {Page}"
class nwQuotes: class nwQuotes:
+18 -12
View File
@@ -109,11 +109,11 @@ SETTINGS_TEMPLATE: dict[str, tuple[type, str | int | float | bool]] = {
"format.bottomMargin": (float, 2.0), "format.bottomMargin": (float, 2.0),
"format.leftMargin": (float, 2.0), "format.leftMargin": (float, 2.0),
"format.rightMargin": (float, 2.0), "format.rightMargin": (float, 2.0),
"odt.pageHeader": (str, nwHeadFmt.ODT_AUTO), "doc.pageHeader": (str, nwHeadFmt.DOC_AUTO),
"odt.pageCountOffset": (int, 0), "doc.pageCountOffset": (int, 0),
"odt.colorHeadings": (bool, True), "doc.colorHeadings": (bool, True),
"odt.scaleHeadings": (bool, True), "doc.scaleHeadings": (bool, True),
"odt.boldHeadings": (bool, True), "doc.boldHeadings": (bool, True),
"html.addStyles": (bool, True), "html.addStyles": (bool, True),
"html.preserveTabs": (bool, False), "html.preserveTabs": (bool, False),
} }
@@ -165,18 +165,24 @@ SETTINGS_LABELS = {
"format.pageSize": QT_TRANSLATE_NOOP("Builds", "Page Size"), "format.pageSize": QT_TRANSLATE_NOOP("Builds", "Page Size"),
"format.pageMargins": QT_TRANSLATE_NOOP("Builds", "Page Margins"), "format.pageMargins": QT_TRANSLATE_NOOP("Builds", "Page Margins"),
"odt": QT_TRANSLATE_NOOP("Builds", "Document Options"), "doc": QT_TRANSLATE_NOOP("Builds", "Document Style"),
"odt.pageHeader": QT_TRANSLATE_NOOP("Builds", "Page Header"), "doc.pageHeader": QT_TRANSLATE_NOOP("Builds", "Page Header"),
"odt.pageCountOffset": QT_TRANSLATE_NOOP("Builds", "Page Counter Offset"), "doc.pageCountOffset": QT_TRANSLATE_NOOP("Builds", "Page Counter Offset"),
"odt.colorHeadings": QT_TRANSLATE_NOOP("Builds", "Add Colours to Headings"), "doc.colorHeadings": QT_TRANSLATE_NOOP("Builds", "Add Colours to Headings"),
"odt.scaleHeadings": QT_TRANSLATE_NOOP("Builds", "Increase Size of Headings"), "doc.scaleHeadings": QT_TRANSLATE_NOOP("Builds", "Increase Size of Headings"),
"odt.boldHeadings": QT_TRANSLATE_NOOP("Builds", "Bold Headings"), "doc.boldHeadings": QT_TRANSLATE_NOOP("Builds", "Bold Headings"),
"html": QT_TRANSLATE_NOOP("Builds", "HTML Options"), "html": QT_TRANSLATE_NOOP("Builds", "HTML Options"),
"html.addStyles": QT_TRANSLATE_NOOP("Builds", "Add CSS Styles"), "html.addStyles": QT_TRANSLATE_NOOP("Builds", "Add CSS Styles"),
"html.preserveTabs": QT_TRANSLATE_NOOP("Builds", "Preserve Tab Characters"), "html.preserveTabs": QT_TRANSLATE_NOOP("Builds", "Preserve Tab Characters"),
} }
RENAMED = {
"odt.addColours": "doc.addColours",
"odt.pageHeader": "doc.pageHeader",
"odt.pageCountOffset": "doc.pageCountOffset",
}
class FilterMode(Enum): class FilterMode(Enum):
"""The decision reason for an item in a filtered project.""" """The decision reason for an item in a filtered project."""
@@ -490,7 +496,7 @@ class BuildSettings:
self._settings = {k: v[1] for k, v in SETTINGS_TEMPLATE.items()} self._settings = {k: v[1] for k, v in SETTINGS_TEMPLATE.items()}
if isinstance(settings, dict): if isinstance(settings, dict):
for key, value in settings.items(): for key, value in settings.items():
self.setValue(key, value) self.setValue(RENAMED.get(key, key), value)
self._changed = False self._changed = False
+5 -5
View File
@@ -292,9 +292,9 @@ class NWBuildDocument:
self._build.getBool("format.indentFirstPar"), self._build.getBool("format.indentFirstPar"),
) )
bldObj.setHeadingStyles( bldObj.setHeadingStyles(
self._build.getBool("odt.colorHeadings"), self._build.getBool("doc.colorHeadings"),
self._build.getBool("odt.scaleHeadings"), self._build.getBool("doc.scaleHeadings"),
self._build.getBool("odt.boldHeadings"), self._build.getBool("doc.boldHeadings"),
) )
bldObj.setTitleMargins( bldObj.setTitleMargins(
@@ -339,8 +339,8 @@ class NWBuildDocument:
if isinstance(bldObj, (ToOdt, ToDocX)): if isinstance(bldObj, (ToOdt, ToDocX)):
bldObj.setLanguage(self._project.data.language) bldObj.setLanguage(self._project.data.language)
bldObj.setHeaderFormat( bldObj.setHeaderFormat(
self._build.getStr("odt.pageHeader"), self._build.getStr("doc.pageHeader"),
self._build.getInt("odt.pageCountOffset"), self._build.getInt("doc.pageCountOffset"),
) )
if isinstance(bldObj, (ToOdt, ToDocX, ToQTextDocument)): if isinstance(bldObj, (ToOdt, ToDocX, ToQTextDocument)):
+5 -5
View File
@@ -837,11 +837,11 @@ class ToDocX(Tokenizer):
xmlSubElem(xPPr, _wTag("jc"), attrib={_wTag("val"): "right"}) xmlSubElem(xPPr, _wTag("jc"), attrib={_wTag("val"): "right"})
xmlSubElem(xPPr, _wTag("rPr")) xmlSubElem(xPPr, _wTag("rPr"))
pre, page, post = self._headerFormat.partition(nwHeadFmt.ODT_PAGE) pre, page, post = self._headerFormat.partition(nwHeadFmt.DOC_PAGE)
pre = pre.replace(nwHeadFmt.ODT_PROJECT, self._project.data.name) pre = pre.replace(nwHeadFmt.DOC_PROJECT, self._project.data.name)
pre = pre.replace(nwHeadFmt.ODT_AUTHOR, self._project.data.author) pre = pre.replace(nwHeadFmt.DOC_AUTHOR, self._project.data.author)
post = post.replace(nwHeadFmt.ODT_PROJECT, self._project.data.name) post = post.replace(nwHeadFmt.DOC_PROJECT, self._project.data.name)
post = post.replace(nwHeadFmt.ODT_AUTHOR, self._project.data.author) post = post.replace(nwHeadFmt.DOC_AUTHOR, self._project.data.author)
xSpace = _mkTag("xml", "space") xSpace = _mkTag("xml", "space")
wFldCT = _wTag("fldCharType") wFldCT = _wTag("fldCharType")
+5 -5
View File
@@ -1076,12 +1076,12 @@ class ToOdt(Tokenizer):
# Standard Page Header # Standard Page Header
if self._headerFormat: if self._headerFormat:
pre, page, post = self._headerFormat.partition(nwHeadFmt.ODT_PAGE) pre, page, post = self._headerFormat.partition(nwHeadFmt.DOC_PAGE)
pre = pre.replace(nwHeadFmt.ODT_PROJECT, self._project.data.name) pre = pre.replace(nwHeadFmt.DOC_PROJECT, self._project.data.name)
pre = pre.replace(nwHeadFmt.ODT_AUTHOR, self._project.data.author) pre = pre.replace(nwHeadFmt.DOC_AUTHOR, self._project.data.author)
post = post.replace(nwHeadFmt.ODT_PROJECT, self._project.data.name) post = post.replace(nwHeadFmt.DOC_PROJECT, self._project.data.name)
post = post.replace(nwHeadFmt.ODT_AUTHOR, self._project.data.author) post = post.replace(nwHeadFmt.DOC_AUTHOR, self._project.data.author)
xHead = ET.SubElement(xPage, _mkTag("style", "header")) xHead = ET.SubElement(xPage, _mkTag("style", "header"))
xPar = ET.SubElement(xHead, _mkTag("text", "p"), attrib={ xPar = ET.SubElement(xHead, _mkTag("text", "p"), attrib={
+20 -20
View File
@@ -1226,7 +1226,7 @@ class _FormattingTab(NScrollableForm):
# Open Document # Open Document
# ============= # =============
title = self._build.getLabel("odt") title = self._build.getLabel("doc")
section += 1 section += 1
self._sidebar.addButton(title, section) self._sidebar.addButton(title, section)
self.addGroupLabel(title, section) self.addGroupLabel(title, section)
@@ -1237,7 +1237,7 @@ class _FormattingTab(NScrollableForm):
self.btnPageHeader = NIconToolButton(self, iSz, "revert") self.btnPageHeader = NIconToolButton(self, iSz, "revert")
self.btnPageHeader.clicked.connect(self._resetPageHeader) self.btnPageHeader.clicked.connect(self._resetPageHeader)
self.addRow( self.addRow(
self._build.getLabel("odt.pageHeader"), self.odtPageHeader, self._build.getLabel("doc.pageHeader"), self.odtPageHeader,
button=self.btnPageHeader, stretch=(1, 1) button=self.btnPageHeader, stretch=(1, 1)
) )
@@ -1246,16 +1246,16 @@ class _FormattingTab(NScrollableForm):
self.odtPageCountOffset.setMaximum(999) self.odtPageCountOffset.setMaximum(999)
self.odtPageCountOffset.setSingleStep(1) self.odtPageCountOffset.setSingleStep(1)
self.odtPageCountOffset.setMinimumWidth(spW) self.odtPageCountOffset.setMinimumWidth(spW)
self.addRow(self._build.getLabel("odt.pageCountOffset"), self.odtPageCountOffset) self.addRow(self._build.getLabel("doc.pageCountOffset"), self.odtPageCountOffset)
# Headings # Headings
self.colorHeadings = NSwitch(self, height=iPx) self.colorHeadings = NSwitch(self, height=iPx)
self.scaleHeadings = NSwitch(self, height=iPx) self.scaleHeadings = NSwitch(self, height=iPx)
self.boldHeadings = NSwitch(self, height=iPx) self.boldHeadings = NSwitch(self, height=iPx)
self.addRow(self._build.getLabel("odt.colorHeadings"), self.colorHeadings) self.addRow(self._build.getLabel("doc.colorHeadings"), self.colorHeadings)
self.addRow(self._build.getLabel("odt.scaleHeadings"), self.scaleHeadings) self.addRow(self._build.getLabel("doc.scaleHeadings"), self.scaleHeadings)
self.addRow(self._build.getLabel("odt.boldHeadings"), self.boldHeadings) self.addRow(self._build.getLabel("doc.boldHeadings"), self.boldHeadings)
# HTML Document # HTML Document
# ============= # =============
@@ -1356,14 +1356,14 @@ class _FormattingTab(NScrollableForm):
self.pageUnit.currentIndexChanged.connect(self._changeUnit) self.pageUnit.currentIndexChanged.connect(self._changeUnit)
self.pageSize.currentIndexChanged.connect(self._changePageSize) self.pageSize.currentIndexChanged.connect(self._changePageSize)
# ODT Document # Document
# ============ # ========
self.colorHeadings.setChecked(self._build.getBool("odt.colorHeadings")) self.colorHeadings.setChecked(self._build.getBool("doc.colorHeadings"))
self.scaleHeadings.setChecked(self._build.getBool("odt.scaleHeadings")) self.scaleHeadings.setChecked(self._build.getBool("doc.scaleHeadings"))
self.boldHeadings.setChecked(self._build.getBool("odt.boldHeadings")) self.boldHeadings.setChecked(self._build.getBool("doc.boldHeadings"))
self.odtPageHeader.setText(self._build.getStr("odt.pageHeader")) self.odtPageHeader.setText(self._build.getStr("doc.pageHeader"))
self.odtPageCountOffset.setValue(self._build.getInt("odt.pageCountOffset")) self.odtPageCountOffset.setValue(self._build.getInt("doc.pageCountOffset"))
self.odtPageHeader.setCursorPosition(0) self.odtPageHeader.setCursorPosition(0)
# HTML Document # HTML Document
@@ -1426,12 +1426,12 @@ class _FormattingTab(NScrollableForm):
self._build.setValue("format.leftMargin", self.leftMargin.value()) self._build.setValue("format.leftMargin", self.leftMargin.value())
self._build.setValue("format.rightMargin", self.rightMargin.value()) self._build.setValue("format.rightMargin", self.rightMargin.value())
# ODT Document # Documents
self._build.setValue("odt.colorHeadings", self.colorHeadings.isChecked()) self._build.setValue("doc.colorHeadings", self.colorHeadings.isChecked())
self._build.setValue("odt.scaleHeadings", self.scaleHeadings.isChecked()) self._build.setValue("doc.scaleHeadings", self.scaleHeadings.isChecked())
self._build.setValue("odt.boldHeadings", self.boldHeadings.isChecked()) self._build.setValue("doc.boldHeadings", self.boldHeadings.isChecked())
self._build.setValue("odt.pageHeader", self.odtPageHeader.text()) self._build.setValue("doc.pageHeader", self.odtPageHeader.text())
self._build.setValue("odt.pageCountOffset", self.odtPageCountOffset.value()) self._build.setValue("doc.pageCountOffset", self.odtPageCountOffset.value())
# HTML Document # HTML Document
self._build.setValue("html.addStyles", self.htmlAddStyles.isChecked()) self._build.setValue("html.addStyles", self.htmlAddStyles.isChecked())
@@ -1537,7 +1537,7 @@ class _FormattingTab(NScrollableForm):
def _resetPageHeader(self) -> None: def _resetPageHeader(self) -> None:
"""Reset the ODT header format to default.""" """Reset the ODT header format to default."""
self.odtPageHeader.setText(nwHeadFmt.ODT_AUTO) self.odtPageHeader.setText(nwHeadFmt.DOC_AUTO)
self.odtPageHeader.setCursorPosition(0) self.odtPageHeader.setCursorPosition(0)
return return
+1 -1
View File
@@ -148,7 +148,7 @@ def testCoreBuildSettings_BuildValues():
build = BuildSettings() build = BuildSettings()
strSetting = "headings.fmtPart" strSetting = "headings.fmtPart"
intSetting = "odt.pageCountOffset" intSetting = "doc.pageCountOffset"
boolSetting = "filter.includeNovel" boolSetting = "filter.includeNovel"
floatSetting = "format.lineHeight" floatSetting = "format.lineHeight"
+1 -1
View File
@@ -66,7 +66,7 @@ BUILD_CONF = {
"format.stripUnicode": False, "format.stripUnicode": False,
"format.replaceTabs": True, "format.replaceTabs": True,
"format.firstLineIndent": True, "format.firstLineIndent": True,
"odt.colorHeadings": True, "doc.colorHeadings": True,
"html.addStyles": True, "html.addStyles": True,
}, },
"content": { "content": {
+2 -2
View File
@@ -497,7 +497,7 @@ def testFmtToDocX_SaveDocument(mockGUI, prjLipsum, fncPath, tstPaths):
project = NWProject() project = NWProject()
project.openProject(prjLipsum) project.openProject(prjLipsum)
pageHeader = f"Page {nwHeadFmt.ODT_PAGE} - {nwHeadFmt.ODT_PROJECT} ({nwHeadFmt.ODT_AUTHOR})" pageHeader = f"Page {nwHeadFmt.DOC_PAGE} - {nwHeadFmt.DOC_PROJECT} ({nwHeadFmt.DOC_AUTHOR})"
build = BuildSettings() build = BuildSettings()
build.setValue("filter.includeNovel", True) build.setValue("filter.includeNovel", True)
@@ -508,7 +508,7 @@ def testFmtToDocX_SaveDocument(mockGUI, prjLipsum, fncPath, tstPaths):
build.setValue("text.includeKeywords", True) build.setValue("text.includeKeywords", True)
build.setValue("format.textFont", "Source Sans Pro,12") build.setValue("format.textFont", "Source Sans Pro,12")
build.setValue("format.firstLineIndent", True) build.setValue("format.firstLineIndent", True)
build.setValue("odt.pageHeader", pageHeader) build.setValue("doc.pageHeader", pageHeader)
docBuild = NWBuildDocument(project, build) docBuild = NWBuildDocument(project, build)
docBuild.queueAll() docBuild.queueAll()
+3 -3
View File
@@ -772,8 +772,8 @@ def testFmtToOdt_SaveFlat(mockGUI, fncPath, tstPaths):
assert odt._dLanguage == "" assert odt._dLanguage == ""
odt.setLanguage("nb_NO") odt.setLanguage("nb_NO")
assert odt._dLanguage == "nb" assert odt._dLanguage == "nb"
odt.setHeaderFormat(nwHeadFmt.ODT_AUTO, 1) odt.setHeaderFormat(nwHeadFmt.DOC_AUTO, 1)
assert odt._headerFormat == nwHeadFmt.ODT_AUTO assert odt._headerFormat == nwHeadFmt.DOC_AUTO
odt.setFirstLineIndent(True, 1.4, False) odt.setFirstLineIndent(True, 1.4, False)
assert odt._firstIndent is True assert odt._firstIndent is True
assert odt._fTextIndent == "0.499cm" assert odt._fTextIndent == "0.499cm"
@@ -822,7 +822,7 @@ def testFmtToOdt_SaveFull(mockGUI, fncPath, tstPaths):
odt._isNovel = True odt._isNovel = True
# Set a format without page number # Set a format without page number
odt.setHeaderFormat(f"{nwHeadFmt.ODT_PROJECT} - {nwHeadFmt.ODT_AUTHOR}", 0) odt.setHeaderFormat(f"{nwHeadFmt.DOC_PROJECT} - {nwHeadFmt.DOC_AUTHOR}", 0)
odt._text = ( odt._text = (
"## Chapter One\n\n" "## Chapter One\n\n"
+12 -12
View File
@@ -707,11 +707,11 @@ def testToolBuildSettings_FormatOutput(qtbot, nwGUI):
"""Test the format-specific settings.""" """Test the format-specific settings."""
build = BuildSettings() build = BuildSettings()
build.setValue("odt.pageHeader", nwHeadFmt.ODT_AUTO) build.setValue("doc.pageHeader", nwHeadFmt.DOC_AUTO)
build.setValue("odt.pageCountOffset", 0) build.setValue("doc.pageCountOffset", 0)
build.setValue("odt.colorHeadings", True) build.setValue("doc.colorHeadings", True)
build.setValue("odt.scaleHeadings", True) build.setValue("doc.scaleHeadings", True)
build.setValue("odt.boldHeadings", True) build.setValue("doc.boldHeadings", True)
build.setValue("html.addStyles", False) build.setValue("html.addStyles", False)
build.setValue("html.preserveTabs", False) build.setValue("html.preserveTabs", False)
@@ -726,7 +726,7 @@ def testToolBuildSettings_FormatOutput(qtbot, nwGUI):
assert bSettings.toolStack.currentWidget() is fmtTab assert bSettings.toolStack.currentWidget() is fmtTab
# Check initial values # Check initial values
assert fmtTab.odtPageHeader.text() == nwHeadFmt.ODT_AUTO assert fmtTab.odtPageHeader.text() == nwHeadFmt.DOC_AUTO
assert fmtTab.odtPageCountOffset.value() == 0 assert fmtTab.odtPageCountOffset.value() == 0
assert fmtTab.colorHeadings.isChecked() is True assert fmtTab.colorHeadings.isChecked() is True
assert fmtTab.scaleHeadings.isChecked() is True assert fmtTab.scaleHeadings.isChecked() is True
@@ -749,18 +749,18 @@ def testToolBuildSettings_FormatOutput(qtbot, nwGUI):
# Save values # Save values
fmtTab.saveContent() fmtTab.saveContent()
assert build.getStr("odt.pageHeader") == "Stuff" assert build.getStr("doc.pageHeader") == "Stuff"
assert build.getInt("odt.pageCountOffset") == 1 assert build.getInt("doc.pageCountOffset") == 1
assert build.getBool("odt.colorHeadings") is False assert build.getBool("doc.colorHeadings") is False
assert build.getBool("odt.scaleHeadings") is False assert build.getBool("doc.scaleHeadings") is False
assert build.getBool("odt.boldHeadings") is False assert build.getBool("doc.boldHeadings") is False
assert build.getBool("html.addStyles") is True assert build.getBool("html.addStyles") is True
assert build.getBool("html.preserveTabs") is True assert build.getBool("html.preserveTabs") is True
# Reset header format # Reset header format
fmtTab.btnPageHeader.click() fmtTab.btnPageHeader.click()
assert fmtTab.odtPageHeader.text() == nwHeadFmt.ODT_AUTO assert fmtTab.odtPageHeader.text() == nwHeadFmt.DOC_AUTO
# Finish # Finish
bSettings._dialogButtonClicked(bSettings.buttonBox.button(QtDialogClose)) bSettings._dialogButtonClicked(bSettings.buttonBox.button(QtDialogClose))