From fd476c49672300fb28cffc6104e3a51a70dc07a5 Mon Sep 17 00:00:00 2001 From: pax Date: Sat, 4 Apr 2026 22:50:16 -0500 Subject: [PATCH] Fix grid selection highlight with custom QSS themes Extract selection-background-color from QSS and apply it to the app palette so the grid's custom-painted highlight matches the theme. --- booru_viewer/gui/app.py | 11 ++++++++++- booru_viewer/gui/grid.py | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/booru_viewer/gui/app.py b/booru_viewer/gui/app.py index c1dd883..8ca3a0b 100644 --- a/booru_viewer/gui/app.py +++ b/booru_viewer/gui/app.py @@ -1639,7 +1639,16 @@ def run() -> None: try: # Use Fusion style so QSS has full control over rendering app.setStyle("Fusion") - app.setStyleSheet(custom_css.read_text()) + css_text = custom_css.read_text() + app.setStyleSheet(css_text) + # Extract selection color from QSS and apply to palette + import re + m = re.search(r'selection-background-color\s*:\s*(#[0-9a-fA-F]{3,8})', css_text) + if m: + from PySide6.QtGui import QPalette, QColor + pal = app.palette() + pal.setColor(QPalette.ColorRole.Highlight, QColor(m.group(1))) + app.setPalette(pal) except Exception: pass diff --git a/booru_viewer/gui/grid.py b/booru_viewer/gui/grid.py index 51bd95e..d38b48b 100644 --- a/booru_viewer/gui/grid.py +++ b/booru_viewer/gui/grid.py @@ -67,6 +67,8 @@ class ThumbnailWidget(QWidget): self.update() def paintEvent(self, event) -> None: + # Ensure QSS is applied so palette picks up custom colors + self.ensurePolished() p = QPainter(self) p.setRenderHint(QPainter.RenderHint.Antialiasing) pal = self.palette()