v0.5.1: one cast control instead of two

The cast glyph showed up both under the volume slider and inside the
visualizer, which was redundant. Dropped the volume-slider indicator
(gui/cast_indicator.py deleted) and made the visualizer panel the single
cast control — the volume slider goes back to sitting on its own, and
nothing shifts position when a session starts.

The panel's glyph is bigger (20 -> 40px) and always painted in the theme
highlight rather than following the brightness mode. Clicking it now stops
casting instead of cycling on/dim/off, which meant nothing when there are
no bars to dim; that click was the useful behavior the volume-slider icon
had, so it moves here rather than being lost.

transport_icon() takes a size and scales the painter, so the bigger glyph
is repainted crisply rather than being a blown-up 20px pixmap; size joins
the cache key. The cast/cast_connected glyph pair collapses into one,
since only the connected state was ever drawn.

450 tests pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 22:24:31 -04:00
co-authored by Claude Opus 5
parent 6c746c3330
commit bcc17a7542
8 changed files with 132 additions and 141 deletions
+16
View File
@@ -1,5 +1,21 @@
## Done
### Round 31 (2026-08-13) — One cast control, not two (v0.5.1)
The cast glyph appeared both under the volume slider and inside the visualizer,
which was redundant. Dropped the volume-slider indicator (`gui/cast_indicator.py`
deleted); the visualizer panel is now the single cast control.
- [x] **The visualizer panel is the indicator** — bigger glyph (20 → 40 px),
always painted in the theme highlight rather than following the brightness
mode, and clicking it stops casting instead of cycling on/dim/off (which
meant nothing with no bars to dim). New `cast_stop_requested` signal.
- [x] **`transport_icon(kind, color, size=…)`** scales the painter instead of
upscaling a 20px pixmap, so the panel-sized glyph is crisp; `size` joins the
cache key.
- [x] Collapsed the `cast`/`cast_connected` glyph pair into one — only the
connected state was ever drawn.
### Round 30 (2026-08-13) — Album art on the cast device (v0.5.0)
The Chromecast is on a TV, so it should show the cover. `play_media` now