Connect line height to Build dialog

This commit is contained in:
Veronica K. B. Olsen
2021-02-10 10:38:22 +01:00
parent f098aeb622
commit 78a58617c1
2 changed files with 79 additions and 63 deletions
+1
View File
@@ -73,6 +73,7 @@ class OptionState():
"excludeBody", "excludeBody",
"textFont", "textFont",
"textSize", "textSize",
"lineHeight",
"noStyling", "noStyling",
"incSynopsis", "incSynopsis",
"incComments", "incComments",
+78 -63
View File
@@ -41,7 +41,7 @@ from PyQt5.QtWidgets import (
qApp, QDialog, QVBoxLayout, QHBoxLayout, QTextBrowser, QPushButton, QLabel, qApp, QDialog, QVBoxLayout, QHBoxLayout, QTextBrowser, QPushButton, QLabel,
QLineEdit, QGroupBox, QGridLayout, QProgressBar, QMenu, QAction, QLineEdit, QGroupBox, QGridLayout, QProgressBar, QMenu, QAction,
QFileDialog, QFontDialog, QSpinBox, QScrollArea, QSplitter, QWidget, QFileDialog, QFontDialog, QSpinBox, QScrollArea, QSplitter, QWidget,
QSizePolicy QSizePolicy, QDoubleSpinBox
) )
from nw.common import fuzzyTime, makeFileNameSafe from nw.common import fuzzyTime, makeFileNameSafe
@@ -164,23 +164,29 @@ class GuiBuildNovel(QDialog):
self.boxTitle.addWidget(self.fmtTitle) self.boxTitle.addWidget(self.fmtTitle)
self.boxChapter = QHBoxLayout() self.boxChapter = QHBoxLayout()
self.boxChapter.addWidget(self.fmtChapter) self.boxChapter.addWidget(self.fmtChapter)
self.boxUnnumbered = QHBoxLayout() self.boxUnnumb = QHBoxLayout()
self.boxUnnumbered.addWidget(self.fmtUnnumbered) self.boxUnnumb.addWidget(self.fmtUnnumbered)
self.boxScene = QHBoxLayout() self.boxScene = QHBoxLayout()
self.boxScene.addWidget(self.fmtScene) self.boxScene.addWidget(self.fmtScene)
self.boxSection = QHBoxLayout() self.boxSection = QHBoxLayout()
self.boxSection.addWidget(self.fmtSection) self.boxSection.addWidget(self.fmtSection)
self.titleForm.addWidget(QLabel("Title"), 0, 0, 1, 1, Qt.AlignLeft) titleLabel = QLabel("Title")
self.titleForm.addLayout(self.boxTitle, 0, 1, 1, 1, Qt.AlignRight) chapterLabel = QLabel("Chapter")
self.titleForm.addWidget(QLabel("Chapter"), 1, 0, 1, 1, Qt.AlignLeft) unnumbLabel = QLabel("Unnumbered")
self.titleForm.addLayout(self.boxChapter, 1, 1, 1, 1, Qt.AlignRight) sceneLabel = QLabel("Scene")
self.titleForm.addWidget(QLabel("Unnumbered"), 2, 0, 1, 1, Qt.AlignLeft) sectionLabel = QLabel("Section")
self.titleForm.addLayout(self.boxUnnumbered, 2, 1, 1, 1, Qt.AlignRight)
self.titleForm.addWidget(QLabel("Scene"), 3, 0, 1, 1, Qt.AlignLeft) self.titleForm.addWidget(titleLabel, 0, 0, 1, 1, Qt.AlignLeft)
self.titleForm.addLayout(self.boxScene, 3, 1, 1, 1, Qt.AlignRight) self.titleForm.addLayout(self.boxTitle, 0, 1, 1, 1, Qt.AlignRight)
self.titleForm.addWidget(QLabel("Section"), 4, 0, 1, 1, Qt.AlignLeft) self.titleForm.addWidget(chapterLabel, 1, 0, 1, 1, Qt.AlignLeft)
self.titleForm.addLayout(self.boxSection, 4, 1, 1, 1, Qt.AlignRight) self.titleForm.addLayout(self.boxChapter, 1, 1, 1, 1, Qt.AlignRight)
self.titleForm.addWidget(unnumbLabel, 2, 0, 1, 1, Qt.AlignLeft)
self.titleForm.addLayout(self.boxUnnumb, 2, 1, 1, 1, Qt.AlignRight)
self.titleForm.addWidget(sceneLabel, 3, 0, 1, 1, Qt.AlignLeft)
self.titleForm.addLayout(self.boxScene, 3, 1, 1, 1, Qt.AlignRight)
self.titleForm.addWidget(sectionLabel, 4, 0, 1, 1, Qt.AlignLeft)
self.titleForm.addLayout(self.boxSection, 4, 1, 1, 1, Qt.AlignRight)
self.titleForm.setColumnStretch(0, 0) self.titleForm.setColumnStretch(0, 0)
self.titleForm.setColumnStretch(1, 1) self.titleForm.setColumnStretch(1, 1)
@@ -204,29 +210,30 @@ class GuiBuildNovel(QDialog):
self.fontButton.clicked.connect(self._selectFont) self.fontButton.clicked.connect(self._selectFont)
self.textSize = QSpinBox(self) self.textSize = QSpinBox(self)
self.textSize.setFixedWidth(5*self.theTheme.textNWidth) self.textSize.setFixedWidth(6*self.theTheme.textNWidth)
self.textSize.setMinimum(6) self.textSize.setMinimum(6)
self.textSize.setMaximum(72) self.textSize.setMaximum(72)
self.textSize.setSingleStep(1) self.textSize.setSingleStep(1)
self.textSize.setToolTip(
"The size is used for PDF and printing. Other formats have no size set."
)
self.textSize.setValue( self.textSize.setValue(
self.optState.getInt("GuiBuildNovel", "textSize", self.mainConf.textSize) self.optState.getInt("GuiBuildNovel", "textSize", self.mainConf.textSize)
) )
self.justifyText = QSwitch() self.lineHeight = QDoubleSpinBox(self)
self.justifyText.setToolTip( self.lineHeight.setFixedWidth(6*self.theTheme.textNWidth)
"Applies to PDF, printing, HTML, and Open Document exports." self.lineHeight.setMinimum(0.8)
self.lineHeight.setMaximum(3.0)
self.lineHeight.setSingleStep(0.05)
self.lineHeight.setDecimals(2)
self.lineHeight.setValue(
self.optState.getInt("GuiBuildNovel", "lineHeight", 1.15)
) )
self.justifyText = QSwitch()
self.justifyText.setChecked( self.justifyText.setChecked(
self.optState.getBool("GuiBuildNovel", "justifyText", False) self.optState.getBool("GuiBuildNovel", "justifyText", False)
) )
self.noStyling = QSwitch() self.noStyling = QSwitch()
self.noStyling.setToolTip(
"Disable all styling of the text."
)
self.noStyling.setChecked( self.noStyling.setChecked(
self.optState.getBool("GuiBuildNovel", "noStyling", False) self.optState.getBool("GuiBuildNovel", "noStyling", False)
) )
@@ -235,15 +242,23 @@ class GuiBuildNovel(QDialog):
self.boxFont = QHBoxLayout() self.boxFont = QHBoxLayout()
self.boxFont.addWidget(self.textFont) self.boxFont.addWidget(self.textFont)
self.formatForm.addWidget(QLabel("Font family"), 0, 0, 1, 1, Qt.AlignLeft) fontFamilyLabel = QLabel("Font family")
self.formatForm.addLayout(self.boxFont, 0, 1, 1, 1, Qt.AlignRight) fontSizeLabel = QLabel("Font size")
self.formatForm.addWidget(self.fontButton, 0, 2, 1, 1, Qt.AlignRight) lineHeightLabel = QLabel("Line height")
self.formatForm.addWidget(QLabel("Font size"), 1, 0, 1, 1, Qt.AlignLeft) justifyLabel = QLabel("Justify text")
self.formatForm.addWidget(self.textSize, 1, 1, 1, 2, Qt.AlignRight) stylingLabel = QLabel("Disable styling")
self.formatForm.addWidget(QLabel("Justify text"), 2, 0, 1, 1, Qt.AlignLeft)
self.formatForm.addWidget(self.justifyText, 2, 1, 1, 2, Qt.AlignRight) self.formatForm.addWidget(fontFamilyLabel, 0, 0, 1, 1, Qt.AlignLeft)
self.formatForm.addWidget(QLabel("Disable styling"), 3, 0, 1, 1, Qt.AlignLeft) self.formatForm.addLayout(self.boxFont, 0, 1, 1, 1, Qt.AlignRight)
self.formatForm.addWidget(self.noStyling, 3, 1, 1, 2, Qt.AlignRight) self.formatForm.addWidget(self.fontButton, 0, 2, 1, 1, Qt.AlignRight)
self.formatForm.addWidget(fontSizeLabel, 1, 0, 1, 1, Qt.AlignLeft)
self.formatForm.addWidget(self.textSize, 1, 1, 1, 2, Qt.AlignRight)
self.formatForm.addWidget(lineHeightLabel, 2, 0, 1, 1, Qt.AlignLeft)
self.formatForm.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.formatForm.setColumnStretch(0, 0)
self.formatForm.setColumnStretch(1, 1) self.formatForm.setColumnStretch(1, 1)
@@ -257,45 +272,38 @@ class GuiBuildNovel(QDialog):
self.textGroup.setLayout(self.textForm) self.textGroup.setLayout(self.textForm)
self.includeSynopsis = QSwitch() self.includeSynopsis = QSwitch()
self.includeSynopsis.setToolTip(
"Include synopsis comments in the output."
)
self.includeSynopsis.setChecked( self.includeSynopsis.setChecked(
self.optState.getBool("GuiBuildNovel", "incSynopsis", False) self.optState.getBool("GuiBuildNovel", "incSynopsis", False)
) )
self.includeComments = QSwitch() self.includeComments = QSwitch()
self.includeComments.setToolTip(
"Include plain comments in the output."
)
self.includeComments.setChecked( self.includeComments.setChecked(
self.optState.getBool("GuiBuildNovel", "incComments", False) self.optState.getBool("GuiBuildNovel", "incComments", False)
) )
self.includeKeywords = QSwitch() self.includeKeywords = QSwitch()
self.includeKeywords.setToolTip(
"Include meta keywords (tags, references) in the output."
)
self.includeKeywords.setChecked( self.includeKeywords.setChecked(
self.optState.getBool("GuiBuildNovel", "incKeywords", False) self.optState.getBool("GuiBuildNovel", "incKeywords", False)
) )
self.includeBody = QSwitch() self.includeBody = QSwitch()
self.includeBody.setToolTip(
"Include body text in the output."
)
self.includeBody.setChecked( self.includeBody.setChecked(
self.optState.getBool("GuiBuildNovel", "incBodyText", True) self.optState.getBool("GuiBuildNovel", "incBodyText", True)
) )
self.textForm.addWidget(QLabel("Include synopsis"), 0, 0, 1, 1, Qt.AlignLeft) synopsisLabel = QLabel("Include synopsis")
self.textForm.addWidget(self.includeSynopsis, 0, 1, 1, 1, Qt.AlignRight) commentsLabel = QLabel("Include comments")
self.textForm.addWidget(QLabel("Include comments"), 1, 0, 1, 1, Qt.AlignLeft) keywordsLabel = QLabel("Include keywords")
self.textForm.addWidget(self.includeComments, 1, 1, 1, 1, Qt.AlignRight) bodyLabel = QLabel("Include body text")
self.textForm.addWidget(QLabel("Include keywords"), 2, 0, 1, 1, Qt.AlignLeft)
self.textForm.addWidget(self.includeKeywords, 2, 1, 1, 1, Qt.AlignRight) self.textForm.addWidget(synopsisLabel, 0, 0, 1, 1, Qt.AlignLeft)
self.textForm.addWidget(QLabel("Include body text"), 3, 0, 1, 1, Qt.AlignLeft) self.textForm.addWidget(self.includeSynopsis, 0, 1, 1, 1, Qt.AlignRight)
self.textForm.addWidget(self.includeBody, 3, 1, 1, 1, Qt.AlignRight) self.textForm.addWidget(commentsLabel, 1, 0, 1, 1, Qt.AlignLeft)
self.textForm.addWidget(self.includeComments, 1, 1, 1, 1, Qt.AlignRight)
self.textForm.addWidget(keywordsLabel, 2, 0, 1, 1, Qt.AlignLeft)
self.textForm.addWidget(self.includeKeywords, 2, 1, 1, 1, Qt.AlignRight)
self.textForm.addWidget(bodyLabel, 3, 0, 1, 1, Qt.AlignLeft)
self.textForm.addWidget(self.includeBody, 3, 1, 1, 1, Qt.AlignRight)
self.textForm.setColumnStretch(0, 1) self.textForm.setColumnStretch(0, 1)
self.textForm.setColumnStretch(1, 0) self.textForm.setColumnStretch(1, 0)
@@ -331,12 +339,16 @@ class GuiBuildNovel(QDialog):
self.optState.getBool("GuiBuildNovel", "ignoreFlag", False) self.optState.getBool("GuiBuildNovel", "ignoreFlag", False)
) )
self.fileForm.addWidget(QLabel("Include novel files"), 0, 0, 1, 1, Qt.AlignLeft) novelLabel = QLabel("Include novel files")
self.fileForm.addWidget(self.novelFiles, 0, 1, 1, 1, Qt.AlignRight) notesLabel = QLabel("Include note files")
self.fileForm.addWidget(QLabel("Include note files"), 1, 0, 1, 1, Qt.AlignLeft) exportLabel = QLabel("Ignore export flag")
self.fileForm.addWidget(self.noteFiles, 1, 1, 1, 1, Qt.AlignRight)
self.fileForm.addWidget(QLabel("Ignore export flag"), 2, 0, 1, 1, Qt.AlignLeft) self.fileForm.addWidget(novelLabel, 0, 0, 1, 1, Qt.AlignLeft)
self.fileForm.addWidget(self.ignoreFlag, 2, 1, 1, 1, Qt.AlignRight) self.fileForm.addWidget(self.novelFiles, 0, 1, 1, 1, Qt.AlignRight)
self.fileForm.addWidget(notesLabel, 1, 0, 1, 1, Qt.AlignLeft)
self.fileForm.addWidget(self.noteFiles, 1, 1, 1, 1, Qt.AlignRight)
self.fileForm.addWidget(exportLabel, 2, 0, 1, 1, Qt.AlignLeft)
self.fileForm.addWidget(self.ignoreFlag, 2, 1, 1, 1, Qt.AlignRight)
self.fileForm.setColumnStretch(0, 1) self.fileForm.setColumnStretch(0, 1)
self.fileForm.setColumnStretch(1, 0) self.fileForm.setColumnStretch(1, 0)
@@ -349,15 +361,14 @@ class GuiBuildNovel(QDialog):
self.exportGroup.setLayout(self.exportForm) self.exportGroup.setLayout(self.exportForm)
self.replaceTabs = QSwitch() self.replaceTabs = QSwitch()
self.replaceTabs.setToolTip(
"Replace all tabs with eight spaces."
)
self.replaceTabs.setChecked( self.replaceTabs.setChecked(
self.optState.getBool("GuiBuildNovel", "replaceTabs", False) self.optState.getBool("GuiBuildNovel", "replaceTabs", False)
) )
self.exportForm.addWidget(QLabel("Replace tabs with spaces"), 0, 0, 1, 1, Qt.AlignLeft) tabsLabel = QLabel("Replace tabs with spaces")
self.exportForm.addWidget(self.replaceTabs, 0, 1, 1, 1, Qt.AlignRight)
self.exportForm.addWidget(tabsLabel, 0, 0, 1, 1, Qt.AlignLeft)
self.exportForm.addWidget(self.replaceTabs, 0, 1, 1, 1, Qt.AlignRight)
self.exportForm.setColumnStretch(0, 1) self.exportForm.setColumnStretch(0, 1)
self.exportForm.setColumnStretch(1, 0) self.exportForm.setColumnStretch(1, 0)
@@ -607,6 +618,7 @@ class GuiBuildNovel(QDialog):
fmtSection = self.fmtSection.text().strip() fmtSection = self.fmtSection.text().strip()
textFont = self.textFont.text() textFont = self.textFont.text()
textSize = self.textSize.value() textSize = self.textSize.value()
lineHeight = self.lineHeight.value()
justifyText = self.justifyText.isChecked() justifyText = self.justifyText.isChecked()
noStyling = self.noStyling.isChecked() noStyling = self.noStyling.isChecked()
incSynopsis = self.includeSynopsis.isChecked() incSynopsis = self.includeSynopsis.isChecked()
@@ -632,6 +644,7 @@ class GuiBuildNovel(QDialog):
bldObj.setFont(textFont, textSize, textFixed) bldObj.setFont(textFont, textSize, textFixed)
bldObj.setJustify(justifyText) bldObj.setJustify(justifyText)
bldObj.setLineHeight(lineHeight)
bldObj.setSynopsis(incSynopsis) bldObj.setSynopsis(incSynopsis)
bldObj.setComments(incComments) bldObj.setComments(incComments)
@@ -1085,6 +1098,7 @@ class GuiBuildNovel(QDialog):
noStyling = self.noStyling.isChecked() noStyling = self.noStyling.isChecked()
textFont = self.textFont.text() textFont = self.textFont.text()
textSize = self.textSize.value() textSize = self.textSize.value()
lineHeight = self.lineHeight.value()
novelFiles = self.novelFiles.isChecked() novelFiles = self.novelFiles.isChecked()
noteFiles = self.noteFiles.isChecked() noteFiles = self.noteFiles.isChecked()
ignoreFlag = self.ignoreFlag.isChecked() ignoreFlag = self.ignoreFlag.isChecked()
@@ -1111,6 +1125,7 @@ class GuiBuildNovel(QDialog):
self.optState.setValue("GuiBuildNovel", "noStyling", noStyling) self.optState.setValue("GuiBuildNovel", "noStyling", noStyling)
self.optState.setValue("GuiBuildNovel", "textFont", textFont) self.optState.setValue("GuiBuildNovel", "textFont", textFont)
self.optState.setValue("GuiBuildNovel", "textSize", textSize) self.optState.setValue("GuiBuildNovel", "textSize", textSize)
self.optState.setValue("GuiBuildNovel", "lineHeight", lineHeight)
self.optState.setValue("GuiBuildNovel", "addNovel", novelFiles) self.optState.setValue("GuiBuildNovel", "addNovel", novelFiles)
self.optState.setValue("GuiBuildNovel", "addNotes", noteFiles) self.optState.setValue("GuiBuildNovel", "addNotes", noteFiles)
self.optState.setValue("GuiBuildNovel", "ignoreFlag", ignoreFlag) self.optState.setValue("GuiBuildNovel", "ignoreFlag", ignoreFlag)