Separate project tree icons from the rest

This commit is contained in:
Veronica Berglyd Olsen
2025-01-08 22:22:09 +01:00
parent 5650792be8
commit a0fea3c025
23 changed files with 215 additions and 138 deletions
+2 -6
View File
@@ -410,9 +410,7 @@ class _ViewPanelKeyWords(QTreeWidget):
treeHeader.setSectionsMovable(False)
# Cache Icons Locally
self._classIcon = SHARED.theme.getIcon(
nwLabels.CLASS_ICON[itemClass], nwLabels.CLASS_COLOR[itemClass]
)
self._classIcon = SHARED.theme.getIcon(nwLabels.CLASS_ICON[itemClass], "root")
self._editIcon = SHARED.theme.getIcon("edit", "green")
self._viewIcon = SHARED.theme.getIcon("view", "blue")
@@ -424,9 +422,7 @@ class _ViewPanelKeyWords(QTreeWidget):
def updateTheme(self) -> None:
"""Update theme elements."""
self._classIcon = SHARED.theme.getIcon(
nwLabels.CLASS_ICON[self._class], nwLabels.CLASS_COLOR[self._class]
)
self._classIcon = SHARED.theme.getIcon(nwLabels.CLASS_ICON[self._class], "root")
self._editIcon = SHARED.theme.getIcon("edit", "green")
self._viewIcon = SHARED.theme.getIcon("view", "blue")
for i in range(self.topLevelItemCount()):
+1 -3
View File
@@ -255,9 +255,7 @@ class GuiItemDetails(QWidget):
# Class
# =====
classIcon = SHARED.theme.getIcon(
nwLabels.CLASS_ICON[nwItem.itemClass], nwLabels.CLASS_COLOR[nwItem.itemClass]
)
classIcon = SHARED.theme.getIcon(nwLabels.CLASS_ICON[nwItem.itemClass], "root")
self.classIcon.setPixmap(classIcon.pixmap(iPx, iPx))
self.classData.setText(trConst(nwLabels.CLASS_NAME[nwItem.itemClass]))
+7 -11
View File
@@ -369,11 +369,11 @@ class GuiProjectToolBar(QWidget):
self.tbAdd.setThemeIcon("add", "green")
self.tbMore.setThemeIcon("more_vertical")
self.aAddEmpty.setIcon(SHARED.theme.getIcon("document"))
self.aAddChap.setIcon(SHARED.theme.getIcon("document", "red"))
self.aAddScene.setIcon(SHARED.theme.getIcon("document", "blue"))
self.aAddNote.setIcon(SHARED.theme.getIcon("document", "yellow"))
self.aAddFolder.setIcon(SHARED.theme.getIcon("folder"))
self.aAddEmpty.setIcon(SHARED.theme.getIcon("prj_document", "file"))
self.aAddChap.setIcon(SHARED.theme.getIcon("prj_chapter", "chapter"))
self.aAddScene.setIcon(SHARED.theme.getIcon("prj_scene", "scene"))
self.aAddNote.setIcon(SHARED.theme.getIcon("prj_note", "note"))
self.aAddFolder.setIcon(SHARED.theme.getIcon("prj_folder", "folder"))
self.buildTemplatesMenu()
self.buildQuickLinksMenu()
@@ -394,9 +394,7 @@ class GuiProjectToolBar(QWidget):
for tHandle, nwItem in SHARED.project.tree.iterRoots(None):
action = self.mQuick.addAction(nwItem.itemName)
action.setData(tHandle)
action.setIcon(SHARED.theme.getIcon(
nwLabels.CLASS_ICON[nwItem.itemClass], nwLabels.CLASS_COLOR[nwItem.itemClass]
))
action.setIcon(SHARED.theme.getIcon(nwLabels.CLASS_ICON[nwItem.itemClass], "root"))
action.triggered.connect(
qtLambda(self.projView.setSelectedHandle, tHandle, doScroll=True)
)
@@ -443,9 +441,7 @@ class GuiProjectToolBar(QWidget):
"""Build the rood folder menu."""
def addClass(itemClass: nwItemClass) -> None:
aNew = self.mAddRoot.addAction(trConst(nwLabels.CLASS_NAME[itemClass]))
aNew.setIcon(SHARED.theme.getIcon(
nwLabels.CLASS_ICON[itemClass], nwLabels.CLASS_COLOR[itemClass]
))
aNew.setIcon(SHARED.theme.getIcon(nwLabels.CLASS_ICON[itemClass], "root"))
aNew.triggered.connect(
qtLambda(self.projTree.newTreeItem, nwItemType.ROOT, itemClass)
)
+36 -18
View File
@@ -260,6 +260,17 @@ class GuiTheme:
self.iconCache.setIconColor("blue", self._parseColour(parser, sec, "blue"))
self.iconCache.setIconColor("purple", self._parseColour(parser, sec, "purple"))
# Project
sec = "Project"
if parser.has_section(sec):
self.iconCache.setIconColor("root", self._parseColour(parser, sec, "root"))
self.iconCache.setIconColor("folder", self._parseColour(parser, sec, "folder"))
self.iconCache.setIconColor("file", self._parseColour(parser, sec, "file"))
self.iconCache.setIconColor("title", self._parseColour(parser, sec, "title"))
self.iconCache.setIconColor("chapter", self._parseColour(parser, sec, "chapter"))
self.iconCache.setIconColor("scene", self._parseColour(parser, sec, "scene"))
self.iconCache.setIconColor("note", self._parseColour(parser, sec, "note"))
# Palette
sec = "Palette"
if parser.has_section(sec):
@@ -648,20 +659,27 @@ class GuiIcons:
color = "default"
if tType == nwItemType.ROOT:
name = nwLabels.CLASS_ICON[tClass]
color = nwLabels.CLASS_COLOR[tClass]
color = "root"
elif tType == nwItemType.FOLDER:
name = "folder"
name = "prj_folder"
color = "folder"
elif tType == nwItemType.FILE:
name = "document"
if tLayout == nwItemLayout.DOCUMENT:
if hLevel == "H1":
color = "green"
name = "prj_title"
color = "title"
elif hLevel == "H2":
color = "red"
name = "prj_chapter"
color = "chapter"
elif hLevel == "H3":
color = "blue"
name = "prj_scene"
color = "scene"
else:
name = "prj_document"
color = "file"
elif tLayout == nwItemLayout.NOTE:
color = "yellow"
name = "prj_note"
color = "note"
if name is None:
return self._noIcon
@@ -672,11 +690,11 @@ class GuiIcons:
if not self._headerDec:
iPx = self.mainTheme.baseIconHeight
self._headerDec = [
self._generateDecoration("default", iPx, 0),
self._generateDecoration("green", iPx, 0),
self._generateDecoration("red", iPx, 1),
self._generateDecoration("blue", iPx, 2),
self._generateDecoration("default", iPx, 3),
self._generateDecoration("file", iPx, 0),
self._generateDecoration("title", iPx, 0),
self._generateDecoration("chapter", iPx, 1),
self._generateDecoration("scene", iPx, 2),
self._generateDecoration("file", iPx, 3),
]
return self._headerDec[minmax(hLevel, 0, 4)]
@@ -685,12 +703,12 @@ class GuiIcons:
if not self._headerDecNarrow:
iPx = self.mainTheme.baseIconHeight
self._headerDecNarrow = [
self._generateDecoration("default", iPx, 0),
self._generateDecoration("green", iPx, 0),
self._generateDecoration("red", iPx, 0),
self._generateDecoration("blue", iPx, 0),
self._generateDecoration("default", iPx, 0),
self._generateDecoration("yellow", iPx, 0),
self._generateDecoration("file", iPx, 0),
self._generateDecoration("title", iPx, 0),
self._generateDecoration("chapter", iPx, 0),
self._generateDecoration("scene", iPx, 0),
self._generateDecoration("file", iPx, 0),
self._generateDecoration("note", iPx, 0),
]
return self._headerDecNarrow[minmax(hLevel, 0, 5)]