v0.44.1: Preferences headings stay bold under the app's style sheet
The headings were set with setFont, which the app's own style sheet (theme.apply_theme) overrides on re-polish — bold in a bare dialog, plain in the running app. A style sheet on the heading itself wins. The test now applies the theme first, as the app does.
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
"""LinTunes — iTunes-style music library manager and player for Linux."""
|
"""LinTunes — iTunes-style music library manager and player for Linux."""
|
||||||
|
|
||||||
__version__ = "0.44.0"
|
__version__ = "0.44.1"
|
||||||
|
|||||||
@@ -191,10 +191,9 @@ class PreferencesDialog(QDialog):
|
|||||||
the UI size changes, since the app font moves with it."""
|
the UI size changes, since the app font moves with it."""
|
||||||
size = QFontInfo(QApplication.font()).pixelSize() + HEADING_EXTRA_PX
|
size = QFontInfo(QApplication.font()).pixelSize() + HEADING_EXTRA_PX
|
||||||
for header in self._headings:
|
for header in self._headings:
|
||||||
font = QFont(QApplication.font())
|
# A style sheet, not setFont: the app's own style sheet (theme)
|
||||||
font.setPixelSize(size)
|
# re-polishes widgets and would quietly put the plain font back.
|
||||||
font.setBold(True)
|
header.setStyleSheet(f"font-weight: bold; font-size: {size}px;")
|
||||||
header.setFont(font)
|
|
||||||
|
|
||||||
def _show_page(self, row: int):
|
def _show_page(self, row: int):
|
||||||
self.pages.setCurrentIndex(row)
|
self.pages.setCurrentIndex(row)
|
||||||
|
|||||||
@@ -161,14 +161,19 @@ def _prefs_dialog(prefs):
|
|||||||
|
|
||||||
class TestHeadings:
|
class TestHeadings:
|
||||||
def test_bold_and_two_px_larger(self, qapp, tmp_path):
|
def test_bold_and_two_px_larger(self, qapp, tmp_path):
|
||||||
dialog = _prefs_dialog(Preferences(tmp_path))
|
from lintunes import theme
|
||||||
|
prefs = Preferences(tmp_path)
|
||||||
|
theme.apply_theme(QApplication.instance(), prefs) # as the app runs
|
||||||
|
dialog = _prefs_dialog(prefs)
|
||||||
|
dialog.show()
|
||||||
text_px = QFontInfo(QApplication.font()).pixelSize()
|
text_px = QFontInfo(QApplication.font()).pixelSize()
|
||||||
headings = dialog.findChildren(QLabel, "prefs-heading")
|
headings = dialog.findChildren(QLabel, "prefs-heading")
|
||||||
assert {h.text() for h in headings} >= {"Interface", "Visualizer",
|
assert {h.text() for h in headings} >= {"Interface", "Visualizer",
|
||||||
"Colors", "Last.fm"}
|
"Colors", "Last.fm"}
|
||||||
for heading in headings:
|
for heading in headings:
|
||||||
assert heading.font().bold()
|
assert heading.font().bold()
|
||||||
assert heading.font().pixelSize() == text_px + 2
|
assert QFontInfo(heading.font()).pixelSize() == text_px + 2
|
||||||
|
dialog.close()
|
||||||
|
|
||||||
def test_the_boxes_contents_stay_plain(self, qapp, tmp_path):
|
def test_the_boxes_contents_stay_plain(self, qapp, tmp_path):
|
||||||
dialog = _prefs_dialog(Preferences(tmp_path))
|
dialog = _prefs_dialog(Preferences(tmp_path))
|
||||||
|
|||||||
Reference in New Issue
Block a user