From 25b7a58e3cf8510478af7c70616c68ba719cfc9c Mon Sep 17 00:00:00 2001 From: Jessey van Offeren Date: Fri, 22 May 2026 08:16:31 +0200 Subject: [PATCH] =?UTF-8?q?fix(gui):=20readable=20Environment=20dropdowns?= =?UTF-8?q?=20and=20action=20buttons=20=E2=80=94=200.10.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Style the QComboBox popup (QAbstractItemView) — it's a separate widget the theme didn't cover, so the drop-down list rendered light-on-light. - Install/Apply finding buttons used PrimaryButton (accent fill + dark text), whose fill didn't paint reliably inside the finding cards, leaving dim dark-on-dark text. New outlined ActionButton style: bright accent text on the dark card, fills accent on hover, with a min-height so the row can't crush it. Co-Authored-By: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 9 +++++++++ pyproject.toml | 2 +- src/rigdoctor/__init__.py | 2 +- src/rigdoctor/gui/theme.py | 18 ++++++++++++++++++ src/rigdoctor/gui/widgets.py | 4 ++-- 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89337a1..e47820e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to RigDoctor are recorded here. Format follows (`MAJOR.MINOR.PATCH`, pre-1.0). `__version__` and `pyproject.toml` must match the git release tag (so the auto-updater, D18, can compare versions). +## [0.10.1] - 2026-05-22 +### Fixed +- **Environment-page contrast.** The combo-box **drop-down list** was rendering light-on-light + (the popup view is a separate widget the theme didn't cover) — now dark with readable text. +- The **Install / Apply** buttons on findings were hard to read (the accent fill didn't paint + reliably inside the finding cards, leaving dim dark-on-dark text). They're now an outlined + style — bright accent text on the dark card, filling accent on hover — readable regardless, + and given a minimum height so the row can't crush them. + ## [0.10.0] - 2026-05-22 ### Added - **Actionable Environment page (M6) — install & apply, not just advice.** Findings that diff --git a/pyproject.toml b/pyproject.toml index 54a4f35..7f0b07c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "rigdoctor" -version = "0.10.0" +version = "0.10.1" description = "Modular hardware monitoring & crash diagnostics for Linux gamers." readme = "README.md" requires-python = ">=3.11" diff --git a/src/rigdoctor/__init__.py b/src/rigdoctor/__init__.py index 5dbac79..49185aa 100644 --- a/src/rigdoctor/__init__.py +++ b/src/rigdoctor/__init__.py @@ -1,3 +1,3 @@ """RigDoctor — modular hardware monitoring & crash diagnostics for Linux gamers.""" -__version__ = "0.10.0" +__version__ = "0.10.1" diff --git a/src/rigdoctor/gui/theme.py b/src/rigdoctor/gui/theme.py index d90ed49..ea23be9 100644 --- a/src/rigdoctor/gui/theme.py +++ b/src/rigdoctor/gui/theme.py @@ -104,6 +104,15 @@ QPushButton#PrimaryButton {{ background: {ACCENT}; color: #06222e; border: none; QPushButton#PrimaryButton:hover {{ background: #5cc8fb; }} QPushButton#PrimaryButton:disabled {{ background: #27424f; color: #5f7c8a; }} +/* Inline per-finding action buttons (Install / Apply). Outlined: bright accent text on the + dark card so it stays readable regardless of fill painting; fills accent on hover. */ +QPushButton#ActionButton {{ + background: transparent; color: {ACCENT}; border: 1px solid {ACCENT}; + border-radius: 8px; padding: 6px 16px; font-weight: 700; min-height: 18px; +}} +QPushButton#ActionButton:hover {{ background: {ACCENT}; color: #06222e; }} +QPushButton#ActionButton:disabled {{ color: {MUTED}; border-color: {CARD_BORDER}; }} + QDoubleSpinBox, QSpinBox {{ background: #262b34; color: {TEXT}; border: 1px solid {CARD_BORDER}; border-radius: 6px; padding: 4px 6px; @@ -150,4 +159,13 @@ QLineEdit:focus, QPlainTextEdit:focus, QAbstractSpinBox:focus, QComboBox:focus { border: 1px solid {ACCENT}; }} QLineEdit:disabled, QPlainTextEdit:disabled, QAbstractSpinBox:disabled {{ color: {MUTED}; }} + +/* The combo-box drop-down list is a separate popup view — unstyled it renders + light-on-light (same Fusion trap as the closed control above). */ +QComboBox QAbstractItemView {{ + background: {CARD}; color: {TEXT}; + border: 1px solid {CARD_BORDER}; outline: 0; + selection-background-color: {ACCENT}; selection-color: #06222e; +}} +QComboBox QAbstractItemView::item {{ padding: 5px 8px; min-height: 22px; }} """ diff --git a/src/rigdoctor/gui/widgets.py b/src/rigdoctor/gui/widgets.py index 0aa244c..e2bf639 100644 --- a/src/rigdoctor/gui/widgets.py +++ b/src/rigdoctor/gui/widgets.py @@ -66,7 +66,7 @@ def finding_card(finding, on_install=None, on_apply=None) -> QFrame: row = QHBoxLayout() row.addStretch(1) btn = QPushButton(f"Install {component.name}") - btn.setObjectName("PrimaryButton") + btn.setObjectName("ActionButton") btn.setCursor(Qt.CursorShape.PointingHandCursor) btn.clicked.connect(lambda: on_install(component)) row.addWidget(btn) @@ -83,7 +83,7 @@ def finding_card(finding, on_install=None, on_apply=None) -> QFrame: combo.setCurrentText(tunable.current) combo.setCursor(Qt.CursorShape.PointingHandCursor) apply_btn = QPushButton("Apply") - apply_btn.setObjectName("PrimaryButton") + apply_btn.setObjectName("ActionButton") apply_btn.setCursor(Qt.CursorShape.PointingHandCursor) apply_btn.clicked.connect(lambda: on_apply(tunable.id, combo.currentText())) row.addWidget(name)