diff --git a/novelwriter/assets/icons/typicons_dark/icons.conf b/novelwriter/assets/icons/typicons_dark/icons.conf
index 8a956979..46da8b3e 100644
--- a/novelwriter/assets/icons/typicons_dark/icons.conf
+++ b/novelwriter/assets/icons/typicons_dark/icons.conf
@@ -50,6 +50,7 @@ proj_details = typ_th-list-grey.svg
proj_document = typ_document-text.svg
proj_folder = typ_folder.svg
proj_note = mixed_document-note.svg
+proj_section = mixed_document-section.svg
proj_scene = mixed_document-scene.svg
proj_stats = typ_chart-bar-grey.svg
proj_title = mixed_document-title.svg
diff --git a/novelwriter/assets/icons/typicons_dark/mixed_document-section.svg b/novelwriter/assets/icons/typicons_dark/mixed_document-section.svg
new file mode 100644
index 00000000..69542bd9
--- /dev/null
+++ b/novelwriter/assets/icons/typicons_dark/mixed_document-section.svg
@@ -0,0 +1,47 @@
+
+
diff --git a/novelwriter/assets/icons/typicons_light/icons.conf b/novelwriter/assets/icons/typicons_light/icons.conf
index f83315d2..7649328c 100644
--- a/novelwriter/assets/icons/typicons_light/icons.conf
+++ b/novelwriter/assets/icons/typicons_light/icons.conf
@@ -50,6 +50,7 @@ proj_details = typ_th-list-grey.svg
proj_document = typ_document-text.svg
proj_folder = typ_folder.svg
proj_note = mixed_document-note.svg
+proj_section = mixed_document-section.svg
proj_scene = mixed_document-scene.svg
proj_stats = typ_chart-bar-grey.svg
proj_title = mixed_document-title.svg
diff --git a/novelwriter/assets/icons/typicons_light/mixed_document-section.svg b/novelwriter/assets/icons/typicons_light/mixed_document-section.svg
new file mode 100644
index 00000000..28dc015a
--- /dev/null
+++ b/novelwriter/assets/icons/typicons_light/mixed_document-section.svg
@@ -0,0 +1,47 @@
+
+
diff --git a/novelwriter/constants.py b/novelwriter/constants.py
index 3d1b5c13..2cd5b15c 100644
--- a/novelwriter/constants.py
+++ b/novelwriter/constants.py
@@ -157,6 +157,7 @@ class nwLabels:
"doc_h1": QT_TRANSLATE_NOOP("Constant", "Novel Title Page"),
"doc_h2": QT_TRANSLATE_NOOP("Constant", "Novel Chapter"),
"doc_h3": QT_TRANSLATE_NOOP("Constant", "Novel Scene"),
+ "doc_h4": QT_TRANSLATE_NOOP("Constant", "Novel Section"),
"note": QT_TRANSLATE_NOOP("Constant", "Project Note"),
}
KEY_NAME = {
diff --git a/novelwriter/core/item.py b/novelwriter/core/item.py
index a8faea8b..9901f39e 100644
--- a/novelwriter/core/item.py
+++ b/novelwriter/core/item.py
@@ -285,6 +285,8 @@ class NWItem:
descKey = "doc_h2"
elif hLevel == "H3":
descKey = "doc_h3"
+ elif hLevel == "H4":
+ descKey = "doc_h4"
else:
descKey = "document"
elif self._layout == nwItemLayout.NOTE:
diff --git a/novelwriter/gui/theme.py b/novelwriter/gui/theme.py
index 8324270b..f2d0b066 100644
--- a/novelwriter/gui/theme.py
+++ b/novelwriter/gui/theme.py
@@ -459,10 +459,11 @@ class GuiIcons:
"novelwriter", "cls_archive", "cls_character", "cls_custom", "cls_entity", "cls_none",
"cls_novel", "cls_object", "cls_plot", "cls_timeline", "cls_trash", "cls_world", "doc_h0",
"doc_h1", "doc_h2", "doc_h3", "doc_h4", "proj_chapter", "proj_details", "proj_document",
- "proj_folder", "proj_note", "proj_nwx", "proj_scene", "proj_stats", "proj_title",
- "search_cancel", "search_case", "search_loop", "search_preserve", "search_project",
- "search_regex", "search_word", "status_idle", "status_lang", "status_lines",
- "status_stats", "status_time", "view_build", "view_editor", "view_novel", "view_outline",
+ "proj_folder", "proj_note", "proj_nwx", "proj_section", "proj_scene", "proj_stats",
+ "proj_title", "search_cancel", "search_case", "search_loop", "search_preserve",
+ "search_project", "search_regex", "search_word", "status_idle", "status_lang",
+ "status_lines", "status_stats", "status_time", "view_build", "view_editor", "view_novel",
+ "view_outline",
# General Button Icons
"add", "backward", "check", "close", "cross", "down", "edit", "forward", "maximise",
@@ -641,6 +642,8 @@ class GuiIcons:
iconName = "proj_chapter"
elif hLevel == "H3":
iconName = "proj_scene"
+ elif hLevel == "H4":
+ iconName = "proj_section"
elif tLayout == nwItemLayout.NOTE:
iconName = "proj_note"
if iconName is None:
diff --git a/tests/test_core/test_core_item.py b/tests/test_core/test_core_item.py
index e2fa75e0..3f4fe7ca 100644
--- a/tests/test_core/test_core_item.py
+++ b/tests/test_core/test_core_item.py
@@ -218,7 +218,8 @@ def testCoreItem_Methods(mockGUI):
assert theItem.describeMe("H1") == "Novel Title Page"
assert theItem.describeMe("H2") == "Novel Chapter"
assert theItem.describeMe("H3") == "Novel Scene"
- assert theItem.describeMe("H4") == "Novel Document"
+ assert theItem.describeMe("H4") == "Novel Section"
+ assert theItem.describeMe("H5") == "Novel Document"
theItem.setLayout("NOTE")
assert theItem.isNoteLayout() is True