diff --git a/novelwriter/assets/icons/typicons_dark/icons.conf b/novelwriter/assets/icons/typicons_dark/icons.conf
index 999ce000..0adec011 100644
--- a/novelwriter/assets/icons/typicons_dark/icons.conf
+++ b/novelwriter/assets/icons/typicons_dark/icons.conf
@@ -47,10 +47,11 @@ down = typ_chevron-down.svg
edit = typ_pencil.svg
export = typ_export.svg
fmt_bold = nw_tb-bold.svg
+fmt_bold-md = nw_tb-bold-md.svg
fmt_italic = nw_tb-italic.svg
-fmt_mode-md = nw_tb-markdown.svg
-fmt_mode-sc = nw_tb-shortcode.svg
+fmt_italic-md = nw_tb-italic-md.svg
fmt_strike = nw_tb-strike.svg
+fmt_strike-md = nw_tb-strike-md.svg
fmt_subscript = nw_tb-subscript.svg
fmt_superscript = nw_tb-superscript.svg
fmt_underline = nw_tb-underline.svg
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-bold-md.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-bold-md.svg
new file mode 100644
index 00000000..e59edb08
--- /dev/null
+++ b/novelwriter/assets/icons/typicons_dark/nw_tb-bold-md.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-bold.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-bold.svg
index 2eaeb846..92e3df02 100644
--- a/novelwriter/assets/icons/typicons_dark/nw_tb-bold.svg
+++ b/novelwriter/assets/icons/typicons_dark/nw_tb-bold.svg
@@ -1,4 +1,6 @@
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-italic-md.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-italic-md.svg
new file mode 100644
index 00000000..0ec5fb2a
--- /dev/null
+++ b/novelwriter/assets/icons/typicons_dark/nw_tb-italic-md.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-italic.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-italic.svg
index 0ec5fb2a..4ef620d2 100644
--- a/novelwriter/assets/icons/typicons_dark/nw_tb-italic.svg
+++ b/novelwriter/assets/icons/typicons_dark/nw_tb-italic.svg
@@ -1,4 +1,6 @@
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-markdown.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-markdown.svg
deleted file mode 100644
index 02768596..00000000
--- a/novelwriter/assets/icons/typicons_dark/nw_tb-markdown.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-shortcode.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-shortcode.svg
deleted file mode 100644
index 4ea59ec3..00000000
--- a/novelwriter/assets/icons/typicons_dark/nw_tb-shortcode.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-strike-md.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-strike-md.svg
new file mode 100644
index 00000000..2858b4d1
--- /dev/null
+++ b/novelwriter/assets/icons/typicons_dark/nw_tb-strike-md.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-strike.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-strike.svg
index 639dd694..5c87b666 100644
--- a/novelwriter/assets/icons/typicons_dark/nw_tb-strike.svg
+++ b/novelwriter/assets/icons/typicons_dark/nw_tb-strike.svg
@@ -1,4 +1,6 @@
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-subscript.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-subscript.svg
index e0ae3587..7fcd5715 100644
--- a/novelwriter/assets/icons/typicons_dark/nw_tb-subscript.svg
+++ b/novelwriter/assets/icons/typicons_dark/nw_tb-subscript.svg
@@ -1,5 +1,7 @@
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-superscript.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-superscript.svg
index 1d60aec2..d867fb36 100644
--- a/novelwriter/assets/icons/typicons_dark/nw_tb-superscript.svg
+++ b/novelwriter/assets/icons/typicons_dark/nw_tb-superscript.svg
@@ -1,5 +1,7 @@
diff --git a/novelwriter/assets/icons/typicons_dark/nw_tb-underline.svg b/novelwriter/assets/icons/typicons_dark/nw_tb-underline.svg
index 3a249f4d..65190358 100644
--- a/novelwriter/assets/icons/typicons_dark/nw_tb-underline.svg
+++ b/novelwriter/assets/icons/typicons_dark/nw_tb-underline.svg
@@ -1,5 +1,7 @@
diff --git a/novelwriter/assets/icons/typicons_light/icons.conf b/novelwriter/assets/icons/typicons_light/icons.conf
index 3c6f545c..69273d2f 100644
--- a/novelwriter/assets/icons/typicons_light/icons.conf
+++ b/novelwriter/assets/icons/typicons_light/icons.conf
@@ -47,10 +47,11 @@ down = typ_chevron-down.svg
edit = typ_pencil.svg
export = typ_export.svg
fmt_bold = nw_tb-bold.svg
+fmt_bold-md = nw_tb-bold-md.svg
fmt_italic = nw_tb-italic.svg
-fmt_mode-md = nw_tb-markdown.svg
-fmt_mode-sc = nw_tb-shortcode.svg
+fmt_italic-md = nw_tb-italic-md.svg
fmt_strike = nw_tb-strike.svg
+fmt_strike-md = nw_tb-strike-md.svg
fmt_subscript = nw_tb-subscript.svg
fmt_superscript = nw_tb-superscript.svg
fmt_underline = nw_tb-underline.svg
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-bold-md.svg b/novelwriter/assets/icons/typicons_light/nw_tb-bold-md.svg
new file mode 100644
index 00000000..69614a4b
--- /dev/null
+++ b/novelwriter/assets/icons/typicons_light/nw_tb-bold-md.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-bold.svg b/novelwriter/assets/icons/typicons_light/nw_tb-bold.svg
index 3fbfbc88..45b25e7c 100644
--- a/novelwriter/assets/icons/typicons_light/nw_tb-bold.svg
+++ b/novelwriter/assets/icons/typicons_light/nw_tb-bold.svg
@@ -1,4 +1,6 @@
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-italic-md.svg b/novelwriter/assets/icons/typicons_light/nw_tb-italic-md.svg
new file mode 100644
index 00000000..893d8930
--- /dev/null
+++ b/novelwriter/assets/icons/typicons_light/nw_tb-italic-md.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-italic.svg b/novelwriter/assets/icons/typicons_light/nw_tb-italic.svg
index 893d8930..b09e11cc 100644
--- a/novelwriter/assets/icons/typicons_light/nw_tb-italic.svg
+++ b/novelwriter/assets/icons/typicons_light/nw_tb-italic.svg
@@ -1,4 +1,6 @@
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-markdown.svg b/novelwriter/assets/icons/typicons_light/nw_tb-markdown.svg
deleted file mode 100644
index 24b3809d..00000000
--- a/novelwriter/assets/icons/typicons_light/nw_tb-markdown.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-shortcode.svg b/novelwriter/assets/icons/typicons_light/nw_tb-shortcode.svg
deleted file mode 100644
index fc19a690..00000000
--- a/novelwriter/assets/icons/typicons_light/nw_tb-shortcode.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-strike-md.svg b/novelwriter/assets/icons/typicons_light/nw_tb-strike-md.svg
new file mode 100644
index 00000000..c915d218
--- /dev/null
+++ b/novelwriter/assets/icons/typicons_light/nw_tb-strike-md.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-strike.svg b/novelwriter/assets/icons/typicons_light/nw_tb-strike.svg
index 89f4b7ee..2d73ab90 100644
--- a/novelwriter/assets/icons/typicons_light/nw_tb-strike.svg
+++ b/novelwriter/assets/icons/typicons_light/nw_tb-strike.svg
@@ -1,4 +1,6 @@
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-subscript.svg b/novelwriter/assets/icons/typicons_light/nw_tb-subscript.svg
index 2384f6ea..573d6802 100644
--- a/novelwriter/assets/icons/typicons_light/nw_tb-subscript.svg
+++ b/novelwriter/assets/icons/typicons_light/nw_tb-subscript.svg
@@ -1,5 +1,7 @@
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-superscript.svg b/novelwriter/assets/icons/typicons_light/nw_tb-superscript.svg
index df0aa35c..f650df47 100644
--- a/novelwriter/assets/icons/typicons_light/nw_tb-superscript.svg
+++ b/novelwriter/assets/icons/typicons_light/nw_tb-superscript.svg
@@ -1,5 +1,7 @@
diff --git a/novelwriter/assets/icons/typicons_light/nw_tb-underline.svg b/novelwriter/assets/icons/typicons_light/nw_tb-underline.svg
index ca122269..2c7eb51d 100644
--- a/novelwriter/assets/icons/typicons_light/nw_tb-underline.svg
+++ b/novelwriter/assets/icons/typicons_light/nw_tb-underline.svg
@@ -1,5 +1,7 @@
diff --git a/novelwriter/gui/doceditor.py b/novelwriter/gui/doceditor.py
index 64a0e7a6..8ef7681e 100644
--- a/novelwriter/gui/doceditor.py
+++ b/novelwriter/gui/doceditor.py
@@ -2237,24 +2237,41 @@ class GuiDocToolBar(QWidget):
# General Buttons
# ===============
- self.tbMode = QToolButton(self)
- self.tbMode.setToolTip(self.tr("Toggle Markdown or Shortcodes Mode"))
- self.tbMode.setIconSize(iconSize)
- self.tbMode.setCheckable(True)
- self.tbMode.setChecked(CONFIG.useShortcodes)
- self.tbMode.toggled.connect(self._toggleFormatMode)
+ self.tbBoldMD = QToolButton(self)
+ self.tbBoldMD.setIconSize(iconSize)
+ self.tbBoldMD.clicked.connect(
+ lambda: self.requestDocAction.emit(nwDocAction.STRONG)
+ )
+
+ self.tbItalicMD = QToolButton(self)
+ self.tbItalicMD.setIconSize(iconSize)
+ self.tbItalicMD.clicked.connect(
+ lambda: self.requestDocAction.emit(nwDocAction.EMPH)
+ )
+
+ self.tbStrikeMD = QToolButton(self)
+ self.tbStrikeMD.setIconSize(iconSize)
+ self.tbStrikeMD.clicked.connect(
+ lambda: self.requestDocAction.emit(nwDocAction.STRIKE)
+ )
self.tbBold = QToolButton(self)
self.tbBold.setIconSize(iconSize)
- self.tbBold.clicked.connect(self._formatBold)
+ self.tbBold.clicked.connect(
+ lambda: self.requestDocAction.emit(nwDocAction.SC_BOLD)
+ )
self.tbItalic = QToolButton(self)
self.tbItalic.setIconSize(iconSize)
- self.tbItalic.clicked.connect(self._formatItalic)
+ self.tbItalic.clicked.connect(
+ lambda: self.requestDocAction.emit(nwDocAction.SC_ITALIC)
+ )
self.tbStrike = QToolButton(self)
self.tbStrike.setIconSize(iconSize)
- self.tbStrike.clicked.connect(self._formatStrike)
+ self.tbStrike.clicked.connect(
+ lambda: self.requestDocAction.emit(nwDocAction.SC_STRIKE)
+ )
self.tbUnderline = QToolButton(self)
self.tbUnderline.setIconSize(iconSize)
@@ -2278,7 +2295,10 @@ class GuiDocToolBar(QWidget):
# ========
self.outerBox = QVBoxLayout()
- self.outerBox.addWidget(self.tbMode)
+ self.outerBox.addWidget(self.tbBoldMD)
+ self.outerBox.addWidget(self.tbItalicMD)
+ self.outerBox.addWidget(self.tbStrikeMD)
+ self.outerBox.addSpacing(cM)
self.outerBox.addWidget(self.tbBold)
self.outerBox.addWidget(self.tbItalic)
self.outerBox.addWidget(self.tbStrike)
@@ -2306,8 +2326,9 @@ class GuiDocToolBar(QWidget):
palette.setColor(QPalette.ColorRole.Text, QColor(*SHARED.theme.colText))
self.setPalette(palette)
- tPx = int(0.8*SHARED.theme.fontPixelSize)
- self.tbMode.setIcon(SHARED.theme.getToggleIcon("fmt_mode", (tPx, tPx)))
+ self.tbBoldMD.setIcon(SHARED.theme.getIcon("fmt_bold-md"))
+ self.tbItalicMD.setIcon(SHARED.theme.getIcon("fmt_italic-md"))
+ self.tbStrikeMD.setIcon(SHARED.theme.getIcon("fmt_strike-md"))
self.tbBold.setIcon(SHARED.theme.getIcon("fmt_bold"))
self.tbItalic.setIcon(SHARED.theme.getIcon("fmt_italic"))
self.tbStrike.setIcon(SHARED.theme.getIcon("fmt_strike"))
@@ -2317,40 +2338,6 @@ class GuiDocToolBar(QWidget):
return
- ##
- # Private Slots
- ##
-
- @pyqtSlot(bool)
- def _toggleFormatMode(self, checked: bool) -> None:
- """Toggle the formatting mode."""
- CONFIG.useShortcodes = checked
- return
-
- @pyqtSlot()
- def _formatBold(self):
- """Call the bold format action."""
- self.requestDocAction.emit(
- nwDocAction.SC_BOLD if self.tbMode.isChecked() else nwDocAction.STRONG
- )
- return
-
- @pyqtSlot()
- def _formatItalic(self):
- """Call the italic format action."""
- self.requestDocAction.emit(
- nwDocAction.SC_ITALIC if self.tbMode.isChecked() else nwDocAction.EMPH
- )
- return
-
- @pyqtSlot()
- def _formatStrike(self):
- """Call the strikethrough format action."""
- self.requestDocAction.emit(
- nwDocAction.SC_STRIKE if self.tbMode.isChecked() else nwDocAction.STRIKE
- )
- return
-
# END Class GuiDocToolBar
diff --git a/novelwriter/gui/theme.py b/novelwriter/gui/theme.py
index 4ac8b714..a5d731bf 100644
--- a/novelwriter/gui/theme.py
+++ b/novelwriter/gui/theme.py
@@ -460,8 +460,8 @@ class GuiIcons:
"search_regex", "search_word",
# Format Icons
- "fmt_bold", "fmt_italic", "fmt_mode-md", "fmt_mode-sc", "fmt_strike", "fmt_subscript",
- "fmt_superscript", "fmt_underline",
+ "fmt_bold", "fmt_bold-md", "fmt_italic", "fmt_italic-md", "fmt_strike", "fmt_strike-md",
+ "fmt_subscript", "fmt_superscript", "fmt_underline",
# General Button Icons
"add", "backward", "bookmark", "browse", "checked", "close", "cross", "down", "edit",
@@ -479,9 +479,8 @@ class GuiIcons:
}
TOGGLE_ICON_KEYS = {
- "sticky": ("sticky-on", "sticky-off"),
- "bullet": ("bullet-on", "bullet-off"),
- "fmt_mode": ("fmt_mode-sc", "fmt_mode-md"),
+ "sticky": ("sticky-on", "sticky-off"),
+ "bullet": ("bullet-on", "bullet-off"),
}
IMAGE_MAP = {
diff --git a/tests/test_gui/test_gui_doceditor.py b/tests/test_gui/test_gui_doceditor.py
index 51217182..ebbc2e84 100644
--- a/tests/test_gui/test_gui_doceditor.py
+++ b/tests/test_gui/test_gui_doceditor.py
@@ -667,27 +667,26 @@ def testGuiEditor_ToolBar(qtbot, nwGUI, projPath, mockRnd):
docEditor._toggleToolBarVisibility()
assert docToolBar.isVisible() is True
- # Markdown Mode
- assert docToolBar.tbMode.isChecked() is False
+ # Markdown
+ # ========
# Click Bold
docEditor.setCursorPosition(20)
- docToolBar.tbBold.click()
+ docToolBar.tbBoldMD.click()
assert len(docEditor.getText()) == length + 4
# Click Italic
docEditor.setCursorPosition(54)
- docToolBar.tbItalic.click()
+ docToolBar.tbItalicMD.click()
assert len(docEditor.getText()) == length + 6
# Click Strikethrough
docEditor.setCursorPosition(90)
- docToolBar.tbStrike.click()
+ docToolBar.tbStrikeMD.click()
assert len(docEditor.getText()) == length + 10
- # Shortcode Mode
- docToolBar.tbMode.click()
- assert docToolBar.tbMode.isChecked() is True
+ # Shortcodes
+ # ==========
# Click Bold
docEditor.setCursorPosition(39)