Cleanup Build dialog and add line height to HTML
This commit is contained in:
+6
-4
@@ -333,10 +333,12 @@ class ToHtml(Tokenizer):
|
|||||||
|
|
||||||
textAlign = "justify" if self.doJustify else "left"
|
textAlign = "justify" if self.doJustify else "left"
|
||||||
|
|
||||||
theStyles.append("body {font-family: '%s'; font-size: %dpt}" % (
|
theStyles.append("body {font-family: '%s'; font-size: %dpt;}" % (
|
||||||
self.textFont, self.textSize)
|
self.textFont, self.textSize
|
||||||
)
|
))
|
||||||
theStyles.append("p {text-align: %s;}" % textAlign)
|
theStyles.append("p {text-align: %s; line-height: %d%%;}" % (
|
||||||
|
textAlign, round(100 * self.lineHeight)
|
||||||
|
))
|
||||||
theStyles.append("h1, h2 {color: rgb(66, 113, 174);}")
|
theStyles.append("h1, h2 {color: rgb(66, 113, 174);}")
|
||||||
theStyles.append("h3, h4 {color: rgb(50, 50, 50);}")
|
theStyles.append("h3, h4 {color: rgb(50, 50, 50);}")
|
||||||
theStyles.append("h1, h2, h3, h4 {page-break-after: avoid;}")
|
theStyles.append("h1, h2, h3, h4 {page-break-after: avoid;}")
|
||||||
|
|||||||
+18
-16
@@ -194,23 +194,25 @@ class ToOdt(Tokenizer):
|
|||||||
self._fSizeHead = f"{round(1.15 * self.textSize):d}pt"
|
self._fSizeHead = f"{round(1.15 * self.textSize):d}pt"
|
||||||
self._fSizeText = f"{self.textSize:d}pt"
|
self._fSizeText = f"{self.textSize:d}pt"
|
||||||
|
|
||||||
self._mTopTitle = self._emToCm(self.marginTitle[0])
|
mScale = self.lineHeight/1.15
|
||||||
self._mTopHead1 = self._emToCm(self.marginHead1[0])
|
|
||||||
self._mTopHead2 = self._emToCm(self.marginHead2[0])
|
|
||||||
self._mTopHead3 = self._emToCm(self.marginHead3[0])
|
|
||||||
self._mTopHead4 = self._emToCm(self.marginHead4[0])
|
|
||||||
self._mTopHead = self._emToCm(self.marginHead4[0])
|
|
||||||
self._mTopText = self._emToCm(self.marginText[0])
|
|
||||||
self._mTopMeta = self._emToCm(self.marginMeta[0])
|
|
||||||
|
|
||||||
self._mBotTitle = self._emToCm(self.marginTitle[1])
|
self._mTopTitle = self._emToCm(mScale * self.marginTitle[0])
|
||||||
self._mBotHead1 = self._emToCm(self.marginHead1[1])
|
self._mTopHead1 = self._emToCm(mScale * self.marginHead1[0])
|
||||||
self._mBotHead2 = self._emToCm(self.marginHead2[1])
|
self._mTopHead2 = self._emToCm(mScale * self.marginHead2[0])
|
||||||
self._mBotHead3 = self._emToCm(self.marginHead3[1])
|
self._mTopHead3 = self._emToCm(mScale * self.marginHead3[0])
|
||||||
self._mBotHead4 = self._emToCm(self.marginHead4[1])
|
self._mTopHead4 = self._emToCm(mScale * self.marginHead4[0])
|
||||||
self._mBotHead = self._emToCm(self.marginHead4[1])
|
self._mTopHead = self._emToCm(mScale * self.marginHead4[0])
|
||||||
self._mBotText = self._emToCm(self.marginText[1])
|
self._mTopText = self._emToCm(mScale * self.marginText[0])
|
||||||
self._mBotMeta = self._emToCm(self.marginMeta[1])
|
self._mTopMeta = self._emToCm(mScale * self.marginMeta[0])
|
||||||
|
|
||||||
|
self._mBotTitle = self._emToCm(mScale * self.marginTitle[1])
|
||||||
|
self._mBotHead1 = self._emToCm(mScale * self.marginHead1[1])
|
||||||
|
self._mBotHead2 = self._emToCm(mScale * self.marginHead2[1])
|
||||||
|
self._mBotHead3 = self._emToCm(mScale * self.marginHead3[1])
|
||||||
|
self._mBotHead4 = self._emToCm(mScale * self.marginHead4[1])
|
||||||
|
self._mBotHead = self._emToCm(mScale * self.marginHead4[1])
|
||||||
|
self._mBotText = self._emToCm(mScale * self.marginText[1])
|
||||||
|
self._mBotMeta = self._emToCm(mScale * self.marginMeta[1])
|
||||||
|
|
||||||
if self.colourHead:
|
if self.colourHead:
|
||||||
self._colHead12 = "#2a6099"
|
self._colHead12 = "#2a6099"
|
||||||
|
|||||||
+57
-42
@@ -93,6 +93,9 @@ class GuiBuildNovel(QDialog):
|
|||||||
|
|
||||||
self.docView = GuiBuildNovelDocView(self, self.theProject)
|
self.docView = GuiBuildNovelDocView(self, self.theProject)
|
||||||
|
|
||||||
|
hS = self.theTheme.fontPixelSize
|
||||||
|
wS = 2*hS
|
||||||
|
|
||||||
# Title Formats
|
# Title Formats
|
||||||
# =============
|
# =============
|
||||||
|
|
||||||
@@ -191,12 +194,12 @@ class GuiBuildNovel(QDialog):
|
|||||||
self.titleForm.setColumnStretch(0, 0)
|
self.titleForm.setColumnStretch(0, 0)
|
||||||
self.titleForm.setColumnStretch(1, 1)
|
self.titleForm.setColumnStretch(1, 1)
|
||||||
|
|
||||||
# Text Options
|
# Font Options
|
||||||
# =============
|
# ============
|
||||||
|
|
||||||
self.formatGroup = QGroupBox("Formatting Options", self)
|
self.fontGroup = QGroupBox("Font Options", self)
|
||||||
self.formatForm = QGridLayout(self)
|
self.fontForm = QGridLayout(self)
|
||||||
self.formatGroup.setLayout(self.formatForm)
|
self.fontGroup.setLayout(self.fontForm)
|
||||||
|
|
||||||
## Font Family
|
## Font Family
|
||||||
self.textFont = QLineEdit()
|
self.textFont = QLineEdit()
|
||||||
@@ -225,17 +228,7 @@ class GuiBuildNovel(QDialog):
|
|||||||
self.lineHeight.setSingleStep(0.05)
|
self.lineHeight.setSingleStep(0.05)
|
||||||
self.lineHeight.setDecimals(2)
|
self.lineHeight.setDecimals(2)
|
||||||
self.lineHeight.setValue(
|
self.lineHeight.setValue(
|
||||||
self.optState.getInt("GuiBuildNovel", "lineHeight", 1.15)
|
self.optState.getFloat("GuiBuildNovel", "lineHeight", 1.15)
|
||||||
)
|
|
||||||
|
|
||||||
self.justifyText = QSwitch()
|
|
||||||
self.justifyText.setChecked(
|
|
||||||
self.optState.getBool("GuiBuildNovel", "justifyText", False)
|
|
||||||
)
|
|
||||||
|
|
||||||
self.noStyling = QSwitch()
|
|
||||||
self.noStyling.setChecked(
|
|
||||||
self.optState.getBool("GuiBuildNovel", "noStyling", False)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Dummy box due to QGridView and QLineEdit expand bug
|
# Dummy box due to QGridView and QLineEdit expand bug
|
||||||
@@ -248,45 +241,66 @@ class GuiBuildNovel(QDialog):
|
|||||||
justifyLabel = QLabel("Justify text")
|
justifyLabel = QLabel("Justify text")
|
||||||
stylingLabel = QLabel("Disable styling")
|
stylingLabel = QLabel("Disable styling")
|
||||||
|
|
||||||
self.formatForm.addWidget(fontFamilyLabel, 0, 0, 1, 1, Qt.AlignLeft)
|
self.fontForm.addWidget(fontFamilyLabel, 0, 0, 1, 1, Qt.AlignLeft)
|
||||||
self.formatForm.addLayout(self.boxFont, 0, 1, 1, 1, Qt.AlignRight)
|
self.fontForm.addLayout(self.boxFont, 0, 1, 1, 1, Qt.AlignRight)
|
||||||
self.formatForm.addWidget(self.fontButton, 0, 2, 1, 1, Qt.AlignRight)
|
self.fontForm.addWidget(self.fontButton, 0, 2, 1, 1, Qt.AlignRight)
|
||||||
self.formatForm.addWidget(fontSizeLabel, 1, 0, 1, 1, Qt.AlignLeft)
|
self.fontForm.addWidget(fontSizeLabel, 1, 0, 1, 1, Qt.AlignLeft)
|
||||||
self.formatForm.addWidget(self.textSize, 1, 1, 1, 2, Qt.AlignRight)
|
self.fontForm.addWidget(self.textSize, 1, 1, 1, 2, Qt.AlignRight)
|
||||||
self.formatForm.addWidget(lineHeightLabel, 2, 0, 1, 1, Qt.AlignLeft)
|
self.fontForm.addWidget(lineHeightLabel, 2, 0, 1, 1, Qt.AlignLeft)
|
||||||
self.formatForm.addWidget(self.lineHeight, 2, 1, 1, 2, Qt.AlignRight)
|
self.fontForm.addWidget(self.lineHeight, 2, 1, 1, 2, Qt.AlignRight)
|
||||||
self.formatForm.addWidget(justifyLabel, 3, 0, 1, 1, Qt.AlignLeft)
|
|
||||||
self.formatForm.addWidget(self.justifyText, 3, 1, 1, 2, Qt.AlignRight)
|
|
||||||
self.formatForm.addWidget(stylingLabel, 4, 0, 1, 1, Qt.AlignLeft)
|
|
||||||
self.formatForm.addWidget(self.noStyling, 4, 1, 1, 2, Qt.AlignRight)
|
|
||||||
|
|
||||||
self.formatForm.setColumnStretch(0, 0)
|
self.fontForm.setColumnStretch(0, 0)
|
||||||
self.formatForm.setColumnStretch(1, 1)
|
self.fontForm.setColumnStretch(1, 1)
|
||||||
self.formatForm.setColumnStretch(2, 0)
|
self.fontForm.setColumnStretch(2, 0)
|
||||||
|
|
||||||
# Include Switches
|
# Styling Options
|
||||||
# ================
|
# ===============
|
||||||
|
|
||||||
self.textGroup = QGroupBox("Text Options", self)
|
self.styleGroup = QGroupBox("Styling Options", self)
|
||||||
|
self.styleForm = QGridLayout(self)
|
||||||
|
self.styleGroup.setLayout(self.styleForm)
|
||||||
|
|
||||||
|
self.justifyText = QSwitch(width=wS, height=hS)
|
||||||
|
self.justifyText.setChecked(
|
||||||
|
self.optState.getBool("GuiBuildNovel", "justifyText", False)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.noStyling = QSwitch(width=wS, height=hS)
|
||||||
|
self.noStyling.setChecked(
|
||||||
|
self.optState.getBool("GuiBuildNovel", "noStyling", False)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.styleForm.addWidget(justifyLabel, 1, 0, 1, 1, Qt.AlignLeft)
|
||||||
|
self.styleForm.addWidget(self.justifyText, 1, 1, 1, 2, Qt.AlignRight)
|
||||||
|
self.styleForm.addWidget(stylingLabel, 2, 0, 1, 1, Qt.AlignLeft)
|
||||||
|
self.styleForm.addWidget(self.noStyling, 2, 1, 1, 2, Qt.AlignRight)
|
||||||
|
|
||||||
|
self.styleForm.setColumnStretch(0, 0)
|
||||||
|
self.styleForm.setColumnStretch(1, 1)
|
||||||
|
|
||||||
|
# Include Options
|
||||||
|
# ===============
|
||||||
|
|
||||||
|
self.textGroup = QGroupBox("Include Options", self)
|
||||||
self.textForm = QGridLayout(self)
|
self.textForm = QGridLayout(self)
|
||||||
self.textGroup.setLayout(self.textForm)
|
self.textGroup.setLayout(self.textForm)
|
||||||
|
|
||||||
self.includeSynopsis = QSwitch()
|
self.includeSynopsis = QSwitch(width=wS, height=hS)
|
||||||
self.includeSynopsis.setChecked(
|
self.includeSynopsis.setChecked(
|
||||||
self.optState.getBool("GuiBuildNovel", "incSynopsis", False)
|
self.optState.getBool("GuiBuildNovel", "incSynopsis", False)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.includeComments = QSwitch()
|
self.includeComments = QSwitch(width=wS, height=hS)
|
||||||
self.includeComments.setChecked(
|
self.includeComments.setChecked(
|
||||||
self.optState.getBool("GuiBuildNovel", "incComments", False)
|
self.optState.getBool("GuiBuildNovel", "incComments", False)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.includeKeywords = QSwitch()
|
self.includeKeywords = QSwitch(width=wS, height=hS)
|
||||||
self.includeKeywords.setChecked(
|
self.includeKeywords.setChecked(
|
||||||
self.optState.getBool("GuiBuildNovel", "incKeywords", False)
|
self.optState.getBool("GuiBuildNovel", "incKeywords", False)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.includeBody = QSwitch()
|
self.includeBody = QSwitch(width=wS, height=hS)
|
||||||
self.includeBody.setChecked(
|
self.includeBody.setChecked(
|
||||||
self.optState.getBool("GuiBuildNovel", "incBodyText", True)
|
self.optState.getBool("GuiBuildNovel", "incBodyText", True)
|
||||||
)
|
)
|
||||||
@@ -315,7 +329,7 @@ class GuiBuildNovel(QDialog):
|
|||||||
self.fileForm = QGridLayout(self)
|
self.fileForm = QGridLayout(self)
|
||||||
self.fileGroup.setLayout(self.fileForm)
|
self.fileGroup.setLayout(self.fileForm)
|
||||||
|
|
||||||
self.novelFiles = QSwitch()
|
self.novelFiles = QSwitch(width=wS, height=hS)
|
||||||
self.novelFiles.setToolTip(
|
self.novelFiles.setToolTip(
|
||||||
"Include files with layouts 'Book', 'Page', 'Partition', "
|
"Include files with layouts 'Book', 'Page', 'Partition', "
|
||||||
"'Chapter', 'Unnumbered', and 'Scene'."
|
"'Chapter', 'Unnumbered', and 'Scene'."
|
||||||
@@ -324,13 +338,13 @@ class GuiBuildNovel(QDialog):
|
|||||||
self.optState.getBool("GuiBuildNovel", "addNovel", True)
|
self.optState.getBool("GuiBuildNovel", "addNovel", True)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.noteFiles = QSwitch()
|
self.noteFiles = QSwitch(width=wS, height=hS)
|
||||||
self.noteFiles.setToolTip("Include files with layout 'Note'.")
|
self.noteFiles.setToolTip("Include files with layout 'Note'.")
|
||||||
self.noteFiles.setChecked(
|
self.noteFiles.setChecked(
|
||||||
self.optState.getBool("GuiBuildNovel", "addNotes", False)
|
self.optState.getBool("GuiBuildNovel", "addNotes", False)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.ignoreFlag = QSwitch()
|
self.ignoreFlag = QSwitch(width=wS, height=hS)
|
||||||
self.ignoreFlag.setToolTip(
|
self.ignoreFlag.setToolTip(
|
||||||
"Ignore the 'Include when building project' setting and include "
|
"Ignore the 'Include when building project' setting and include "
|
||||||
"all files in the output."
|
"all files in the output."
|
||||||
@@ -360,7 +374,7 @@ class GuiBuildNovel(QDialog):
|
|||||||
self.exportForm = QGridLayout(self)
|
self.exportForm = QGridLayout(self)
|
||||||
self.exportGroup.setLayout(self.exportForm)
|
self.exportGroup.setLayout(self.exportForm)
|
||||||
|
|
||||||
self.replaceTabs = QSwitch()
|
self.replaceTabs = QSwitch(width=wS, height=hS)
|
||||||
self.replaceTabs.setChecked(
|
self.replaceTabs.setChecked(
|
||||||
self.optState.getBool("GuiBuildNovel", "replaceTabs", False)
|
self.optState.getBool("GuiBuildNovel", "replaceTabs", False)
|
||||||
)
|
)
|
||||||
@@ -458,7 +472,8 @@ class GuiBuildNovel(QDialog):
|
|||||||
# The Tool Box
|
# The Tool Box
|
||||||
self.toolsBox = QVBoxLayout()
|
self.toolsBox = QVBoxLayout()
|
||||||
self.toolsBox.addWidget(self.titleGroup)
|
self.toolsBox.addWidget(self.titleGroup)
|
||||||
self.toolsBox.addWidget(self.formatGroup)
|
self.toolsBox.addWidget(self.fontGroup)
|
||||||
|
self.toolsBox.addWidget(self.styleGroup)
|
||||||
self.toolsBox.addWidget(self.textGroup)
|
self.toolsBox.addWidget(self.textGroup)
|
||||||
self.toolsBox.addWidget(self.fileGroup)
|
self.toolsBox.addWidget(self.fileGroup)
|
||||||
self.toolsBox.addWidget(self.exportGroup)
|
self.toolsBox.addWidget(self.exportGroup)
|
||||||
|
|||||||
Reference in New Issue
Block a user