Skip to content

Commit 9388ce6

Browse files
committed
Fix support for 90% font
1 parent cb19475 commit 9388ce6

File tree

4 files changed

+58
-40
lines changed

4 files changed

+58
-40
lines changed

novelwriter/gui/doceditor.py

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -390,9 +390,9 @@ def initFont(self) -> None:
390390
self.setFont(font)
391391

392392
# Reset sub-widget font to GUI font
393-
self.docHeader.setFont(SHARED.theme.guiFont)
394-
self.docFooter.setFont(SHARED.theme.guiFont)
395-
self.docSearch.setFont(SHARED.theme.guiFont)
393+
self.docHeader.updateFont()
394+
self.docFooter.updateFont()
395+
self.docSearch.updateFont()
396396

397397
return
398398

@@ -2410,9 +2410,6 @@ def __init__(self, docEditor: GuiDocEditor) -> None:
24102410
iSz = SHARED.theme.baseIconSize
24112411
mPx = CONFIG.pxInt(6)
24122412

2413-
self.boxFont = SHARED.theme.guiFont
2414-
self.boxFont.setPointSizeF(0.9*SHARED.theme.fontPointSize)
2415-
24162413
self.setContentsMargins(0, 0, 0, 0)
24172414
self.setAutoFillBackground(True)
24182415
self.setFrameStyle(QFrame.Shape.StyledPanel | QFrame.Shadow.Plain)
@@ -2424,12 +2421,10 @@ def __init__(self, docEditor: GuiDocEditor) -> None:
24242421
# ==========
24252422

24262423
self.searchBox = QLineEdit(self)
2427-
self.searchBox.setFont(self.boxFont)
24282424
self.searchBox.setPlaceholderText(self.tr("Search for"))
24292425
self.searchBox.returnPressed.connect(self._doSearch)
24302426

24312427
self.replaceBox = QLineEdit(self)
2432-
self.replaceBox.setFont(self.boxFont)
24332428
self.replaceBox.setPlaceholderText(self.tr("Replace with"))
24342429
self.replaceBox.returnPressed.connect(self._doReplace)
24352430

@@ -2439,12 +2434,9 @@ def __init__(self, docEditor: GuiDocEditor) -> None:
24392434
self.searchOpt.setContentsMargins(0, 0, 0, 0)
24402435

24412436
self.searchLabel = QLabel(self.tr("Search"), self)
2442-
self.searchLabel.setFont(self.boxFont)
24432437
self.searchLabel.setIndent(CONFIG.pxInt(6))
24442438

24452439
self.resultLabel = QLabel("?/?", self)
2446-
self.resultLabel.setFont(self.boxFont)
2447-
self.resultLabel.setMinimumWidth(SHARED.theme.getTextWidth("?/?", self.boxFont))
24482440

24492441
self.toggleCase = QAction(self.tr("Case Sensitive"), self)
24502442
self.toggleCase.setCheckable(True)
@@ -2529,6 +2521,7 @@ def __init__(self, docEditor: GuiDocEditor) -> None:
25292521
self.replaceButton.setVisible(False)
25302522
self.adjustSize()
25312523

2524+
self.updateFont()
25322525
self.updateTheme()
25332526

25342527
logger.debug("Ready: GuiDocEditSearch")
@@ -2612,7 +2605,9 @@ def setResultCount(self, currRes: int | None, resCount: int | None) -> None:
26122605
numCount = f"{lim:n}+" if (resCount or 0) > lim else f"{resCount:n}"
26132606
sCurrRes = "?" if currRes is None else str(currRes)
26142607
sResCount = "?" if resCount is None else numCount
2615-
minWidth = SHARED.theme.getTextWidth(f"{sResCount}//{sResCount}", self.boxFont)
2608+
minWidth = SHARED.theme.getTextWidth(
2609+
f"{sResCount}//{sResCount}", SHARED.theme.guiFontSmall
2610+
)
26162611
self.resultLabel.setText(f"{sCurrRes}/{sResCount}")
26172612
self.resultLabel.setMinimumWidth(minWidth)
26182613
self.adjustSize()
@@ -2623,6 +2618,18 @@ def setResultCount(self, currRes: int | None, resCount: int | None) -> None:
26232618
# Methods
26242619
##
26252620

2621+
def updateFont(self) -> None:
2622+
"""Update the font settings."""
2623+
self.setFont(SHARED.theme.guiFont)
2624+
self.searchBox.setFont(SHARED.theme.guiFontSmall)
2625+
self.replaceBox.setFont(SHARED.theme.guiFontSmall)
2626+
self.searchLabel.setFont(SHARED.theme.guiFontSmall)
2627+
self.resultLabel.setFont(SHARED.theme.guiFontSmall)
2628+
self.resultLabel.setMinimumWidth(
2629+
SHARED.theme.getTextWidth("?/?", SHARED.theme.guiFontSmall)
2630+
)
2631+
return
2632+
26262633
def updateTheme(self) -> None:
26272634
"""Update theme elements."""
26282635
qPalette = QApplication.palette()
@@ -2807,10 +2814,6 @@ def __init__(self, docEditor: GuiDocEditor) -> None:
28072814
self.itemTitle.setAlignment(QtAlignCenterTop)
28082815
self.itemTitle.setFixedHeight(iPx)
28092816

