Add heading format fields

This commit is contained in:
Veronica Berglyd Olsen
2023-05-13 19:00:10 +02:00
parent 50f653fefb
commit a4e5a88686
2 changed files with 120 additions and 5 deletions
+1 -1
View File
@@ -73,7 +73,7 @@ SETTINGS_LABELS = {
"headings": QT_TRANSLATE_NOOP("Builds", "Headings"),
"headings.fmtTitle": QT_TRANSLATE_NOOP("Builds", "Title Heading"),
"headings.fmtChapter": QT_TRANSLATE_NOOP("Builds", "Chapter Heading"),
"headings.fmtUnnumbered": QT_TRANSLATE_NOOP("Builds", "Unnumbered Chapter"),
"headings.fmtUnnumbered": QT_TRANSLATE_NOOP("Builds", "Alt. Chapter Heading"),
"headings.fmtScene": QT_TRANSLATE_NOOP("Builds", "Scene Heading"),
"headings.fmtSection": QT_TRANSLATE_NOOP("Builds", "Section Heading"),
"headings.hideScene": QT_TRANSLATE_NOOP("Builds", "Hide Scene"),
+119 -4
View File
@@ -1,7 +1,7 @@
"""
novelWriter GUI Build Manuscript
==================================
GUI classes for the Manuscript build tool
GUI classes for the Manuscript Build Tool
File History:
Created: 2023-02-13 [2.1b1]
@@ -30,12 +30,13 @@ import novelwriter
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import QSize, Qt, pyqtSlot
from PyQt5.QtWidgets import (
QAbstractItemView, QDialog, QHBoxLayout, QHeaderView, QPushButton,
QSplitter, QStackedWidget, QTreeWidget, QTreeWidgetItem, QVBoxLayout,
QWidget
QAbstractItemView, QDialog, QGridLayout, QHBoxLayout, QHeaderView, QLabel,
QLineEdit, QPushButton, QSplitter, QStackedWidget, QToolButton,
QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget
)
from novelwriter.core.buildsettings import BuildSettings, FilterMode
from novelwriter.extensions.switch import NSwitch
from novelwriter.extensions.switchbox import NSwitchBox
from novelwriter.extensions.pagedsidebar import NPagedSideBar
@@ -492,6 +493,120 @@ class GuiBuildHeadingsTab(QWidget):
def __init__(self, buildMain):
super().__init__(parent=buildMain)
self.mainConf = novelwriter.CONFIG
self.mainGui = buildMain.mainGui
self.mainTheme = buildMain.mainGui.mainTheme
self.theProject = buildMain.mainGui.theProject
self.buildOpts = buildMain.buildOpts
iPx = self.mainTheme.baseIconSize
vSp = self.mainConf.pxInt(12)
bSp = self.mainConf.pxInt(6)
bSettings = self.buildOpts["settings"]
# Format Boxes
# ============
self.formatBox = QGridLayout()
self.formatBox.setHorizontalSpacing(vSp)
# Title Heading
self.lblTitle = QLabel(bSettings.getLabel("headings.fmtTitle"))
self.fmtTitle = QLineEdit("")
self.fmtTitle.setEnabled(False)
self.btnTitle = QToolButton()
self.btnTitle.setIcon(self.mainTheme.getIcon("edit"))
wrapTitle = QHBoxLayout()
wrapTitle.addWidget(self.fmtTitle)
wrapTitle.addWidget(self.btnTitle)
wrapTitle.setSpacing(bSp)
self.formatBox.addWidget(self.lblTitle, 0, 0, Qt.AlignLeft)
self.formatBox.addLayout(wrapTitle, 0, 1, Qt.AlignLeft)
# Chapter Heading
self.lblChapter = QLabel(bSettings.getLabel("headings.fmtChapter"))
self.fmtChapter = QLineEdit("")
self.fmtChapter.setEnabled(False)
self.btnChapter = QToolButton()
self.btnChapter.setIcon(self.mainTheme.getIcon("edit"))
wrapChapter = QHBoxLayout()
wrapChapter.addWidget(self.fmtChapter)
wrapChapter.addWidget(self.btnChapter)
wrapChapter.setSpacing(bSp)
self.formatBox.addWidget(self.lblChapter, 1, 0, Qt.AlignLeft)
self.formatBox.addLayout(wrapChapter, 1, 1, Qt.AlignLeft)
# Unnumbered Chapter Heading
self.lblUnChapter = QLabel(bSettings.getLabel("headings.fmtUnnumbered"))
self.fmtUnChapter = QLineEdit("")
self.fmtUnChapter.setEnabled(False)
self.btnUnChapter = QToolButton()
self.btnUnChapter.setIcon(self.mainTheme.getIcon("edit"))
wrapUnChapter = QHBoxLayout()
wrapUnChapter.addWidget(self.fmtUnChapter)
wrapUnChapter.addWidget(self.btnUnChapter)
wrapUnChapter.setSpacing(bSp)
self.formatBox.addWidget(self.lblUnChapter, 2, 0, Qt.AlignLeft)
self.formatBox.addLayout(wrapUnChapter, 2, 1, Qt.AlignLeft)
# Scene Heading
self.lblScene = QLabel(bSettings.getLabel("headings.fmtScene"))
self.fmtScene = QLineEdit("")
self.fmtScene.setEnabled(False)
self.btnScene = QToolButton()
self.btnScene.setIcon(self.mainTheme.getIcon("edit"))
self.swtScene = NSwitch(width=2*iPx, height=iPx)
wrapScene = QHBoxLayout()
wrapScene.addWidget(self.fmtScene)
wrapScene.addWidget(self.btnScene)
wrapScene.setSpacing(bSp)
wrapSceneHide = QHBoxLayout()
wrapSceneHide.addWidget(QLabel(self.tr("Hide")))
wrapSceneHide.addWidget(self.swtScene)
wrapSceneHide.setSpacing(bSp)
self.formatBox.addWidget(self.lblScene, 3, 0, Qt.AlignLeft)
self.formatBox.addLayout(wrapScene, 3, 1, Qt.AlignLeft)
self.formatBox.addLayout(wrapSceneHide, 3, 2, Qt.AlignLeft)
# Section Heading
self.lblSection = QLabel(bSettings.getLabel("headings.fmtSection"))
self.fmtSection = QLineEdit("")
self.fmtSection.setEnabled(False)
self.btnSection = QToolButton()
self.btnSection.setIcon(self.mainTheme.getIcon("edit"))
self.swtSection = NSwitch(width=2*iPx, height=iPx)
wrapSection = QHBoxLayout()
wrapSection.addWidget(self.fmtSection)
wrapSection.addWidget(self.btnSection)
wrapSection.setSpacing(bSp)
wrapSectionHide = QHBoxLayout()
wrapSectionHide.addWidget(QLabel(self.tr("Hide")))
wrapSectionHide.addWidget(self.swtSection)
wrapSectionHide.setSpacing(bSp)
self.formatBox.addWidget(self.lblSection, 4, 0, Qt.AlignLeft)
self.formatBox.addLayout(wrapSection, 4, 1, Qt.AlignLeft)
self.formatBox.addLayout(wrapSectionHide, 4, 2, Qt.AlignLeft)
# Assemble
# ========
self.outerBox = QVBoxLayout()
self.outerBox.addLayout(self.formatBox)
self.outerBox.addStretch(1)
self.setLayout(self.outerBox)
return
# END Class GuiBuildHeadingsTab