Add heading format fields
This commit is contained in:
@@ -73,7 +73,7 @@ SETTINGS_LABELS = {
|
|||||||
"headings": QT_TRANSLATE_NOOP("Builds", "Headings"),
|
"headings": QT_TRANSLATE_NOOP("Builds", "Headings"),
|
||||||
"headings.fmtTitle": QT_TRANSLATE_NOOP("Builds", "Title Heading"),
|
"headings.fmtTitle": QT_TRANSLATE_NOOP("Builds", "Title Heading"),
|
||||||
"headings.fmtChapter": QT_TRANSLATE_NOOP("Builds", "Chapter 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.fmtScene": QT_TRANSLATE_NOOP("Builds", "Scene Heading"),
|
||||||
"headings.fmtSection": QT_TRANSLATE_NOOP("Builds", "Section Heading"),
|
"headings.fmtSection": QT_TRANSLATE_NOOP("Builds", "Section Heading"),
|
||||||
"headings.hideScene": QT_TRANSLATE_NOOP("Builds", "Hide Scene"),
|
"headings.hideScene": QT_TRANSLATE_NOOP("Builds", "Hide Scene"),
|
||||||
|
|||||||
+119
-4
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
novelWriter – GUI Build Manuscript
|
novelWriter – GUI Build Manuscript
|
||||||
==================================
|
==================================
|
||||||
GUI classes for the Manuscript build tool
|
GUI classes for the Manuscript Build Tool
|
||||||
|
|
||||||
File History:
|
File History:
|
||||||
Created: 2023-02-13 [2.1b1]
|
Created: 2023-02-13 [2.1b1]
|
||||||
@@ -30,12 +30,13 @@ import novelwriter
|
|||||||
from PyQt5.QtGui import QIcon
|
from PyQt5.QtGui import QIcon
|
||||||
from PyQt5.QtCore import QSize, Qt, pyqtSlot
|
from PyQt5.QtCore import QSize, Qt, pyqtSlot
|
||||||
from PyQt5.QtWidgets import (
|
from PyQt5.QtWidgets import (
|
||||||
QAbstractItemView, QDialog, QHBoxLayout, QHeaderView, QPushButton,
|
QAbstractItemView, QDialog, QGridLayout, QHBoxLayout, QHeaderView, QLabel,
|
||||||
QSplitter, QStackedWidget, QTreeWidget, QTreeWidgetItem, QVBoxLayout,
|
QLineEdit, QPushButton, QSplitter, QStackedWidget, QToolButton,
|
||||||
QWidget
|
QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget
|
||||||
)
|
)
|
||||||
|
|
||||||
from novelwriter.core.buildsettings import BuildSettings, FilterMode
|
from novelwriter.core.buildsettings import BuildSettings, FilterMode
|
||||||
|
from novelwriter.extensions.switch import NSwitch
|
||||||
from novelwriter.extensions.switchbox import NSwitchBox
|
from novelwriter.extensions.switchbox import NSwitchBox
|
||||||
from novelwriter.extensions.pagedsidebar import NPagedSideBar
|
from novelwriter.extensions.pagedsidebar import NPagedSideBar
|
||||||
|
|
||||||
@@ -492,6 +493,120 @@ class GuiBuildHeadingsTab(QWidget):
|
|||||||
def __init__(self, buildMain):
|
def __init__(self, buildMain):
|
||||||
super().__init__(parent=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
|
return
|
||||||
|
|
||||||
# END Class GuiBuildHeadingsTab
|
# END Class GuiBuildHeadingsTab
|
||||||
|
|||||||
Reference in New Issue
Block a user