Add test coverage of GuiBuildSettings tool
This commit is contained in:
@@ -59,8 +59,7 @@ class NPagedSideBar(QToolBar):
|
||||
return
|
||||
|
||||
def setLabelColor(self, color):
|
||||
"""Set the text color for the labels.
|
||||
"""
|
||||
"""Set the text color for the labels."""
|
||||
if isinstance(color, list):
|
||||
self._labelCol = QColor(*color)
|
||||
elif isinstance(color, QColor):
|
||||
@@ -68,8 +67,7 @@ class NPagedSideBar(QToolBar):
|
||||
return
|
||||
|
||||
def addSeparator(self):
|
||||
"""Add a spacer widget.
|
||||
"""
|
||||
"""Add a spacer widget."""
|
||||
spacer = QWidget(self)
|
||||
spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
|
||||
spacer.setFixedHeight(self._spacerHeight)
|
||||
@@ -77,16 +75,14 @@ class NPagedSideBar(QToolBar):
|
||||
return
|
||||
|
||||
def addLabel(self, text):
|
||||
"""Add a new label to the toolbar.
|
||||
"""
|
||||
"""Add a new label to the toolbar."""
|
||||
label = NPagedToolLabel(self, self._labelCol)
|
||||
label.setText(text)
|
||||
self.insertWidget(self._stretchAction, label)
|
||||
return
|
||||
|
||||
def addButton(self, text, buttonId=-1):
|
||||
"""Add a new button to the toolbar.
|
||||
"""
|
||||
"""Add a new button to the toolbar."""
|
||||
button = NPagedToolButton(self)
|
||||
button.setText(text)
|
||||
|
||||
@@ -99,8 +95,7 @@ class NPagedSideBar(QToolBar):
|
||||
return action
|
||||
|
||||
def setSelected(self, buttonId):
|
||||
"""Set the selected button.
|
||||
"""
|
||||
"""Set the selected button."""
|
||||
self._group.button(buttonId).setChecked(True)
|
||||
return
|
||||
|
||||
@@ -110,8 +105,7 @@ class NPagedSideBar(QToolBar):
|
||||
|
||||
@pyqtSlot("QAbstractButton*")
|
||||
def _buttonClicked(self, button):
|
||||
"""A button was clicked in the group, emit its id.
|
||||
"""
|
||||
"""A button was clicked in the group, emit its id."""
|
||||
buttonId = self._group.id(button)
|
||||
if buttonId != -1:
|
||||
self.buttonClicked.emit(buttonId)
|
||||
@@ -155,7 +149,7 @@ class NPagedToolButton(QToolButton):
|
||||
height = self.height()
|
||||
palette = self.palette()
|
||||
|
||||
if opt.state & QStyle.State_MouseOver:
|
||||
if opt.state & QStyle.State_MouseOver == QStyle.State_MouseOver:
|
||||
backCol = palette.alternateBase()
|
||||
paint.setBrush(backCol)
|
||||
paint.setOpacity(0.5)
|
||||
|
||||
@@ -45,11 +45,15 @@ class NSwitchBox(QScrollArea):
|
||||
self._hSwitch = baseSize
|
||||
self._wSwitch = 2*self._hSwitch
|
||||
self._sIcon = baseSize
|
||||
self._widgets = []
|
||||
self.clear()
|
||||
return
|
||||
|
||||
def clear(self):
|
||||
"""Rebuild the content of the core widget."""
|
||||
self._index = 0
|
||||
self._widgets = []
|
||||
|
||||
self._content = QGridLayout()
|
||||
self._content.setColumnStretch(1, 1)
|
||||
|
||||
@@ -69,6 +73,7 @@ class NSwitchBox(QScrollArea):
|
||||
font.setBold(True)
|
||||
label.setFont(font)
|
||||
self._content.addWidget(label, self._index, 0, 1, 3, Qt.AlignLeft)
|
||||
self._widgets.append(label)
|
||||
self._bumpIndex()
|
||||
return
|
||||
|
||||
@@ -87,16 +92,17 @@ class NSwitchBox(QScrollArea):
|
||||
switch.toggled.connect(lambda state: self._emitSwitchSignal(identifier, state))
|
||||
self._content.addWidget(switch, self._index, 2, Qt.AlignRight)
|
||||
|
||||
self._widgets.append(switch)
|
||||
self._bumpIndex()
|
||||
|
||||
return
|
||||
|
||||
def addSeparator(self):
|
||||
"""Add a blank entry in the content box.
|
||||
"""
|
||||
"""Add a blank entry in the content box."""
|
||||
spacer = QWidget()
|
||||
spacer.setFixedHeight(int(0.5*self._sIcon))
|
||||
self._content.addWidget(spacer, self._index, 0, 1, 3, Qt.AlignLeft)
|
||||
self._widgets.append(spacer)
|
||||
self._bumpIndex()
|
||||
return
|
||||
|
||||
|
||||
@@ -118,8 +118,8 @@ class GuiBuildSettings(QDialog):
|
||||
# Create Tabs
|
||||
self.optTabSelect = _FilterTab(self, self._build)
|
||||
self.optTabHeadings = _HeadingsTab(self, self._build)
|
||||
self.optTabFormat = _FormatTab(self, self._build)
|
||||
self.optTabContent = _ContentTab(self, self._build)
|
||||
self.optTabFormat = _FormatTab(self, self._build)
|
||||
self.optTabOutput = _OutputTab(self, self._build)
|
||||
|
||||
# Add Tabs
|
||||
@@ -408,9 +408,8 @@ class _FilterTab(QWidget):
|
||||
def mainSplitSizes(self) -> tuple[int, int]:
|
||||
"""Extract the sizes of the main splitter."""
|
||||
sizes = self.mainSplit.sizes()
|
||||
if len(sizes) < 2:
|
||||
return 0, 0
|
||||
return CONFIG.rpxInt(sizes[0]), CONFIG.rpxInt(sizes[1])
|
||||
m, n = (sizes[0], sizes[1]) if len(sizes) >= 2 else (0, 0)
|
||||
return CONFIG.rpxInt(m), CONFIG.rpxInt(n)
|
||||
|
||||
##
|
||||
# Slots
|
||||
@@ -436,7 +435,7 @@ class _FilterTab(QWidget):
|
||||
logger.debug("Building project tree")
|
||||
self._treeMap = {}
|
||||
self.optTree.clear()
|
||||
for nwItem in self.theProject.tree:
|
||||
for nwItem in self.theProject.getProjectItems():
|
||||
|
||||
tHandle = nwItem.itemHandle
|
||||
pHandle = nwItem.itemParent
|
||||
@@ -512,14 +511,14 @@ class _FilterTab(QWidget):
|
||||
|
||||
# Root Classes
|
||||
self.filterOpt.addLabel(self.tr("Root Folders"))
|
||||
for nwItem in self.theProject.getProjectItems():
|
||||
for tHandle, nwItem in self.theProject.tree.iterRoots(None):
|
||||
if not nwItem.isInactiveClass():
|
||||
itemIcon = self.mainTheme.getItemIcon(
|
||||
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout
|
||||
)
|
||||
self.filterOpt.addItem(
|
||||
itemIcon, nwItem.itemName, f"root:{nwItem.itemHandle}",
|
||||
default=self._build.isRootAllowed(nwItem.itemHandle)
|
||||
itemIcon, nwItem.itemName, f"root:{tHandle}",
|
||||
default=self._build.isRootAllowed(tHandle)
|
||||
)
|
||||
|
||||
return
|
||||
@@ -527,18 +526,16 @@ class _FilterTab(QWidget):
|
||||
def _setSelectedMode(self, mode: int):
|
||||
"""Set the mode for the selected items."""
|
||||
for item in self.optTree.selectedItems():
|
||||
if not isinstance(item, QTreeWidgetItem):
|
||||
continue
|
||||
|
||||
tHandle = item.data(self.C_DATA, self.D_HANDLE)
|
||||
isFile = item.data(self.C_DATA, self.D_FILE)
|
||||
if isFile:
|
||||
if mode == self.F_FILTERED:
|
||||
self._build.setFiltered(tHandle)
|
||||
elif mode == self.F_INCLUDED:
|
||||
self._build.setIncluded(tHandle)
|
||||
elif mode == self.F_EXCLUDED:
|
||||
self._build.setExcluded(tHandle)
|
||||
if isinstance(item, QTreeWidgetItem):
|
||||
tHandle = item.data(self.C_DATA, self.D_HANDLE)
|
||||
isFile = item.data(self.C_DATA, self.D_FILE)
|
||||
if isFile:
|
||||
if mode == self.F_FILTERED:
|
||||
self._build.setFiltered(tHandle)
|
||||
elif mode == self.F_INCLUDED:
|
||||
self._build.setIncluded(tHandle)
|
||||
elif mode == self.F_EXCLUDED:
|
||||
self._build.setExcluded(tHandle)
|
||||
|
||||
self._setTreeItemMode()
|
||||
|
||||
@@ -592,7 +589,7 @@ class _HeadingsTab(QWidget):
|
||||
# Title Heading
|
||||
self.lblTitle = QLabel(self._build.getLabel("headings.fmtTitle"))
|
||||
self.fmtTitle = QLineEdit("")
|
||||
self.fmtTitle.setEnabled(False)
|
||||
self.fmtTitle.setReadOnly(True)
|
||||
self.btnTitle = QToolButton()
|
||||
self.btnTitle.setIcon(self.mainTheme.getIcon("edit"))
|
||||
self.btnTitle.clicked.connect(lambda: self._editHeading(self.EDIT_TITLE))
|
||||
@@ -608,7 +605,7 @@ class _HeadingsTab(QWidget):
|
||||
# Chapter Heading
|
||||
self.lblChapter = QLabel(self._build.getLabel("headings.fmtChapter"))
|
||||
self.fmtChapter = QLineEdit("")
|
||||
self.fmtChapter.setEnabled(False)
|
||||
self.fmtChapter.setReadOnly(True)
|
||||
self.btnChapter = QToolButton()
|
||||
self.btnChapter.setIcon(self.mainTheme.getIcon("edit"))
|
||||
self.btnChapter.clicked.connect(lambda: self._editHeading(self.EDIT_CHAPTER))
|
||||
@@ -624,7 +621,7 @@ class _HeadingsTab(QWidget):
|
||||
# Unnumbered Chapter Heading
|
||||
self.lblUnnumbered = QLabel(self._build.getLabel("headings.fmtUnnumbered"))
|
||||
self.fmtUnnumbered = QLineEdit("")
|
||||
self.fmtUnnumbered.setEnabled(False)
|
||||
self.fmtUnnumbered.setReadOnly(True)
|
||||
self.btnUnnumbered = QToolButton()
|
||||
self.btnUnnumbered.setIcon(self.mainTheme.getIcon("edit"))
|
||||
self.btnUnnumbered.clicked.connect(lambda: self._editHeading(self.EDIT_UNNUM))
|
||||
@@ -641,7 +638,7 @@ class _HeadingsTab(QWidget):
|
||||
sceneHideTip = self._build.getLabel("headings.hideScene")
|
||||
self.lblScene = QLabel(self._build.getLabel("headings.fmtScene"))
|
||||
self.fmtScene = QLineEdit("")
|
||||
self.fmtScene.setEnabled(False)
|
||||
self.fmtScene.setReadOnly(True)
|
||||
self.btnScene = QToolButton()
|
||||
self.btnScene.setIcon(self.mainTheme.getIcon("edit"))
|
||||
self.btnScene.clicked.connect(lambda: self._editHeading(self.EDIT_SCENE))
|
||||
@@ -668,7 +665,7 @@ class _HeadingsTab(QWidget):
|
||||
sectionHideTip = self._build.getLabel("headings.hideSection")
|
||||
self.lblSection = QLabel(self._build.getLabel("headings.fmtSection"))
|
||||
self.fmtSection = QLineEdit("")
|
||||
self.fmtSection.setEnabled(False)
|
||||
self.fmtSection.setReadOnly(True)
|
||||
self.btnSection = QToolButton()
|
||||
self.btnSection.setIcon(self.mainTheme.getIcon("edit"))
|
||||
self.btnSection.clicked.connect(lambda: self._editHeading(self.EDIT_SECTION))
|
||||
@@ -814,7 +811,7 @@ class _HeadingsTab(QWidget):
|
||||
def _saveFormat(self):
|
||||
"""Save the format from the edit text box."""
|
||||
heading = self._editing
|
||||
text = self.editTextBox.toPlainText().replace("\n", "//")
|
||||
text = self.editTextBox.toPlainText().strip().replace("\n", "//")
|
||||
if heading == self.EDIT_TITLE:
|
||||
self.fmtTitle.setText(text)
|
||||
self._build.setValue("headings.fmtTitle", text)
|
||||
|
||||
Reference in New Issue
Block a user