From a96ccf84222a944b7a24a5265ee4de00fd83e486 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 13 Nov 2024 23:16:54 +0100 Subject: [PATCH] Add icons for text margins --- .../assets/icons/typicons_dark/icons.conf | 6 +++ .../typicons_dark/mixed_margin-bottom.svg | 6 +++ .../icons/typicons_dark/mixed_margin-left.svg | 6 +++ .../typicons_dark/mixed_margin-right.svg | 6 +++ .../icons/typicons_dark/mixed_margin-top.svg | 6 +++ .../icons/typicons_dark/mixed_size-height.svg | 6 +++ .../icons/typicons_dark/mixed_size-width.svg | 6 +++ .../assets/icons/typicons_light/icons.conf | 6 +++ .../typicons_light/mixed_margin-bottom.svg | 6 +++ .../typicons_light/mixed_margin-left.svg | 6 +++ .../typicons_light/mixed_margin-right.svg | 6 +++ .../icons/typicons_light/mixed_margin-top.svg | 6 +++ .../typicons_light/mixed_size-height.svg | 6 +++ .../icons/typicons_light/mixed_size-width.svg | 6 +++ novelwriter/extensions/configlayout.py | 8 +++- novelwriter/gui/theme.py | 3 +- novelwriter/tools/manussettings.py | 43 +++++++++++-------- 17 files changed, 116 insertions(+), 22 deletions(-) create mode 100644 novelwriter/assets/icons/typicons_dark/mixed_margin-bottom.svg create mode 100644 novelwriter/assets/icons/typicons_dark/mixed_margin-left.svg create mode 100644 novelwriter/assets/icons/typicons_dark/mixed_margin-right.svg create mode 100644 novelwriter/assets/icons/typicons_dark/mixed_margin-top.svg create mode 100644 novelwriter/assets/icons/typicons_dark/mixed_size-height.svg create mode 100644 novelwriter/assets/icons/typicons_dark/mixed_size-width.svg create mode 100644 novelwriter/assets/icons/typicons_light/mixed_margin-bottom.svg create mode 100644 novelwriter/assets/icons/typicons_light/mixed_margin-left.svg create mode 100644 novelwriter/assets/icons/typicons_light/mixed_margin-right.svg create mode 100644 novelwriter/assets/icons/typicons_light/mixed_margin-top.svg create mode 100644 novelwriter/assets/icons/typicons_light/mixed_size-height.svg create mode 100644 novelwriter/assets/icons/typicons_light/mixed_size-width.svg diff --git a/novelwriter/assets/icons/typicons_dark/icons.conf b/novelwriter/assets/icons/typicons_dark/icons.conf index b70c1da5..c9f7a546 100644 --- a/novelwriter/assets/icons/typicons_dark/icons.conf +++ b/novelwriter/assets/icons/typicons_dark/icons.conf @@ -64,6 +64,10 @@ font = nw_font.svg forward = typ_chevron-right.svg import = mixed_import.svg list = typ_th-list.svg +margin_bottom = mixed_margin-bottom.svg +margin_left = mixed_margin-left.svg +margin_right = mixed_margin-right.svg +margin_top = mixed_margin-top.svg maximise = typ_arrow-maximise.svg menu = typ_th-dot-menu.svg minimise = typ_arrow-minimise.svg @@ -94,6 +98,8 @@ search_regex = nw_search-regex.svg search_replace = mixed_search-replace.svg search_word = nw_search-word.svg settings = typ_cog.svg +size_height = mixed_size-height.svg +size_width = mixed_size-width.svg star = typ_star.svg status_idle = typ_media-pause-grey.svg status_lang = typ_globe-grey.svg diff --git a/novelwriter/assets/icons/typicons_dark/mixed_margin-bottom.svg b/novelwriter/assets/icons/typicons_dark/mixed_margin-bottom.svg new file mode 100644 index 00000000..986b19e2 --- /dev/null +++ b/novelwriter/assets/icons/typicons_dark/mixed_margin-bottom.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_dark/mixed_margin-left.svg b/novelwriter/assets/icons/typicons_dark/mixed_margin-left.svg new file mode 100644 index 00000000..84358b19 --- /dev/null +++ b/novelwriter/assets/icons/typicons_dark/mixed_margin-left.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_dark/mixed_margin-right.svg b/novelwriter/assets/icons/typicons_dark/mixed_margin-right.svg new file mode 100644 index 00000000..a828f7c2 --- /dev/null +++ b/novelwriter/assets/icons/typicons_dark/mixed_margin-right.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_dark/mixed_margin-top.svg b/novelwriter/assets/icons/typicons_dark/mixed_margin-top.svg new file mode 100644 index 00000000..a7e3933c --- /dev/null +++ b/novelwriter/assets/icons/typicons_dark/mixed_margin-top.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_dark/mixed_size-height.svg b/novelwriter/assets/icons/typicons_dark/mixed_size-height.svg new file mode 100644 index 00000000..0c05bcff --- /dev/null +++ b/novelwriter/assets/icons/typicons_dark/mixed_size-height.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_dark/mixed_size-width.svg b/novelwriter/assets/icons/typicons_dark/mixed_size-width.svg new file mode 100644 index 00000000..6c8c7622 --- /dev/null +++ b/novelwriter/assets/icons/typicons_dark/mixed_size-width.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_light/icons.conf b/novelwriter/assets/icons/typicons_light/icons.conf index cf18d966..c3cc9b76 100644 --- a/novelwriter/assets/icons/typicons_light/icons.conf +++ b/novelwriter/assets/icons/typicons_light/icons.conf @@ -64,6 +64,10 @@ font = nw_font.svg forward = typ_chevron-right.svg import = mixed_import.svg list = typ_th-list.svg +margin_bottom = mixed_margin-bottom.svg +margin_left = mixed_margin-left.svg +margin_right = mixed_margin-right.svg +margin_top = mixed_margin-top.svg maximise = typ_arrow-maximise.svg menu = typ_th-dot-menu.svg minimise = typ_arrow-minimise.svg @@ -94,6 +98,8 @@ search_regex = nw_search-regex.svg search_replace = mixed_search-replace.svg search_word = nw_search-word.svg settings = typ_cog.svg +size_height = mixed_size-height.svg +size_width = mixed_size-width.svg star = typ_star.svg status_idle = typ_media-pause-grey.svg status_lang = typ_globe-grey.svg diff --git a/novelwriter/assets/icons/typicons_light/mixed_margin-bottom.svg b/novelwriter/assets/icons/typicons_light/mixed_margin-bottom.svg new file mode 100644 index 00000000..86347296 --- /dev/null +++ b/novelwriter/assets/icons/typicons_light/mixed_margin-bottom.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_light/mixed_margin-left.svg b/novelwriter/assets/icons/typicons_light/mixed_margin-left.svg new file mode 100644 index 00000000..436f8f8d --- /dev/null +++ b/novelwriter/assets/icons/typicons_light/mixed_margin-left.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_light/mixed_margin-right.svg b/novelwriter/assets/icons/typicons_light/mixed_margin-right.svg new file mode 100644 index 00000000..4462801c --- /dev/null +++ b/novelwriter/assets/icons/typicons_light/mixed_margin-right.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_light/mixed_margin-top.svg b/novelwriter/assets/icons/typicons_light/mixed_margin-top.svg new file mode 100644 index 00000000..4eb684f9 --- /dev/null +++ b/novelwriter/assets/icons/typicons_light/mixed_margin-top.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_light/mixed_size-height.svg b/novelwriter/assets/icons/typicons_light/mixed_size-height.svg new file mode 100644 index 00000000..4deb1a4c --- /dev/null +++ b/novelwriter/assets/icons/typicons_light/mixed_size-height.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/assets/icons/typicons_light/mixed_size-width.svg b/novelwriter/assets/icons/typicons_light/mixed_size-width.svg new file mode 100644 index 00000000..b63fe98d --- /dev/null +++ b/novelwriter/assets/icons/typicons_light/mixed_size-width.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/novelwriter/extensions/configlayout.py b/novelwriter/extensions/configlayout.py index a34b7cde..2bd48032 100644 --- a/novelwriter/extensions/configlayout.py +++ b/novelwriter/extensions/configlayout.py @@ -27,7 +27,7 @@ along with this program. If not, see . """ from __future__ import annotations -from PyQt5.QtGui import QColor, QFont, QPalette +from PyQt5.QtGui import QColor, QFont, QPalette, QPixmap from PyQt5.QtWidgets import ( QAbstractButton, QFrame, QHBoxLayout, QLabel, QLayout, QScrollArea, QVBoxLayout, QWidget @@ -183,7 +183,7 @@ class NScrollableForm(QScrollArea): def addRow( self, label: str | None, - widget: QWidget | list[QWidget | str | int], + widget: QWidget | list[QWidget | QPixmap | str | int], helpText: str = "", unit: str | None = None, button: QWidget | None = None, @@ -200,6 +200,10 @@ class NScrollableForm(QScrollArea): for item in widget: if isinstance(item, QWidget): wBox.addWidget(item) + elif isinstance(item, QPixmap): + icon = QLabel(self) + icon.setPixmap(item) + wBox.addWidget(icon) elif isinstance(item, str): wBox.addWidget(QLabel(item, self)) elif isinstance(item, int): diff --git a/novelwriter/gui/theme.py b/novelwriter/gui/theme.py index 340951cf..b4ef5056 100644 --- a/novelwriter/gui/theme.py +++ b/novelwriter/gui/theme.py @@ -500,7 +500,8 @@ class GuiIcons: # Format Icons "fmt_bold", "fmt_bold-md", "fmt_italic", "fmt_italic-md", "fmt_mark", "fmt_strike", - "fmt_strike-md", "fmt_subscript", "fmt_superscript", "fmt_underline", + "fmt_strike-md", "fmt_subscript", "fmt_superscript", "fmt_underline", "margin_bottom", + "margin_left", "margin_right", "margin_top", "size_height", "size_width", # General Button Icons "add", "add_document", "backward", "bookmark", "browse", "checked", "close", "copy", diff --git a/novelwriter/tools/manussettings.py b/novelwriter/tools/manussettings.py index 098b1ce7..f4c658e7 100644 --- a/novelwriter/tools/manussettings.py +++ b/novelwriter/tools/manussettings.py @@ -964,15 +964,6 @@ class _FormattingTab(NScrollableForm): spW = 6*SHARED.theme.textNWidth dbW = 8*SHARED.theme.textNWidth - # Common Translations - - trW = self.tr("W:") # Width - trH = self.tr("H:") # Height - trT = self.tr("T:") # Top - trB = self.tr("B:") # Bottom - trL = self.tr("L:") # Left - trR = self.tr("R:") # Right - # Text Content # ============ @@ -1084,6 +1075,13 @@ class _FormattingTab(NScrollableForm): self._sidebar.addButton(title, section) self.addGroupLabel(title, section) + pixT = SHARED.theme.getPixmap("margin_top", (iPx, iPx)) + pixB = SHARED.theme.getPixmap("margin_bottom", (iPx, iPx)) + pixL = SHARED.theme.getPixmap("margin_left", (iPx, iPx)) + pixR = SHARED.theme.getPixmap("margin_right", (iPx, iPx)) + pixH = SHARED.theme.getPixmap("size_height", (iPx, iPx)) + pixW = SHARED.theme.getPixmap("size_width", (iPx, iPx)) + # Title self.titleMarginT = NDoubleSpinBox(self) self.titleMarginT.setFixedWidth(dbW) @@ -1093,7 +1091,8 @@ class _FormattingTab(NScrollableForm): self.addRow( trConst(nwStyles.T_LABEL["H0"]), - [trT, self.titleMarginT, 6, trB, self.titleMarginB], + [pixT, self.titleMarginT, 6, pixB, self.titleMarginB], + unit="em", ) # Heading 1 @@ -1105,7 +1104,8 @@ class _FormattingTab(NScrollableForm): self.addRow( trConst(nwStyles.T_LABEL["H1"]), - [trT, self.h1MarginT, 6, trB, self.h1MarginB], + [pixT, self.h1MarginT, 6, pixB, self.h1MarginB], + unit="em", ) # Heading 2 @@ -1117,7 +1117,8 @@ class _FormattingTab(NScrollableForm): self.addRow( trConst(nwStyles.T_LABEL["H2"]), - [trT, self.h2MarginT, 6, trB, self.h2MarginB], + [pixT, self.h2MarginT, 6, pixB, self.h2MarginB], + unit="em", ) # Heading 3 @@ -1129,7 +1130,8 @@ class _FormattingTab(NScrollableForm): self.addRow( trConst(nwStyles.T_LABEL["H3"]), - [trT, self.h3MarginT, 6, trB, self.h3MarginB], + [pixT, self.h3MarginT, 6, pixB, self.h3MarginB], + unit="em", ) # Heading 4 @@ -1141,7 +1143,8 @@ class _FormattingTab(NScrollableForm): self.addRow( trConst(nwStyles.T_LABEL["H4"]), - [trT, self.h4MarginT, 6, trB, self.h4MarginB], + [pixT, self.h4MarginT, 6, pixB, self.h4MarginB], + unit="em", ) # Text @@ -1153,7 +1156,8 @@ class _FormattingTab(NScrollableForm): self.addRow( trConst(nwStyles.T_LABEL["TT"]), - [trT, self.textMarginT, 6, trB, self.textMarginB], + [pixT, self.textMarginT, 6, pixB, self.textMarginB], + unit="em", ) # Separator @@ -1165,7 +1169,8 @@ class _FormattingTab(NScrollableForm): self.addRow( trConst(nwStyles.T_LABEL["SP"]), - [trT, self.sepMarginT, 6, trB, self.sepMarginB], + [pixT, self.sepMarginT, 6, pixB, self.sepMarginB], + unit="em", ) # Page Layout @@ -1198,7 +1203,7 @@ class _FormattingTab(NScrollableForm): self.addRow( self._build.getLabel("format.pageSize"), - [self.pageSize, 6, trW, self.pageWidth, 6, trH, self.pageHeight], + [self.pageSize, 6, pixW, self.pageWidth, 6, pixH, self.pageHeight], ) # Page Margins @@ -1216,11 +1221,11 @@ class _FormattingTab(NScrollableForm): self.addRow( self._build.getLabel("format.pageMargins"), - [trT, self.topMargin, 6, trB, self.bottomMargin], + [pixT, self.topMargin, 6, pixB, self.bottomMargin], ) self.addRow( "", - [trL, self.leftMargin, 6, trR, self.rightMargin], + [pixL, self.leftMargin, 6, pixR, self.rightMargin], ) # Open Document