Add a switch box widget and use it for filter options in build

This commit is contained in:
Veronica Berglyd Olsen
2023-04-16 21:19:09 +02:00
parent b6dceacaf0
commit 29386e8595
5 changed files with 142 additions and 12 deletions
+23 -3
View File
@@ -24,16 +24,18 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
import logging
import novelwriter
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import QSize, Qt, pyqtSlot
from PyQt5.QtWidgets import (
QAbstractItemView, QDialog, QHBoxLayout, QHeaderView, QPushButton, QStackedWidget,
QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget
QAbstractItemView, QDialog, QHBoxLayout, QHeaderView, QPushButton,
QStackedWidget, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget
)
from novelwriter.core.buildsettings import BuildSettings
from novelwriter.extensions.switchbox import NSwitchBox
from novelwriter.extensions.pagedsidebar import NPagedSideBar
logger = logging.getLogger(__name__)
@@ -242,10 +244,28 @@ class GuiBuildFilterTab(QWidget):
self.modeBox.addWidget(self.includedButton)
self.modeBox.addWidget(self.excludedButton)
# Filer Options
self.filterOpt = NSwitchBox(self, iPx)
self.filterOpt.addLabel(self.tr("Document Types"))
self.filterOpt.addItem(QIcon(), "Novel Documents", "doc:novel")
self.filterOpt.addItem(QIcon(), "Project Notes", "doc:notes")
self.filterOpt.addItem(QIcon(), "Inactive Documents", "doc:inactive")
self.filterOpt.addSeparator()
# Root Classes
self.filterOpt.addLabel(self.tr("Root Folders"))
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:{tHandle}")
# Assemble
self.selectionBox = QVBoxLayout()
self.selectionBox.addLayout(self.modeBox)
self.selectionBox.addStretch()
self.selectionBox.addWidget(self.filterOpt)
self.outerBox = QHBoxLayout()
self.outerBox.addWidget(self.optTree)