Change icon for filtered items in build settings dialog

This commit is contained in:
Veronica Berglyd Olsen
2023-08-06 17:28:05 +02:00
parent 18d0265515
commit 2780e722d0
8 changed files with 37 additions and 31 deletions
+26 -20
View File
@@ -106,7 +106,7 @@ class GuiBuildSettings(QDialog):
self.optSideBar.setLabelColor(self.mainTheme.helpText)
self.optSideBar.addLabel(self.tr("Options"))
self.optSideBar.addButton(self.tr("Filters"), self.OPT_FILTERS)
self.optSideBar.addButton(self.tr("Selection"), self.OPT_FILTERS)
self.optSideBar.addButton(self.tr("Headings"), self.OPT_HEADINGS)
self.optSideBar.addButton(self.tr("Content"), self.OPT_CONTENT)
self.optSideBar.addButton(self.tr("Format"), self.OPT_FORMAT)
@@ -301,16 +301,19 @@ class _FilterTab(QWidget):
self.mainTheme = buildMain.mainGui.mainTheme
self.theProject = buildMain.mainGui.theProject
self._treeMap = {}
self._treeMap: dict[str, QTreeWidgetItem] = {}
self._build = build
self._statusFlags = {
self.F_NONE: ("", QIcon()),
self.F_FILTERED: (self.tr("Filtered"), self.mainTheme.getIcon("build_filtered")),
self.F_INCLUDED: (self.tr("Included"), self.mainTheme.getIcon("build_included")),
self.F_EXCLUDED: (self.tr("Excluded"), self.mainTheme.getIcon("build_excluded")),
self._statusFlags: dict[int, QIcon] = {
self.F_NONE: QIcon(),
self.F_FILTERED: self.mainTheme.getIcon("build_filtered"),
self.F_INCLUDED: self.mainTheme.getIcon("build_included"),
self.F_EXCLUDED: self.mainTheme.getIcon("build_excluded"),
}
self._trIncluded = self.tr("Included in manuscript")
self._trExcluded = self.tr("Excluded from manuscript")
# Project Tree
# ============
@@ -341,25 +344,25 @@ class _FilterTab(QWidget):
# Filters
# =======
self.filteredButton = QToolButton(self)
self.filteredButton.setToolTip(self._statusFlags[self.F_FILTERED][0])
self.filteredButton.setIcon(self._statusFlags[self.F_FILTERED][1])
self.filteredButton.clicked.connect(lambda: self._setSelectedMode(self.F_FILTERED))
self.resetButton = QToolButton(self)
self.resetButton.setToolTip(self.tr("Reset to default"))
self.resetButton.setIcon(self.mainTheme.getIcon("revert"))
self.resetButton.clicked.connect(lambda: self._setSelectedMode(self.F_FILTERED))
self.includedButton = QToolButton(self)
self.includedButton.setToolTip(self._statusFlags[self.F_INCLUDED][0])
self.includedButton.setIcon(self._statusFlags[self.F_INCLUDED][1])
self.includedButton.setToolTip(self.tr("Always included"))
self.includedButton.setIcon(self._statusFlags[self.F_INCLUDED])
self.includedButton.clicked.connect(lambda: self._setSelectedMode(self.F_INCLUDED))
self.excludedButton = QToolButton(self)
self.excludedButton.setToolTip(self._statusFlags[self.F_EXCLUDED][0])
self.excludedButton.setIcon(self._statusFlags[self.F_EXCLUDED][1])
self.excludedButton.setToolTip(self.tr("Always excluded"))
self.excludedButton.setIcon(self._statusFlags[self.F_EXCLUDED])
self.excludedButton.clicked.connect(lambda: self._setSelectedMode(self.F_EXCLUDED))
self.modeBox = QHBoxLayout()
self.modeBox.addWidget(QLabel(self.tr("Mark selection as")))
self.modeBox.addStretch(1)
self.modeBox.addWidget(self.filteredButton)
self.modeBox.addWidget(self.resetButton)
self.modeBox.addWidget(self.includedButton)
self.modeBox.addWidget(self.excludedButton)
@@ -549,13 +552,16 @@ class _FilterTab(QWidget):
for tHandle, item in self._treeMap.items():
allow, mode = filtered.get(tHandle, (False, FilterMode.UNKNOWN))
if mode == FilterMode.INCLUDED:
item.setIcon(self.C_STATUS, self._statusFlags[self.F_INCLUDED][1])
item.setIcon(self.C_STATUS, self._statusFlags[self.F_INCLUDED])
item.setToolTip(self.C_STATUS, self._trIncluded)
elif mode == FilterMode.EXCLUDED:
item.setIcon(self.C_STATUS, self._statusFlags[self.F_EXCLUDED][1])
item.setIcon(self.C_STATUS, self._statusFlags[self.F_EXCLUDED])
item.setToolTip(self.C_STATUS, self._trExcluded)
elif mode == FilterMode.FILTERED and allow:
item.setIcon(self.C_STATUS, self._statusFlags[self.F_FILTERED][1])
item.setIcon(self.C_STATUS, self._statusFlags[self.F_FILTERED])
item.setToolTip(self.C_STATUS, self._trIncluded)
else:
item.setIcon(self.C_STATUS, self._statusFlags[self.F_NONE][1])
item.setIcon(self.C_STATUS, self._statusFlags[self.F_NONE])
return
# END Class _FilterTab