2810-
lblFont = self.itemTitle.font()
2811-
lblFont.setPointSizeF(0.9*SHARED.theme.fontPointSize)
2812-
self.itemTitle.setFont(lblFont)
2813-
28142817
# Other Widgets
28152818
self.outlineMenu = QMenu(self)
28162819

@@ -2864,6 +2867,7 @@ def __init__(self, docEditor: GuiDocEditor) -> None:
28642867
self.setContentsMargins(0, 0, 0, 0)
28652868
self.setMinimumHeight(iPx + 2*mPx)
28662869

2870+
self.updateFont()
28672871
self.updateTheme()
28682872

28692873
logger.debug("Ready: GuiDocEditHeader")
@@ -2902,6 +2906,12 @@ def setOutline(self, data: dict[int, str]) -> None:
29022906
logger.debug("Document outline updated in %.3f ms", 1000*(time() - tStart))
29032907
return
29042908

2909+
def updateFont(self) -> None:
2910+
"""Update the font settings."""
2911+
self.setFont(SHARED.theme.guiFont)
2912+
self.itemTitle.setFont(SHARED.theme.guiFontSmall)
2913+
return
2914+
29052915
def updateTheme(self) -> None:
29062916
"""Update theme elements."""
29072917
self.tbButton.setThemeIcon("menu")
@@ -3015,9 +3025,6 @@ def __init__(self, parent: QWidget) -> None:
30153025
bSp = CONFIG.pxInt(4)
30163026
hSp = CONFIG.pxInt(6)
30173027

3018-
lblFont = self.font()
3019-
lblFont.setPointSizeF(0.9*SHARED.theme.fontPointSize)
3020-
30213028
# Cached Translations
30223029
self._trLineCount = self.tr("Line: {0} ({1})")
30233030
self._trWordCount = self.tr("Words: {0} ({1})")
@@ -3040,7 +3047,6 @@ def __init__(self, parent: QWidget) -> None:
30403047
self.statusText.setAutoFillBackground(True)
30413048
self.statusText.setFixedHeight(fPx)
30423049
self.statusText.setAlignment(QtAlignLeftTop)
3043-
self.statusText.setFont(lblFont)
30443050

30453051
# Lines
30463052
self.linesIcon = QLabel("", self)
@@ -3055,7 +3061,6 @@ def __init__(self, parent: QWidget) -> None:
30553061
self.linesText.setAutoFillBackground(True)
30563062
self.linesText.setFixedHeight(fPx)
30573063
self.linesText.setAlignment(QtAlignLeftTop)
3058-
self.linesText.setFont(lblFont)
30593064

30603065
# Words
30613066
self.wordsIcon = QLabel("", self)
@@ -3070,7 +3075,6 @@ def __init__(self, parent: QWidget) -> None:
30703075
self.wordsText.setAutoFillBackground(True)
30713076
self.wordsText.setFixedHeight(fPx)
30723077
self.wordsText.setAlignment(QtAlignLeftTop)
3073-
self.wordsText.setFont(lblFont)
30743078

30753079
# Assemble Layout
30763080
self.outerBox = QHBoxLayout()
@@ -3093,6 +3097,7 @@ def __init__(self, parent: QWidget) -> None:
30933097
self.setMinimumHeight(fPx + 2*mPx)
30943098

30953099
# Fix the Colours
3100+
self.updateFont()
30963101
self.updateTheme()
30973102

30983103
# Initialise Info
@@ -3106,6 +3111,14 @@ def __init__(self, parent: QWidget) -> None:
31063111
# Methods
31073112
##
31083113

3114+
def updateFont(self) -> None:
3115+
"""Update the font settings."""
3116+
self.setFont(SHARED.theme.guiFont)
3117+
self.statusText.setFont(SHARED.theme.guiFontSmall)
3118+
self.linesText.setFont(SHARED.theme.guiFontSmall)
3119+
self.wordsText.setFont(SHARED.theme.guiFontSmall)
3120+
return
3121+
31093122
def updateTheme(self) -> None:
31103123
"""Update theme elements."""
31113124
iPx = round(0.9*SHARED.theme.baseIconHeight)

novelwriter/gui/docviewer.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,8 @@ def initFont(self) -> None:
192192
self.setFont(font)
193193

194194
# Reset sub-widget font to GUI font
195-
self.docHeader.setFont(SHARED.theme.guiFont)
196-
self.docFooter.setFont(SHARED.theme.guiFont)
195+
self.docHeader.updateFont()
196+
self.docFooter.updateFont()
197197

198198
return
199199

@@ -654,10 +654,6 @@ def __init__(self, docViewer: GuiDocViewer) -> None:
654654
self.itemTitle.setAlignment(QtAlignCenterTop)
655655
self.itemTitle.setFixedHeight(iPx)
656656

