Merge branch 'main' into primary_count

This commit is contained in:
Veronica Berglyd Olsen
2025-05-12 19:41:33 +02:00
42 changed files with 490 additions and 278 deletions
+2 -1
View File
@@ -75,8 +75,9 @@ class GuiLipsum(NDialog):
self.paraCount.setMaximum(100)
self.paraCount.setValue(5)
self.randLabel = QLabel(self.tr("Randomise order"), self)
self.randSwitch = NSwitch(self)
self.randLabel = QLabel(self.tr("Randomise order"), self)
self.randLabel.setBuddy(self.randSwitch)
self.formBox = QGridLayout()
self.formBox.addWidget(self.headLabel, 0, 0, 1, 2, QtAlignLeft)
+34 -13
View File
@@ -104,6 +104,7 @@ class GuiBuildSettings(NToolDialog):
# SideBar
self.sidebar = NPagedSideBar(self)
self.sidebar.setLabelColor(SHARED.theme.helpText)
self.sidebar.setAccessibleName(self.titleLabel.text())
self.sidebar.addLabel(self.tr("General"))
self.sidebar.addButton(self.tr("Selection"), self.OPT_FILTERS)
@@ -564,9 +565,10 @@ class _HeadingsTab(NScrollablePage):
self.fmtPart.setReadOnly(True)
self.btnPart = NIconToolButton(self, iSz, "edit", "green")
self.btnPart.clicked.connect(qtLambda(self._editHeading, self.EDIT_TITLE))
self.swtPart = NSwitch(self, height=iPx)
self.hdePart = QLabel(trHide, self)
self.hdePart.setIndent(6)
self.swtPart = NSwitch(self, height=iPx)
self.hdePart.setBuddy(self.swtPart)
self.formatBox.addWidget(self.lblPart, 0, 0)
self.formatBox.addWidget(self.fmtPart, 0, 1)
@@ -580,9 +582,10 @@ class _HeadingsTab(NScrollablePage):
self.fmtChapter.setReadOnly(True)
self.btnChapter = NIconToolButton(self, iSz, "edit", "green")
self.btnChapter.clicked.connect(qtLambda(self._editHeading, self.EDIT_CHAPTER))
self.swtChapter = NSwitch(self, height=iPx)
self.hdeChapter = QLabel(trHide, self)
self.hdeChapter.setIndent(6)
self.swtChapter = NSwitch(self, height=iPx)
self.hdeChapter.setBuddy(self.swtChapter)
self.formatBox.addWidget(self.lblChapter, 1, 0)
self.formatBox.addWidget(self.fmtChapter, 1, 1)
@@ -596,9 +599,10 @@ class _HeadingsTab(NScrollablePage):
self.fmtUnnumbered.setReadOnly(True)
self.btnUnnumbered = NIconToolButton(self, iSz, "edit", "green")
self.btnUnnumbered.clicked.connect(qtLambda(self._editHeading, self.EDIT_UNNUM))
self.swtUnnumbered = NSwitch(self, height=iPx)
self.hdeUnnumbered = QLabel(trHide, self)
self.hdeUnnumbered.setIndent(6)
self.swtUnnumbered = NSwitch(self, height=iPx)
self.hdeUnnumbered.setBuddy(self.swtUnnumbered)
self.formatBox.addWidget(self.lblUnnumbered, 2, 0)
self.formatBox.addWidget(self.fmtUnnumbered, 2, 1)
@@ -612,9 +616,10 @@ class _HeadingsTab(NScrollablePage):
self.fmtScene.setReadOnly(True)
self.btnScene = NIconToolButton(self, iSz, "edit", "green")
self.btnScene.clicked.connect(qtLambda(self._editHeading, self.EDIT_SCENE))
self.swtScene = NSwitch(self, height=iPx)
self.hdeScene = QLabel(trHide, self)
self.hdeScene.setIndent(6)
self.swtScene = NSwitch(self, height=iPx)
self.hdeScene.setBuddy(self.swtScene)
self.formatBox.addWidget(self.lblScene, 3, 0)
self.formatBox.addWidget(self.fmtScene, 3, 1)
@@ -628,9 +633,10 @@ class _HeadingsTab(NScrollablePage):
self.fmtAScene.setReadOnly(True)
self.btnAScene = NIconToolButton(self, iSz, "edit", "green")
self.btnAScene.clicked.connect(qtLambda(self._editHeading, self.EDIT_HSCENE))
self.swtAScene = NSwitch(self, height=iPx)
self.hdeAScene = QLabel(trHide, self)
self.hdeAScene.setIndent(6)
self.swtAScene = NSwitch(self, height=iPx)
self.hdeAScene.setBuddy(self.swtAScene)
self.formatBox.addWidget(self.lblAScene, 4, 0)
self.formatBox.addWidget(self.fmtAScene, 4, 1)
@@ -644,9 +650,10 @@ class _HeadingsTab(NScrollablePage):
self.fmtSection.setReadOnly(True)
self.btnSection = NIconToolButton(self, iSz, "edit", "green")
self.btnSection.clicked.connect(qtLambda(self._editHeading, self.EDIT_SECTION))
self.swtSection = NSwitch(self, height=iPx)
self.hdeSection = QLabel(trHide, self)
self.hdeSection.setIndent(6)
self.swtSection = NSwitch(self, height=iPx)
self.hdeSection.setBuddy(self.swtSection)
self.formatBox.addWidget(self.lblSection, 5, 0)
self.formatBox.addWidget(self.fmtSection, 5, 1)
@@ -704,44 +711,59 @@ class _HeadingsTab(NScrollablePage):
# Layout Matrix
# =============
trCentre = self.tr("Centre")
trBreak = self.tr("Page Break")
self.layoutMatrix = QGridLayout()
self.layoutMatrix.setVerticalSpacing(12)
self.layoutMatrix.setHorizontalSpacing(12)
self.layoutMatrix.addWidget(QLabel(self.tr("Centre"), self), 0, 1)
self.layoutMatrix.addWidget(QLabel(self.tr("Page Break"), self), 0, 2)
self.layoutMatrix.addWidget(QLabel(trCentre, self), 0, 1)
self.layoutMatrix.addWidget(QLabel(trBreak, self), 0, 2)
# Title Layout
self.lblTitle = QLabel(self._build.getLabel("headings.styleTitle"), self)
trLabel = self._build.getLabel("headings.styleTitle")
self.lblTitle = QLabel(trLabel, self)
self.centerTitle = NSwitch(self, height=iPx)
self.centerTitle.setAccessibleName(f"{trLabel}: {trCentre}")
self.breakTitle = NSwitch(self, height=iPx)
self.breakTitle.setAccessibleName(f"{trLabel}: {trBreak}")
self.layoutMatrix.addWidget(self.lblTitle, 1, 0)
self.layoutMatrix.addWidget(self.centerTitle, 1, 1, QtAlignCenter)
self.layoutMatrix.addWidget(self.breakTitle, 1, 2, QtAlignCenter)
# Partition Layout
self.lblPart = QLabel(self._build.getLabel("headings.stylePart"), self)
trLabel = self._build.getLabel("headings.stylePart")
self.lblPart = QLabel(trLabel, self)
self.centerPart = NSwitch(self, height=iPx)
self.centerPart.setAccessibleName(f"{trLabel}: {trCentre}")
self.breakPart = NSwitch(self, height=iPx)
self.breakPart.setAccessibleName(f"{trLabel}: {trBreak}")
self.layoutMatrix.addWidget(self.lblPart, 2, 0)
self.layoutMatrix.addWidget(self.centerPart, 2, 1, QtAlignCenter)
self.layoutMatrix.addWidget(self.breakPart, 2, 2, QtAlignCenter)
# Chapter Layout
self.lblChapter = QLabel(self._build.getLabel("headings.styleChapter"), self)
trLabel = self._build.getLabel("headings.styleChapter")
self.lblChapter = QLabel(trLabel, self)
self.centerChapter = NSwitch(self, height=iPx)
self.centerChapter.setAccessibleName(f"{trLabel}: {trCentre}")
self.breakChapter = NSwitch(self, height=iPx)
self.breakChapter.setAccessibleName(f"{trLabel}: {trBreak}")
self.layoutMatrix.addWidget(self.lblChapter, 3, 0)
self.layoutMatrix.addWidget(self.centerChapter, 3, 1, QtAlignCenter)
self.layoutMatrix.addWidget(self.breakChapter, 3, 2, QtAlignCenter)
# Scene Layout
self.lblScene = QLabel(self._build.getLabel("headings.styleScene"), self)
trLabel = self._build.getLabel("headings.styleScene")
self.lblScene = QLabel(trLabel, self)
self.centerScene = NSwitch(self, height=iPx)
self.centerScene.setAccessibleName(f"{trLabel}: {trCentre}")
self.breakScene = NSwitch(self, height=iPx)
self.breakScene.setAccessibleName(f"{trLabel}: {trBreak}")
self.layoutMatrix.addWidget(self.lblScene, 4, 0)
self.layoutMatrix.addWidget(self.centerScene, 4, 1, QtAlignCenter)
@@ -979,7 +1001,6 @@ class _FormattingTab(NScrollableForm):
# Note Headings
self.addNoteHead = NSwitch(self, height=iPx)
self.addRow(self._build.getLabel("text.addNoteHeadings"), self.addNoteHead)
# Text Format
+7 -6
View File
@@ -86,6 +86,7 @@ class GuiNovelDetails(NNonBlockingDialog):
# SideBar
self.sidebar = NPagedSideBar(self)
self.sidebar.setLabelColor(SHARED.theme.helpText)
self.sidebar.setAccessibleName(self.titleLabel.text())
self.sidebar.addButton(self.tr("Overview"), self.PAGE_OVERVIEW)
self.sidebar.addButton(self.tr("Contents"), self.PAGE_CONTENTS)
self.sidebar.setSelected(self.PAGE_OVERVIEW)
@@ -356,16 +357,14 @@ class _ContentsPage(NFixedPage):
countFrom = options.getInt("GuiNovelDetails", "countFrom", 1)
clearDouble = options.getBool("GuiNovelDetails", "clearDouble", True)
self.wpLabel = QLabel(self.tr("Words per page"), self)
self.wpValue = QSpinBox(self)
self.wpValue.setMinimum(10)
self.wpValue.setMaximum(1000)
self.wpValue.setSingleStep(10)
self.wpValue.setValue(wordsPerPage)
self.wpValue.valueChanged.connect(self._populateTree)
self.poLabel = QLabel(self.tr("First page offset"), self)
self.wpLabel = QLabel(self.tr("Words per page"), self)
self.wpLabel.setBuddy(self.wpValue)
self.poValue = QSpinBox(self)
self.poValue.setMinimum(1)
@@ -373,12 +372,14 @@ class _ContentsPage(NFixedPage):
self.poValue.setSingleStep(1)
self.poValue.setValue(countFrom)
self.poValue.valueChanged.connect(self._populateTree)
self.dblLabel = QLabel(self.tr("Chapters on odd pages"), self)
self.poLabel = QLabel(self.tr("First page offset"), self)
self.poLabel.setBuddy(self.poValue)
self.dblValue = NSwitch(self, height=iPx)
self.dblValue.setChecked(clearDouble)
self.dblValue.clicked.connect(self._populateTree)
self.dblLabel = QLabel(self.tr("Chapters on odd pages"), self)
self.dblLabel.setBuddy(self.dblValue)
self.optionsBox = QGridLayout()
self.optionsBox.addWidget(self.wpLabel, 0, 0)
+1
View File
@@ -565,6 +565,7 @@ class _NewProjectForm(QWidget):
self.projAuthor = QLineEdit(self)
self.projAuthor.setMaxLength(200)
self.projAuthor.setPlaceholderText(self.tr("Optional"))
self.projAuthor.setText(CONFIG.lastAuthor)
# Project Path
self.projPath = QLineEdit(self)
+67 -44
View File
@@ -183,59 +183,82 @@ class GuiWritingStats(NToolDialog):
# Filter Options
iPx = SHARED.theme.baseIconHeight
self.filterBox = QGroupBox(self.tr("Filters"), self)
self.filterForm = QGridLayout(self)
self.filterForm.setRowStretch(6, 1)
self.filterBox = QGroupBox(self.tr("Filters"), self)
self.filterBox.setLayout(self.filterForm)
self.incNovel = NSwitch(self, height=iPx)
self.incNovel.setChecked(
# Include Novel Files
self.swtIncNovel = NSwitch(self, height=iPx)
self.swtIncNovel.setChecked(
pOptions.getBool("GuiWritingStats", "incNovel", True)
)
self.incNovel.clicked.connect(self._updateListBox)
self.swtIncNovel.clicked.connect(self._updateListBox)
self.lblIncNovel = QLabel(self.tr("Count novel files"), self)
self.lblIncNovel.setBuddy(self.swtIncNovel)
self.incNotes = NSwitch(self, height=iPx)
self.incNotes.setChecked(
self.filterForm.addWidget(self.lblIncNovel, 0, 0)
self.filterForm.addWidget(self.swtIncNovel, 0, 1)
# Include Note Files
self.swtIncNotes = NSwitch(self, height=iPx)
self.swtIncNotes.setChecked(
pOptions.getBool("GuiWritingStats", "incNotes", True)
)
self.incNotes.clicked.connect(self._updateListBox)
self.swtIncNotes.clicked.connect(self._updateListBox)
self.lblIncNotes = QLabel(self.tr("Count note files"), self)
self.lblIncNotes.setBuddy(self.swtIncNotes)
self.hideZeros = NSwitch(self, height=iPx)
self.hideZeros.setChecked(
self.filterForm.addWidget(self.lblIncNotes, 1, 0)
self.filterForm.addWidget(self.swtIncNotes, 1, 1)
# Hide Zero Counts
self.swtHideZeros = NSwitch(self, height=iPx)
self.swtHideZeros.setChecked(
pOptions.getBool("GuiWritingStats", "hideZeros", True)
)
self.hideZeros.clicked.connect(self._updateListBox)
self.swtHideZeros.clicked.connect(self._updateListBox)
self.lblHideZeros = QLabel(self.tr("Hide zero word count"), self)
self.lblHideZeros.setBuddy(self.swtHideZeros)
self.hideNegative = NSwitch(self, height=iPx)
self.hideNegative.setChecked(
self.filterForm.addWidget(self.lblHideZeros, 2, 0)
self.filterForm.addWidget(self.swtHideZeros, 2, 1)
# Hide Negative Counts
self.swtHideNegative = NSwitch(self, height=iPx)
self.swtHideNegative.setChecked(
pOptions.getBool("GuiWritingStats", "hideNegative", False)
)
self.hideNegative.clicked.connect(self._updateListBox)
self.swtHideNegative.clicked.connect(self._updateListBox)
self.lblHideNegative = QLabel(self.tr("Hide negative word count"), self)
self.lblHideNegative.setBuddy(self.swtHideNegative)
self.groupByDay = NSwitch(self, height=iPx)
self.groupByDay.setChecked(
self.filterForm.addWidget(self.lblHideNegative, 3, 0)
self.filterForm.addWidget(self.swtHideNegative, 3, 1)
# Group Entries
self.swtGroupByDay = NSwitch(self, height=iPx)
self.swtGroupByDay.setChecked(
pOptions.getBool("GuiWritingStats", "groupByDay", False)
)
self.groupByDay.clicked.connect(self._updateListBox)
self.swtGroupByDay.clicked.connect(self._updateListBox)
self.lblGroupByDay = QLabel(self.tr("Group entries by day"), self)
self.lblGroupByDay.setBuddy(self.swtGroupByDay)
self.showIdleTime = NSwitch(self, height=iPx)
self.showIdleTime.setChecked(
self.filterForm.addWidget(self.lblGroupByDay, 4, 0)
self.filterForm.addWidget(self.swtGroupByDay, 4, 1)
# Show Idle
self.swtShowIdleTime = NSwitch(self, height=iPx)
self.swtShowIdleTime.setChecked(
pOptions.getBool("GuiWritingStats", "showIdleTime", False)
)
self.showIdleTime.clicked.connect(self._updateListBox)
self.swtShowIdleTime.clicked.connect(self._updateListBox)
self.lblShowIdleTime = QLabel(self.tr("Show idle time"), self)
self.lblShowIdleTime.setBuddy(self.swtShowIdleTime)
self.filterForm.addWidget(QLabel(self.tr("Count novel files"), self), 0, 0)
self.filterForm.addWidget(QLabel(self.tr("Count note files"), self), 1, 0)
self.filterForm.addWidget(QLabel(self.tr("Hide zero word count"), self), 2, 0)
self.filterForm.addWidget(QLabel(self.tr("Hide negative word count"), self), 3, 0)
self.filterForm.addWidget(QLabel(self.tr("Group entries by day"), self), 4, 0)
self.filterForm.addWidget(QLabel(self.tr("Show idle time"), self), 5, 0)
self.filterForm.addWidget(self.incNovel, 0, 1)
self.filterForm.addWidget(self.incNotes, 1, 1)
self.filterForm.addWidget(self.hideZeros, 2, 1)
self.filterForm.addWidget(self.hideNegative, 3, 1)
self.filterForm.addWidget(self.groupByDay, 4, 1)
self.filterForm.addWidget(self.showIdleTime, 5, 1)
self.filterForm.setRowStretch(6, 1)
self.filterForm.addWidget(self.lblShowIdleTime, 5, 0)
self.filterForm.addWidget(self.swtShowIdleTime, 5, 1)
# Settings
self.histMax = QSpinBox(self)
@@ -325,12 +348,12 @@ class GuiWritingStats(NToolDialog):
sortCol = self.listBox.sortColumn()
sortOrder = header.sortIndicatorOrder() if header else 0
incNovel = self.incNovel.isChecked()
incNotes = self.incNotes.isChecked()
hideZeros = self.hideZeros.isChecked()
hideNegative = self.hideNegative.isChecked()
groupByDay = self.groupByDay.isChecked()
showIdleTime = self.showIdleTime.isChecked()
incNovel = self.swtIncNovel.isChecked()
incNotes = self.swtIncNotes.isChecked()
hideZeros = self.swtHideZeros.isChecked()
hideNegative = self.swtHideNegative.isChecked()
groupByDay = self.swtGroupByDay.isChecked()
showIdleTime = self.swtShowIdleTime.isChecked()
histMax = self.histMax.value()
logger.debug("Saving State: GuiWritingStats")
@@ -487,11 +510,11 @@ class GuiWritingStats(NToolDialog):
self.listBox.clear()
self.timeFilter = 0.0
incNovel = self.incNovel.isChecked()
incNotes = self.incNotes.isChecked()
hideZeros = self.hideZeros.isChecked()
hideNegative = self.hideNegative.isChecked()
groupByDay = self.groupByDay.isChecked()
incNovel = self.swtIncNovel.isChecked()
incNotes = self.swtIncNotes.isChecked()
hideZeros = self.swtHideZeros.isChecked()
hideNegative = self.swtHideNegative.isChecked()
groupByDay = self.swtGroupByDay.isChecked()
histMax = self.histMax.value()
# Group the data
@@ -563,7 +586,7 @@ class GuiWritingStats(NToolDialog):
# Populate the list
mTrans = Qt.TransformationMode.FastTransformation
mAspect = Qt.AspectRatioMode.IgnoreAspectRatio
showIdleTime = self.showIdleTime.isChecked()
showIdleTime = self.swtShowIdleTime.isChecked()
for _, sStart, sDiff, nWords, _, _, sIdle in self.filterData:
if showIdleTime: