Merge branch 'main' into theme_fixes
This commit is contained in:
@@ -445,6 +445,7 @@ def fontMatcher(font: QFont) -> QFont:
|
||||
default Qt font matching algorithm doesn't handle well changing
|
||||
application fonts at runtime.
|
||||
"""
|
||||
font.setStyleName(None) # Make sure no font style name is set from config, see #2502
|
||||
info = QFontInfo(font)
|
||||
if (famRequest := font.family()) != (famActual := info.family()):
|
||||
logger.warning("Font mismatch: Requested '%s', but got '%s'", famRequest, famActual)
|
||||
|
||||
@@ -202,7 +202,7 @@ class Config:
|
||||
self.doJustify = False # Justify text
|
||||
self.showTabsNSpaces = False # Show tabs and spaces in editor
|
||||
self.showLineEndings = False # Show line endings in editor
|
||||
self.showMultiSpaces = True # Highlight multiple spaces in the text
|
||||
self.showMultiSpaces = False # Highlight multiple spaces in the text
|
||||
|
||||
self.doReplace = True # Enable auto-replace as you type
|
||||
self.doReplaceSQuote = True # Smart single quotes
|
||||
|
||||
@@ -701,7 +701,7 @@ class GuiPreferences(NDialog):
|
||||
self.showMultiSpaces = NSwitch(self)
|
||||
self.showMultiSpaces.setChecked(CONFIG.showMultiSpaces)
|
||||
self.mainForm.addRow(
|
||||
self.tr("Highlight multiple or trailing spaces"), self.showMultiSpaces,
|
||||
self.tr("Highlight multiple spaces between words"), self.showMultiSpaces,
|
||||
self.tr("Applies to the document editor only.")
|
||||
)
|
||||
|
||||
|
||||
@@ -141,7 +141,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
|
||||
|
||||
# Multiple or Trailing Spaces
|
||||
if CONFIG.showMultiSpaces:
|
||||
rxRule = re.compile(r"[ ]{2,}|[ ]*$", re.UNICODE)
|
||||
rxRule = re.compile(r"\s{2,}")
|
||||
hlRule = {
|
||||
0: self._hStyles["mspaces"],
|
||||
}
|
||||
@@ -150,7 +150,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
|
||||
self._cmnRules.append((rxRule, hlRule))
|
||||
|
||||
# Non-Breaking Spaces
|
||||
rxRule = re.compile(f"[{nwUnicode.U_NBSP}{nwUnicode.U_THNBSP}]+", re.UNICODE)
|
||||
rxRule = re.compile(f"[{nwUnicode.U_NBSP}{nwUnicode.U_THNBSP}]+")
|
||||
hlRule = {
|
||||
0: self._hStyles["nobreak"],
|
||||
}
|
||||
@@ -239,7 +239,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
|
||||
self._cmnRules.append((rxRule, hlRule))
|
||||
|
||||
# Alignment Tags
|
||||
rxRule = re.compile(r"(^>{1,2}|<{1,2}$)", re.UNICODE)
|
||||
rxRule = re.compile(r"(^>{1,2}|<{1,2}$)")
|
||||
hlRule = {
|
||||
1: self._hStyles["markup"],
|
||||
}
|
||||
@@ -247,7 +247,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
|
||||
self._txtRules.append((rxRule, hlRule))
|
||||
|
||||
# Auto-Replace Tags
|
||||
rxRule = re.compile(r"<(\S+?)>", re.UNICODE)
|
||||
rxRule = re.compile(r"<(\S+?)>")
|
||||
hlRule = {
|
||||
0: self._hStyles["replace"],
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[Meta]
|
||||
timestamp = 2025-06-14 17:03:01
|
||||
timestamp = 2025-08-24 15:30:16
|
||||
|
||||
[Main]
|
||||
font =
|
||||
@@ -63,7 +63,7 @@ fmtpadthin = False
|
||||
spellcheck = en
|
||||
showtabsnspaces = False
|
||||
showlineendings = False
|
||||
showmultispaces = True
|
||||
showmultispaces = False
|
||||
incnoteswcount = True
|
||||
showfullpath = True
|
||||
dialogstyle = 2
|
||||
|
||||
@@ -537,6 +537,11 @@ def testBaseCommon_fontMatcher(monkeypatch):
|
||||
nonsense = QFont("nonesense", 10)
|
||||
assert fontMatcher(nonsense) is nonsense
|
||||
|
||||
# Style is reset
|
||||
nonsense.setStyleName("blabla")
|
||||
assert nonsense.styleName() == "blabla"
|
||||
assert fontMatcher(nonsense).styleName() == ""
|
||||
|
||||
# General font
|
||||
if len(QFontDatabase.families()) > 1:
|
||||
fontOne = QFont(QFontDatabase.families()[0])
|
||||
|
||||
@@ -279,7 +279,7 @@ def testDlgPreferences_Settings(qtbot, monkeypatch, nwGUI, fncPath, tstPaths):
|
||||
prefs.altDialogOpen.setText("%") # Symbol also tests for #2455
|
||||
prefs.altDialogClose.setText("%") # Symbol also tests for #2455
|
||||
prefs.highlightEmph.setChecked(False)
|
||||
prefs.showMultiSpaces.setChecked(False)
|
||||
prefs.showMultiSpaces.setChecked(True)
|
||||
|
||||
prefs._insertDialogLineSymbol(nwUnicode.U_ENDASH)
|
||||
assert prefs.dialogLine.text() == f"{nwUnicode.U_ENDASH} {nwUnicode.U_EMDASH}"
|
||||
@@ -292,7 +292,7 @@ def testDlgPreferences_Settings(qtbot, monkeypatch, nwGUI, fncPath, tstPaths):
|
||||
assert CONFIG.altDialogOpen == ""
|
||||
assert CONFIG.altDialogClose == ""
|
||||
assert CONFIG.highlightEmph is True
|
||||
assert CONFIG.showMultiSpaces is True
|
||||
assert CONFIG.showMultiSpaces is False
|
||||
|
||||
# Text Automation
|
||||
prefs.doReplaceSQuote.setChecked(False)
|
||||
@@ -413,7 +413,7 @@ def testDlgPreferences_Settings(qtbot, monkeypatch, nwGUI, fncPath, tstPaths):
|
||||
assert CONFIG.altDialogOpen == "%"
|
||||
assert CONFIG.altDialogClose == "%"
|
||||
assert CONFIG.highlightEmph is False
|
||||
assert CONFIG.showMultiSpaces is False
|
||||
assert CONFIG.showMultiSpaces is True
|
||||
|
||||
# Text Automation
|
||||
assert CONFIG.doReplace is False
|
||||
|
||||
Reference in New Issue
Block a user