diff --git a/novelwriter/assets/icons/material_filled_bold.icons b/novelwriter/assets/icons/material_filled_bold.icons
index 92889201..4abcebf4 100644
--- a/novelwriter/assets/icons/material_filled_bold.icons
+++ b/novelwriter/assets/icons/material_filled_bold.icons
@@ -2,8 +2,8 @@
# Meta
meta:name = Material Symbols - Filled Bold
-meta:author = Google
-meta:license = Apache License Version 2.0
+meta:author = Google Inc
+meta:license = Apache 2.0
# Icons
icon:alert_error =
@@ -22,10 +22,16 @@ icon:cls_template =
icon:cls_trash =
icon:cls_world =
+icon:prj_folder =
+icon:prj_document =
+icon:prj_title =
+icon:prj_chapter =
+icon:prj_scene =
+icon:prj_note =
icon:fmt_bold =
icon:fmt_italic =
icon:fmt_mark =
-icon:fmt_strike =
+icon:fmt_strike =
icon:fmt_subscript =
icon:fmt_superscript =
icon:fmt_underline =
@@ -47,7 +53,7 @@ icon:add =
icon:browse =
icon:cancel =
-icon:checked =
+icon:checked =
icon:chevron_down =
icon:chevron_left =
icon:chevron_right =
@@ -55,10 +61,10 @@ icon:chevron_up =
icon:copy =
icon:document_add =
-icon:document =
+icon:document =
icon:edit =
icon:exclude =
-icon:export =
+icon:export =
icon:filter =
icon:fit_height =
icon:fit_width =
@@ -80,7 +86,7 @@ icon:more_vertical =
icon:novel_view =
icon:open =
-icon:outline =
+icon:outline =
icon:panel =
icon:pin =
icon:project_copy =
@@ -92,6 +98,7 @@ icon:revert =
icon:star =
icon:stats =
+icon:text =
icon:timer_off =
icon:timer =
icon:unchecked =
diff --git a/novelwriter/assets/icons/material_filled_normal.icons b/novelwriter/assets/icons/material_filled_normal.icons
index 2f3d1b84..53e88c4c 100644
--- a/novelwriter/assets/icons/material_filled_normal.icons
+++ b/novelwriter/assets/icons/material_filled_normal.icons
@@ -2,8 +2,8 @@
# Meta
meta:name = Material Symbols - Filled Medium
-meta:author = Google
-meta:license = Apache License Version 2.0
+meta:author = Google Inc
+meta:license = Apache 2.0
# Icons
icon:alert_error =
@@ -22,10 +22,16 @@ icon:cls_template =
icon:cls_trash =
icon:cls_world =
+icon:prj_folder =
+icon:prj_document =
+icon:prj_title =
+icon:prj_chapter =
+icon:prj_scene =
+icon:prj_note =
icon:fmt_bold =
icon:fmt_italic =
icon:fmt_mark =
-icon:fmt_strike =
+icon:fmt_strike =
icon:fmt_subscript =
icon:fmt_superscript =
icon:fmt_underline =
@@ -47,7 +53,7 @@ icon:add =
icon:browse =
icon:cancel =
-icon:checked =
+icon:checked =
icon:chevron_down =
icon:chevron_left =
icon:chevron_right =
@@ -55,10 +61,10 @@ icon:chevron_up =
icon:copy =
icon:document_add =
-icon:document =
+icon:document =
icon:edit =
icon:exclude =
-icon:export =
+icon:export =
icon:filter =
icon:fit_height =
icon:fit_width =
@@ -80,7 +86,7 @@ icon:more_vertical =
icon:novel_view =
icon:open =
-icon:outline =
+icon:outline =
icon:panel =
icon:pin =
icon:project_copy =
@@ -92,6 +98,7 @@ icon:revert =
icon:star =
icon:stats =
+icon:text =
icon:timer_off =
icon:timer =
icon:unchecked =
diff --git a/novelwriter/assets/icons/material_filled_thin.icons b/novelwriter/assets/icons/material_filled_thin.icons
index 70206ae1..43a60e8d 100644
--- a/novelwriter/assets/icons/material_filled_thin.icons
+++ b/novelwriter/assets/icons/material_filled_thin.icons
@@ -2,8 +2,8 @@
# Meta
meta:name = Material Symbols - Filled Thin
-meta:author = Google
-meta:license = Apache License Version 2.0
+meta:author = Google Inc
+meta:license = Apache 2.0
# Icons
icon:alert_error =
@@ -22,10 +22,16 @@ icon:cls_template =
icon:cls_trash =
icon:cls_world =
+icon:prj_folder =
+icon:prj_document =
+icon:prj_title =
+icon:prj_chapter =
+icon:prj_scene =
+icon:prj_note =
icon:fmt_bold =
icon:fmt_italic =
icon:fmt_mark =
-icon:fmt_strike =
+icon:fmt_strike =
icon:fmt_subscript =
icon:fmt_superscript =
icon:fmt_underline =
@@ -47,7 +53,7 @@ icon:add =
icon:browse =
icon:cancel =
-icon:checked =
+icon:checked =
icon:chevron_down =
icon:chevron_left =
icon:chevron_right =
@@ -55,10 +61,10 @@ icon:chevron_up =
icon:copy =
icon:document_add =
-icon:document =
+icon:document =
icon:edit =
icon:exclude =
-icon:export =
+icon:export =
icon:filter =
icon:fit_height =
icon:fit_width =
@@ -80,7 +86,7 @@ icon:more_vertical =
icon:novel_view =
icon:open =
-icon:outline =
+icon:outline =
icon:panel =
icon:pin =
icon:project_copy =
@@ -92,6 +98,7 @@ icon:revert =
icon:star =
icon:stats =
+icon:text =
icon:timer_off =
icon:timer =
icon:unchecked =
diff --git a/novelwriter/assets/icons/material_rounded_bold.icons b/novelwriter/assets/icons/material_rounded_bold.icons
index dde3f32e..30297456 100644
--- a/novelwriter/assets/icons/material_rounded_bold.icons
+++ b/novelwriter/assets/icons/material_rounded_bold.icons
@@ -2,8 +2,8 @@
# Meta
meta:name = Material Symbols - Rounded Bold
-meta:author = Google
-meta:license = Apache License Version 2.0
+meta:author = Google Inc
+meta:license = Apache 2.0
# Icons
icon:alert_error =
@@ -22,10 +22,16 @@ icon:cls_template =
icon:cls_trash =
icon:cls_world =
+icon:prj_folder =
+icon:prj_document =
+icon:prj_title =
+icon:prj_chapter =
+icon:prj_scene =
+icon:prj_note =
icon:fmt_bold =
icon:fmt_italic =
icon:fmt_mark =
-icon:fmt_strike =
+icon:fmt_strike =
icon:fmt_subscript =
icon:fmt_superscript =
icon:fmt_underline =
@@ -47,7 +53,7 @@ icon:add =
icon:browse =
icon:cancel =
-icon:checked =
+icon:checked =
icon:chevron_down =
icon:chevron_left =
icon:chevron_right =
@@ -55,10 +61,10 @@ icon:chevron_up =
icon:copy =
icon:document_add =
-icon:document =
+icon:document =
icon:edit =
icon:exclude =
-icon:export =
+icon:export =
icon:filter =
icon:fit_height =
icon:fit_width =
@@ -80,7 +86,7 @@ icon:more_vertical =
icon:novel_view =
icon:open =
-icon:outline =
+icon:outline =
icon:panel =
icon:pin =
icon:project_copy =
@@ -92,6 +98,7 @@ icon:revert =
icon:star =
icon:stats =
+icon:text =
icon:timer_off =
icon:timer =
icon:unchecked =
diff --git a/novelwriter/assets/icons/material_rounded_normal.icons b/novelwriter/assets/icons/material_rounded_normal.icons
index fe240ee7..f6995c5b 100644
--- a/novelwriter/assets/icons/material_rounded_normal.icons
+++ b/novelwriter/assets/icons/material_rounded_normal.icons
@@ -2,8 +2,8 @@
# Meta
meta:name = Material Symbols - Rounded Medium
-meta:author = Google
-meta:license = Apache License Version 2.0
+meta:author = Google Inc
+meta:license = Apache 2.0
# Icons
icon:alert_error =
@@ -22,10 +22,16 @@ icon:cls_template =
icon:cls_trash =
icon:cls_world =
+icon:prj_folder =
+icon:prj_document =
+icon:prj_title =
+icon:prj_chapter =
+icon:prj_scene =
+icon:prj_note =
icon:fmt_bold =
icon:fmt_italic =
icon:fmt_mark =
-icon:fmt_strike =
+icon:fmt_strike =
icon:fmt_subscript =
icon:fmt_superscript =
icon:fmt_underline =
@@ -47,7 +53,7 @@ icon:add =
icon:browse =
icon:cancel =
-icon:checked =
+icon:checked =
icon:chevron_down =
icon:chevron_left =
icon:chevron_right =
@@ -55,10 +61,10 @@ icon:chevron_up =
icon:copy =
icon:document_add =
-icon:document =
+icon:document =
icon:edit =
icon:exclude =
-icon:export =
+icon:export =
icon:filter =
icon:fit_height =
icon:fit_width =
@@ -80,7 +86,7 @@ icon:more_vertical =
icon:novel_view =
icon:open =
-icon:outline =
+icon:outline =
icon:panel =
icon:pin =
icon:project_copy =
@@ -92,6 +98,7 @@ icon:revert =
icon:star =
icon:stats =
+icon:text =
icon:timer_off =
icon:timer =
icon:unchecked =
diff --git a/novelwriter/assets/icons/material_rounded_thin.icons b/novelwriter/assets/icons/material_rounded_thin.icons
index 19a60761..e809255b 100644
--- a/novelwriter/assets/icons/material_rounded_thin.icons
+++ b/novelwriter/assets/icons/material_rounded_thin.icons
@@ -2,8 +2,8 @@
# Meta
meta:name = Material Symbols - Rounded Thin
-meta:author = Google
-meta:license = Apache License Version 2.0
+meta:author = Google Inc
+meta:license = Apache 2.0
# Icons
icon:alert_error =
@@ -22,10 +22,16 @@ icon:cls_template =
icon:cls_trash =
icon:cls_world =
+icon:prj_folder =
+icon:prj_document =
+icon:prj_title =
+icon:prj_chapter =
+icon:prj_scene =
+icon:prj_note =
icon:fmt_bold =
icon:fmt_italic =
icon:fmt_mark =
-icon:fmt_strike =
+icon:fmt_strike =
icon:fmt_subscript =
icon:fmt_superscript =
icon:fmt_underline =
@@ -47,7 +53,7 @@ icon:add =
icon:browse =
icon:cancel =
-icon:checked =
+icon:checked =
icon:chevron_down =
icon:chevron_left =
icon:chevron_right =
@@ -55,10 +61,10 @@ icon:chevron_up =
icon:copy =
icon:document_add =
-icon:document =
+icon:document =
icon:edit =
icon:exclude =
-icon:export =
+icon:export =
icon:filter =
icon:fit_height =
icon:fit_width =
@@ -80,7 +86,7 @@ icon:more_vertical =
icon:novel_view =
icon:open =
-icon:outline =
+icon:outline =
icon:panel =
icon:pin =
icon:project_copy =
@@ -92,6 +98,7 @@ icon:revert =
icon:star =
icon:stats =
+icon:text =
icon:timer_off =
icon:timer =
icon:unchecked =
diff --git a/novelwriter/assets/themes/cyberpunk_night.conf b/novelwriter/assets/themes/cyberpunk_night.conf
index 54c68b6c..143e1f20 100644
--- a/novelwriter/assets/themes/cyberpunk_night.conf
+++ b/novelwriter/assets/themes/cyberpunk_night.conf
@@ -16,6 +16,15 @@ aqua = 0, 255, 255
blue = 77, 77, 255
purple = 50, 0, 180
+[Project]
+root = 77, 77, 255
+folder = 255, 255, 0
+file = 150, 150, 150
+title = 0, 255, 0
+chapter = 242, 72, 23
+scene = 77, 77, 255
+note = 255, 255, 0
+
[Palette]
window = 0, 0, 0
windowtext = 150, 150, 150
diff --git a/novelwriter/assets/themes/default_dark.conf b/novelwriter/assets/themes/default_dark.conf
index 17fbe2cd..39b5369c 100644
--- a/novelwriter/assets/themes/default_dark.conf
+++ b/novelwriter/assets/themes/default_dark.conf
@@ -17,6 +17,15 @@ aqua = 102, 204, 204
blue = 102, 153, 204
purple = 204, 153, 204
+[Project]
+root = 102, 153, 204
+folder = 255, 204, 102
+file = 204, 204, 204
+title = 153, 204, 153
+chapter = 242, 119, 122
+scene = 102, 153, 204
+note = 255, 204, 102
+
[Palette]
window = 54, 54, 54
windowtext = 204, 204, 204
diff --git a/novelwriter/assets/themes/default_light.conf b/novelwriter/assets/themes/default_light.conf
index f3374a24..c52d1d3c 100644
--- a/novelwriter/assets/themes/default_light.conf
+++ b/novelwriter/assets/themes/default_light.conf
@@ -17,6 +17,15 @@ aqua = 62, 153, 159
blue = 66, 113, 174
purple = 137, 89, 168
+[Project]
+root = 66, 113, 174
+folder = 234, 183, 0
+file = 77, 77, 76
+title = 113, 140, 0
+chapter = 240, 40, 41
+scene = 66, 113, 174
+note = 234, 183, 0
+
[Palette]
window = 239, 239, 239
windowtext = 0, 0, 0
diff --git a/novelwriter/assets/themes/dracula.conf b/novelwriter/assets/themes/dracula.conf
index f9e5a41e..5bcd14f3 100644
--- a/novelwriter/assets/themes/dracula.conf
+++ b/novelwriter/assets/themes/dracula.conf
@@ -29,9 +29,17 @@ orange = 255, 184, 108
yellow = 241, 250, 140
green = 80, 250, 123
aqua = 139, 233, 253
-blue = 255, 121, 198
+blue = 139, 233, 253
purple = 189, 147, 249
+[Project]
+root = 189, 147, 249
+folder = 241, 250, 140
+file = 248, 248, 242
+title = 80, 250, 123
+chapter = 255, 85, 85
+scene = 139, 233, 253
+note = 241, 250, 140
[Palette]
window = 68, 71, 90
diff --git a/novelwriter/assets/themes/solarized_dark.conf b/novelwriter/assets/themes/solarized_dark.conf
index 904dc734..7bcc1073 100644
--- a/novelwriter/assets/themes/solarized_dark.conf
+++ b/novelwriter/assets/themes/solarized_dark.conf
@@ -16,6 +16,15 @@ aqua = 42, 161, 152
blue = 38, 139, 210
purple = 108, 113, 196
+[Project]
+root = 42, 161, 152
+folder = 42, 161, 152
+file = 253, 246, 227
+title = 133, 153, 0
+chapter = 220, 50, 47
+scene = 38, 139, 210
+note = 181, 137, 0
+
[Palette]
window = 0, 43, 54
windowtext = 253, 246, 227
diff --git a/novelwriter/assets/themes/solarized_light.conf b/novelwriter/assets/themes/solarized_light.conf
index 2cea39a9..6cf7c7d6 100644
--- a/novelwriter/assets/themes/solarized_light.conf
+++ b/novelwriter/assets/themes/solarized_light.conf
@@ -16,6 +16,14 @@ aqua = 42, 161, 152
blue = 38, 139, 210
purple = 108, 113, 196
+[Project]
+root = 42, 161, 152
+folder = 42, 161, 152
+file = 0, 43, 54
+title = 133, 153, 0
+chapter = 220, 50, 47
+scene = 38, 139, 210
+note = 181, 137, 0
[Palette]
window = 238, 232, 213
diff --git a/novelwriter/constants.py b/novelwriter/constants.py
index 8213cc21..bdedab10 100644
--- a/novelwriter/constants.py
+++ b/novelwriter/constants.py
@@ -258,20 +258,6 @@ class nwLabels:
nwItemClass.TEMPLATE: "cls_template",
nwItemClass.TRASH: "cls_trash",
}
- CLASS_COLOR = {
- nwItemClass.NO_CLASS: "default",
- nwItemClass.NOVEL: "red",
- nwItemClass.PLOT: "blue",
- nwItemClass.CHARACTER: "blue",
- nwItemClass.WORLD: "blue",
- nwItemClass.TIMELINE: "blue",
- nwItemClass.OBJECT: "blue",
- nwItemClass.ENTITY: "blue",
- nwItemClass.CUSTOM: "blue",
- nwItemClass.ARCHIVE: "red",
- nwItemClass.TEMPLATE: "yellow",
- nwItemClass.TRASH: "red",
- }
LAYOUT_NAME = {
nwItemLayout.NO_LAYOUT: QT_TRANSLATE_NOOP("Constant", "None"),
nwItemLayout.DOCUMENT: QT_TRANSLATE_NOOP("Constant", "Novel Document"),
diff --git a/novelwriter/extensions/novelselector.py b/novelwriter/extensions/novelselector.py
index e57a3bce..0f083151 100644
--- a/novelwriter/extensions/novelselector.py
+++ b/novelwriter/extensions/novelselector.py
@@ -94,9 +94,7 @@ class NovelSelector(QComboBox):
self._firstHandle = None
self.clear()
- icon = SHARED.theme.getIcon(
- nwLabels.CLASS_ICON[nwItemClass.NOVEL], nwLabels.CLASS_COLOR[nwItemClass.NOVEL]
- )
+ icon = SHARED.theme.getIcon(nwLabels.CLASS_ICON[nwItemClass.NOVEL], "blue")
handle = self.currentData()
for tHandle, nwItem in SHARED.project.tree.iterRoots(nwItemClass.NOVEL):
if self._listFormat:
diff --git a/novelwriter/gui/docviewerpanel.py b/novelwriter/gui/docviewerpanel.py
index 262817a9..f3c4359a 100644
--- a/novelwriter/gui/docviewerpanel.py
+++ b/novelwriter/gui/docviewerpanel.py
@@ -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()):
diff --git a/novelwriter/gui/itemdetails.py b/novelwriter/gui/itemdetails.py
index 32fd926f..47340c7c 100644
--- a/novelwriter/gui/itemdetails.py
+++ b/novelwriter/gui/itemdetails.py
@@ -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]))
diff --git a/novelwriter/gui/projtree.py b/novelwriter/gui/projtree.py
index 61da1285..4b5490f8 100644
--- a/novelwriter/gui/projtree.py
+++ b/novelwriter/gui/projtree.py
@@ -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)
)
diff --git a/novelwriter/gui/theme.py b/novelwriter/gui/theme.py
index 6bba79a6..924ec88c 100644
--- a/novelwriter/gui/theme.py
+++ b/novelwriter/gui/theme.py
@@ -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)]
diff --git a/novelwriter/tools/lipsum.py b/novelwriter/tools/lipsum.py
index 1ca20005..df02d82d 100644
--- a/novelwriter/tools/lipsum.py
+++ b/novelwriter/tools/lipsum.py
@@ -60,7 +60,7 @@ class GuiLipsum(NDialog):
# Icon
self.docIcon = QLabel(self)
- self.docIcon.setPixmap(SHARED.theme.getPixmap("document", (nPx, nPx), "blue"))
+ self.docIcon.setPixmap(SHARED.theme.getPixmap("text", (nPx, nPx), "blue"))
self.leftBox = QVBoxLayout()
self.leftBox.setSpacing(vSp)
diff --git a/novelwriter/tools/manussettings.py b/novelwriter/tools/manussettings.py
index ab9cb041..c0202e2f 100644
--- a/novelwriter/tools/manussettings.py
+++ b/novelwriter/tools/manussettings.py
@@ -459,13 +459,13 @@ class _FilterTab(NFixedPage):
self.filterOpt.clear()
self.filterOpt.addLabel(self._build.getLabel("filter"))
self.filterOpt.addItem(
- SHARED.theme.getIcon("document", "blue"),
+ SHARED.theme.getIcon("prj_scene", "scene"),
self._build.getLabel("filter.includeNovel"),
"doc:filter.includeNovel",
default=self._build.getBool("filter.includeNovel")
)
self.filterOpt.addItem(
- SHARED.theme.getIcon("document", "yellow"),
+ SHARED.theme.getIcon("prj_note", "note"),
self._build.getLabel("filter.includeNotes"),
"doc:filter.includeNotes",
default=self._build.getBool("filter.includeNotes")
diff --git a/pkgutils.py b/pkgutils.py
index 1e714351..060a1220 100755
--- a/pkgutils.py
+++ b/pkgutils.py
@@ -344,7 +344,7 @@ def buildIconTheme(args: argparse.Namespace) -> None:
iconsDir = CURR_DIR / "novelwriter" / "assets" / "icons"
style = args.style
- if style == "material":
+ if style in ("all", "material"):
processMaterialIcons(workDir, iconsDir, {
"material_rounded_thin": {
"name": "Material Symbols - Rounded Thin",
diff --git a/setup/debian/copyright b/setup/debian/copyright
index dfa36a1f..2b2a3300 100644
--- a/setup/debian/copyright
+++ b/setup/debian/copyright
@@ -19,32 +19,17 @@ License: GPL-3.0-or-later
You should have received a copy of the GNU General Public License
along with this program. If not, see .
-Files: novelwriter/assets/icons/typicons_*.svg
-Copyright: 2019, Stephen Hutchings
-License: CC-BY-SA-4.0
- This work is licensed under the Creative Commons Attribution-ShareAlike 4.0
- International License. To view a copy of this license, visit
- http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative
- Commons, PO Box 1866, Mountain View, CA 94042, USA.
+Files: novelwriter/assets/icons/material_*
+Copyright: Google Inc
+License: Apache-2.0
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
.
- Share — copy and redistribute the material in any medium or format
+ http://www.apache.org/licenses/LICENSE-2.0
.
- Adapt — remix, transform, and build upon the material for any purpose, even
- commercially. This license is acceptable for Free Cultural Works. The licensor
- cannot revoke these freedoms as long as you follow the license terms.
- .
- Attribution — You must give appropriate credit, provide a link to the license,
- and indicate if changes were made. You may do so in any reasonable manner, but
- not in any way that suggests the licensor endorses you or your use.
- .
- ShareAlike — If you remix, transform, or build upon the material, you must
- distribute your contributions under the same license as the original.
- No additional restrictions — You may not apply legal terms or technological
- measures that legally restrict others from doing anything the license permits.
- .
- Notices: You do not have to comply with the license for elements of the
- material in the public domain or where your use is permitted by an applicable
- exception or limitation. No warranties are given. The license may not give you
- all of the permissions necessary for your intended use. For example, other
- rights such as publicity, privacy, or moral rights may limit how you use the
- material.
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/utils/material_icons.py b/utils/material_icons.py
index 4e15371f..0b4963ac 100644
--- a/utils/material_icons.py
+++ b/utils/material_icons.py
@@ -27,8 +27,6 @@ from pathlib import Path
from lxml import etree
MATERIAL_REPO = "https://github.com/google/material-design-icons.git"
-GRADE = ""
-
ICON_MAP = {
"alert_error": "error",
"alert_info": "info",
@@ -48,10 +46,17 @@ ICON_MAP = {
"cls_trash": "delete",
"cls_world": "globe",
+ "prj_folder": "folder",
+ "prj_document": "news",
+ "prj_title": "news",
+ "prj_chapter": "news",
+ "prj_scene": "news",
+ "prj_note": "sticky_note_2",
+
"fmt_bold": "format_bold",
"fmt_italic": "format_italic",
"fmt_mark": "format_ink_highlighter",
- "fmt_strike": "format_strikethrough",
+ "fmt_strike": "strikethrough_s",
"fmt_subscript": "subscript",
"fmt_superscript": "superscript",
"fmt_underline": "format_underlined",
@@ -76,7 +81,7 @@ ICON_MAP = {
"bookmarks": "bookmarks",
"browse": "folder_open",
"cancel": "cancel",
- "checked": "select_check_box",
+ "checked": "check_box",
"chevron_down": "keyboard_arrow_down",
"chevron_left": "arrow_back_ios",
"chevron_right": "arrow_forward_ios",
@@ -84,10 +89,10 @@ ICON_MAP = {
"close": "close",
"copy": "content_copy",
"document_add": "note_add",
- "document": "description",
+ "document": "docs",
"edit": "edit",
"exclude": "do_not_disturb_on",
- "export": "share_windows",
+ "export": "file_export",
"filter": "filter_alt",
"fit_height": "fit_page_height",
"fit_width": "fit_page_width",
@@ -109,7 +114,7 @@ ICON_MAP = {
"noncheckable": "indeterminate_check_box",
"novel_view": "book_4_spark",
"open": "open_in_new",
- "outline": "table",
+ "outline": "summarize",
"panel": "dock_to_bottom",
"pin": "keep",
"project_copy": "folder_copy",
@@ -121,6 +126,7 @@ ICON_MAP = {
"settings": "settings",
"star": "star",
"stats": "bar_chart",
+ "text": "subject",
"timer_off": "timer_off",
"timer": "timer",
"unchecked": "disabled_by_default",
@@ -161,8 +167,8 @@ def processMaterialIcons(workDir: Path, iconsDir: Path, jobs: dict) -> None:
icons.write("# This file is automatically generated. Do not edit.\n\n")
icons.write("# Meta\n")
icons.write(f"meta:name = {name}\n")
- icons.write("meta:author = Google\n")
- icons.write("meta:license = Apache License Version 2.0\n")
+ icons.write("meta:author = Google Inc\n")
+ icons.write("meta:license = Apache 2.0\n")
icons.write("\n")
icons.write("# Icons\n")
iconSrc = srcRepo / "symbols" / "web"