657-
lblFont = self.itemTitle.font()
658-
lblFont.setPointSizeF(0.9*SHARED.theme.fontPointSize)
659-
self.itemTitle.setFont(lblFont)
660-
661657
# Other Widgets
662658
self.outlineMenu = QMenu(self)
663659

@@ -708,7 +704,7 @@ def __init__(self, docViewer: GuiDocViewer) -> None:
708704
self.outerBox.setContentsMargins(mPx, mPx, mPx, mPx)
709705
self.setMinimumHeight(iPx + 2*mPx)
710706

711-
# Fix the Colours
707+
self.updateFont()
712708
self.updateTheme()
713709

714710
logger.debug("Ready: GuiDocViewHeader")
@@ -753,6 +749,12 @@ def setOutline(self, data: dict[str, tuple[str, int]]) -> None:
753749
self._docOutline = data
754750
return
755751

752+
def updateFont(self) -> None:
753+
"""Update the font settings."""
754+
self.setFont(SHARED.theme.guiFont)
755+
self.itemTitle.setFont(SHARED.theme.guiFontSmall)
756+
return
757+
756758
def updateTheme(self) -> None:
757759
"""Update theme elements."""
758760
self.outlineButton.setThemeIcon("list")
@@ -894,11 +896,6 @@ def __init__(self, docViewer: GuiDocViewer) -> None:
894896
self.showSynopsis.toggled.connect(self._doToggleSynopsis)
895897
self.showSynopsis.setToolTip(self.tr("Show Synopsis Comments"))
896898

897-
lblFont = self.font()
898-
lblFont.setPointSizeF(0.9*SHARED.theme.fontPointSize)
899-
self.showComments.setFont(lblFont)
900-
self.showSynopsis.setFont(lblFont)
901-
902899
# Assemble Layout
903900
self.outerBox = QHBoxLayout()
904901
self.outerBox.addWidget(self.showHide, 0)
@@ -914,7 +911,7 @@ def __init__(self, docViewer: GuiDocViewer) -> None:
914911
self.outerBox.setContentsMargins(mPx, mPx, mPx, mPx)
915912
self.setMinimumHeight(iPx + 2*mPx)
916913

917-
# Fix the Colours
914+
self.updateFont()
918915
self.updateTheme()
919916

920917
logger.debug("Ready: GuiDocViewFooter")
@@ -925,6 +922,13 @@ def __init__(self, docViewer: GuiDocViewer) -> None:
925922
# Methods
926923
##
927924

925+
def updateFont(self) -> None:
926+
"""Update the font settings."""
927+
self.setFont(SHARED.theme.guiFont)
928+
self.showComments.setFont(SHARED.theme.guiFontSmall)
929+
self.showSynopsis.setFont(SHARED.theme.guiFontSmall)
930+
return
931+
928932
def updateTheme(self) -> None:
929933
"""Update theme elements."""
930934
# Icons

novelwriter/gui/theme.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@
3030
from pathlib import Path
3131

3232
from PyQt5.QtCore import QSize, Qt
33-
from PyQt5.QtGui import (
34-
QPalette, QColor, QIcon, QFont, QFontMetrics, QFontDatabase, QPixmap
35-
)
33+
from PyQt5.QtGui import QColor, QFont, QFontDatabase, QFontMetrics, QIcon, QPalette, QPixmap
3634
from PyQt5.QtWidgets import QApplication
3735

3836
from novelwriter import CONFIG
@@ -154,6 +152,8 @@ def __init__(self) -> None:
154152
self.guiFont = QApplication.font()
155153
self.guiFontB = QApplication.font()
156154
self.guiFontB.setBold(True)
155+
self.guiFontSmall = QApplication.font()
156+
self.guiFontSmall.setPointSizeF(0.9*self.guiFont.pointSizeF())
157157

158158
qMetric = QFontMetrics(self.guiFont)
159159
fHeight = qMetric.height()

novelwriter/tools/manuscript.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -761,7 +761,6 @@ def __init__(self, parent: QWidget) -> None:
761761
self.setPalette(dPalette)
762762

763763
self.setMinimumWidth(40*SHARED.theme.textNWidth)
764-
self.setTextFont(CONFIG.textFont, CONFIG.textSize)
765764
self.setTabStopDistance(CONFIG.getTabWidth())
766765
self.setOpenExternalLinks(False)
767766

@@ -802,6 +801,8 @@ def __init__(self, parent: QWidget) -> None:
802801
self._updateDocMargins()
803802
self._updateBuildAge()
804803

804+
self.setTextFont(CONFIG.textFont, CONFIG.textSize)
805+
805806
# Age Timer
806807
self.ageTimer = QTimer(self)
807808
self.ageTimer.setInterval(10000)
@@ -840,8 +841,8 @@ def setTextFont(self, family: str, size: int) -> None:
840841
font.setFamily(family)
841842
font.setPointSize(size)
842843
self.setFont(font)
843-
self.ageLabel.setFont(SHARED.theme.guiFont)
844844
self.buildProgress.setFont(SHARED.theme.guiFont)
845+
self.ageLabel.setFont(SHARED.theme.guiFontSmall)
845846
return
846847

847848
##

0 commit comments

Comments
 (0)