Add text margin settings

This commit is contained in:
Veronica Berglyd Olsen
2024-10-17 21:57:04 +02:00
parent bffab79ba7
commit 912198cc40
5 changed files with 189 additions and 9 deletions
+130 -4
View File
@@ -38,7 +38,7 @@ from PyQt5.QtWidgets import (
from novelwriter import CONFIG, SHARED
from novelwriter.common import describeFont
from novelwriter.constants import nwHeadFmt, nwKeyWords, nwLabels, trConst
from novelwriter.constants import nwHeaders, nwHeadFmt, nwKeyWords, nwLabels, trConst
from novelwriter.core.buildsettings import BuildSettings, FilterMode
from novelwriter.extensions.configlayout import (
NColourLabel, NFixedPage, NScrollableForm, NScrollablePage
@@ -1076,6 +1076,98 @@ class _FormattingTab(NScrollableForm):
self.addRow(self._build.getLabel("format.firstIndentWidth"), self.indentWidth, unit="em")
self.addRow(self._build.getLabel("format.indentFirstPar"), self.indentFirstPar)
# Text Margins
# ============
title = self._build.getLabel("format.grpMargins")
section += 1
self._sidebar.addButton(title, section)
self.addGroupLabel(title, section)
# Title
self.titleMarginT = NDoubleSpinBox(self)
self.titleMarginT.setFixedWidth(dbW)
self.titleMarginB = NDoubleSpinBox(self)
self.titleMarginB.setFixedWidth(dbW)
self.addRow(
trConst(nwHeaders.H_LABEL["H0"]),
[trT, self.titleMarginT, 6, trB, self.titleMarginB],
)
# Heading 1
self.h1MarginT = NDoubleSpinBox(self)
self.h1MarginT.setFixedWidth(dbW)
self.h1MarginB = NDoubleSpinBox(self)
self.h1MarginB.setFixedWidth(dbW)
self.addRow(
trConst(nwHeaders.H_LABEL["H1"]),
[trT, self.h1MarginT, 6, trB, self.h1MarginB],
)
# Heading 2
self.h2MarginT = NDoubleSpinBox(self)
self.h2MarginT.setFixedWidth(dbW)
self.h2MarginB = NDoubleSpinBox(self)
self.h2MarginB.setFixedWidth(dbW)
self.addRow(
trConst(nwHeaders.H_LABEL["H2"]),
[trT, self.h2MarginT, 6, trB, self.h2MarginB],
)
# Heading 3
self.h3MarginT = NDoubleSpinBox(self)
self.h3MarginT.setFixedWidth(dbW)
self.h3MarginB = NDoubleSpinBox(self)
self.h3MarginB.setFixedWidth(dbW)
self.addRow(
trConst(nwHeaders.H_LABEL["H3"]),
[trT, self.h3MarginT, 6, trB, self.h3MarginB],
)
# Heading 4
self.h4MarginT = NDoubleSpinBox(self)
self.h4MarginT.setFixedWidth(dbW)
self.h4MarginB = NDoubleSpinBox(self)
self.h4MarginB.setFixedWidth(dbW)
self.addRow(
trConst(nwHeaders.H_LABEL["H4"]),
[trT, self.h4MarginT, 6, trB, self.h4MarginB],
)
# Text
self.textMarginT = NDoubleSpinBox(self)
self.textMarginT.setFixedWidth(dbW)
self.textMarginB = NDoubleSpinBox(self)
self.textMarginB.setFixedWidth(dbW)
self.addRow(
self._build.getLabel("format.textMargin"),
[trT, self.textMarginT, 6, trB, self.textMarginB],
)
# Separator
self.sepMarginT = NDoubleSpinBox(self)
self.sepMarginT.setFixedWidth(dbW)
self.sepMarginB = NDoubleSpinBox(self)
self.sepMarginB.setFixedWidth(dbW)
self.addRow(
self._build.getLabel("format.sepMargin"),
[trT, self.sepMarginT, 6, trB, self.sepMarginB],
)
# Page Layout
# ===========
@@ -1106,7 +1198,7 @@ class _FormattingTab(NScrollableForm):
self.addRow(
self._build.getLabel("format.pageSize"),
[self.pageSize, 8, trW, self.pageWidth, trH, self.pageHeight],
[self.pageSize, 6, trW, self.pageWidth, 6, trH, self.pageHeight],
)
# Page Margins
@@ -1124,11 +1216,11 @@ class _FormattingTab(NScrollableForm):
self.addRow(
self._build.getLabel("format.pageMargins"),
[trT, self.topMargin, trB, self.bottomMargin],
[trT, self.topMargin, 6, trB, self.bottomMargin],
)
self.addRow(
"",
[trL, self.leftMargin, trR, self.rightMargin],
[trL, self.leftMargin, 6, trR, self.rightMargin],
)
# Open Document
@@ -1220,6 +1312,24 @@ class _FormattingTab(NScrollableForm):
self.indentWidth.setValue(self._build.getFloat("format.firstIndentWidth"))
self.indentFirstPar.setChecked(self._build.getBool("format.indentFirstPar"))
# Text Margins
# ============
self.titleMarginT.setValue(self._build.getFloat("format.titleMarginT"))
self.titleMarginB.setValue(self._build.getFloat("format.titleMarginB"))
self.h1MarginT.setValue(self._build.getFloat("format.h1MarginT"))
self.h1MarginB.setValue(self._build.getFloat("format.h1MarginB"))
self.h2MarginT.setValue(self._build.getFloat("format.h2MarginT"))
self.h2MarginB.setValue(self._build.getFloat("format.h2MarginB"))
self.h3MarginT.setValue(self._build.getFloat("format.h3MarginT"))
self.h3MarginB.setValue(self._build.getFloat("format.h3MarginB"))
self.h4MarginT.setValue(self._build.getFloat("format.h4MarginT"))
self.h4MarginB.setValue(self._build.getFloat("format.h4MarginB"))
self.textMarginT.setValue(self._build.getFloat("format.textMarginT"))
self.textMarginB.setValue(self._build.getFloat("format.textMarginB"))
self.sepMarginT.setValue(self._build.getFloat("format.sepMarginT"))
self.sepMarginB.setValue(self._build.getFloat("format.sepMarginB"))
# Page Layout
# ===========
@@ -1290,6 +1400,22 @@ class _FormattingTab(NScrollableForm):
self._build.setValue("format.firstIndentWidth", self.indentWidth.value())
self._build.setValue("format.indentFirstPar", self.indentFirstPar.isChecked())
# Text Margins
self._build.setValue("format.titleMarginT", self.titleMarginT.value())
self._build.setValue("format.titleMarginB", self.titleMarginB.value())
self._build.setValue("format.h1MarginT", self.h1MarginT.value())
self._build.setValue("format.h1MarginB", self.h1MarginB.value())
self._build.setValue("format.h2MarginT", self.h2MarginT.value())
self._build.setValue("format.h2MarginB", self.h2MarginB.value())
self._build.setValue("format.h3MarginT", self.h3MarginT.value())
self._build.setValue("format.h3MarginB", self.h3MarginB.value())
self._build.setValue("format.h4MarginT", self.h4MarginT.value())
self._build.setValue("format.h4MarginB", self.h4MarginB.value())
self._build.setValue("format.textMarginT", self.textMarginT.value())
self._build.setValue("format.textMarginB", self.textMarginB.value())
self._build.setValue("format.sepMarginT", self.sepMarginT.value())
self._build.setValue("format.sepMarginB", self.sepMarginB.value())
# Page Layout
self._build.setValue("format.pageUnit", str(self.pageUnit.currentData()))
self._build.setValue("format.pageSize", str(self.pageSize.currentData()))