diff --git a/CHANGELOG.md b/CHANGELOG.md index 88940cb..e5ec5f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ 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.26.1] - 2026-05-22 +### Fixed +- **Setup wizard contrast.** The **radio buttons** (Recording trigger) were unstyled, so the + selected option was invisible on the dark theme — now styled with a clear accent ring + dot. + Bundle **checkboxes** got explicit checked/disabled states, and stay selectable even when a + bundle is already installed (the page no longer looks dead when everything's present). + ## [0.26.0] - 2026-05-22 ### Added - **Graphical setup wizard (M9).** A first-run GUI wizard (`gui/setup_wizard.py`) walks through: diff --git a/pyproject.toml b/pyproject.toml index cad39e4..0bcfd57 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "rigdoctor" -version = "0.26.0" +version = "0.26.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 7b0b19e..d3e6e54 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.26.0" +__version__ = "0.26.1" diff --git a/src/rigdoctor/gui/setup_wizard.py b/src/rigdoctor/gui/setup_wizard.py index 2f347b3..cad5baf 100644 --- a/src/rigdoctor/gui/setup_wizard.py +++ b/src/rigdoctor/gui/setup_wizard.py @@ -117,7 +117,7 @@ class SetupWizard(QDialog): tag = " — all installed ✓" if not missing else f" — {len(missing)} to install" cb = QCheckBox(f"{bundle}: {names}{tag}") cb.setChecked(bool(missing)) # default-check bundles with something to add - cb.setEnabled(bool(missing) and sysenv.package_manager() == "apt") + cb.setEnabled(sysenv.package_manager() == "apt") # selectable even if already installed self._bundle_checks[bundle] = cb v.addWidget(cb) if sysenv.package_manager() != "apt": diff --git a/src/rigdoctor/gui/theme.py b/src/rigdoctor/gui/theme.py index a5f79c6..5df6d25 100644 --- a/src/rigdoctor/gui/theme.py +++ b/src/rigdoctor/gui/theme.py @@ -144,6 +144,24 @@ QCheckBox::indicator:hover {{ border-color: {ACCENT}; }} QCheckBox::indicator:checked {{ background: {ACCENT}; border-color: {ACCENT}; image: url("{_CHECK}"); }} +QCheckBox::indicator:disabled {{ border-color: #3a414d; background: #1c2026; }} +QCheckBox::indicator:checked:disabled {{ background: #2a6175; border-color: #2a6175; }} +QCheckBox:disabled {{ color: {MUTED}; }} + +/* Radio buttons — same dark treatment as checkboxes; the selected one gets a clear + accent dot (Fusion leaves these unstyled = the selection is invisible on dark). */ +QRadioButton {{ spacing: 8px; background: transparent; }} +QRadioButton::indicator {{ + width: 17px; height: 17px; border-radius: 9px; + border: 1px solid {MUTED}; background: #262b34; +}} +QRadioButton::indicator:hover {{ border-color: {ACCENT}; }} +QRadioButton::indicator:checked {{ + border: 1px solid {ACCENT}; + background: qradialgradient(cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, + stop:0 {ACCENT}, stop:0.5 {ACCENT}, stop:0.55 #262b34, stop:1 #262b34); +}} +QRadioButton:disabled {{ color: {MUTED}; }} /* Dialogs (update prompt, changelog) — match the dark theme so text is readable. */ QDialog {{ background: {BG}; }}