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 @@ + + + + + + image/svg+xml + + + + + + + + + + + + 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 @@ + + + + + + image/svg+xml + + + + + + + + + + + + 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