GUI Milestone 2

This commit is contained in:
Joey Yakimowich-Payne 2026-01-29 22:17:33 -07:00
commit 8f341f631a
3 changed files with 190 additions and 22 deletions

View file

@ -35,27 +35,27 @@ A Qt6-based node editor GUI for warppipe using the QtNodes (nodeeditor) library.
- [x] Use port name from PortInfo as port label
- [x] Verify nodes appear in graph view with correct titles and ports
- [ ] Milestone 2 - Visual Styling and Node Types
- [ ] Define node type classification based on `media_class`:
- [ ] Sink → "Hardware Sink" (blue-gray base color)
- [ ] Source → "Hardware Source" (blue-gray base color)
- [ ] Virtual sinks created by warppipe → "Virtual Sink" (green base color)
- [ ] Virtual sources created by warppipe → "Virtual Source" (green base color)
- [ ] Application audio streams (ephemeral) → "Application" (brown/orange base color)
- [ ] Implement custom NodeStyle via `nodeData(NodeRole::Style)`:
- [ ] Return QtNodes::NodeStyle::toJson().toVariantMap()
- [ ] Set GradientColor0-3, NormalBoundaryColor, FontColor based on node type
- [ ] Reference potato's `nodeStyleVariant()` function for color scheme
- [ ] Detect ephemeral (application) nodes:
- [ ] Track node appearance/disappearance via Client poll or registry events
- [ ] Mark node as "inactive" if it disappears (no audio playing)
- [ ] Persist inactive nodes in graph model (do NOT remove from visual graph)
- [ ] Apply "ghost" styling to inactive nodes:
- [ ] Set `Opacity = 0.6f` (vs 1.0f for active)
- [ ] Darken gradient colors (use `.darker(150-180)`)
- [ ] Fade font color (lighter gray)
- [ ] Keep connections visible with faded style
- [ ] Verify: Application nodes appear vibrant when active, fade when inactive, never disappear
- [x] Milestone 2 - Visual Styling and Node Types
- [x] Define node type classification based on `media_class`:
- [x] Sink → "Hardware Sink" (blue-gray base color)
- [x] Source → "Hardware Source" (blue-gray base color)
- [x] Virtual sinks created by warppipe → "Virtual Sink" (green base color)
- [x] Virtual sources created by warppipe → "Virtual Source" (green base color)
- [x] Application audio streams (ephemeral) → "Application" (brown/orange base color)
- [x] Implement custom NodeStyle via `nodeData(NodeRole::Style)`:
- [x] Return QtNodes::NodeStyle::toJson().toVariantMap()
- [x] Set GradientColor0-3, NormalBoundaryColor, FontColor based on node type
- [x] Reference potato's `nodeStyleVariant()` function for color scheme
- [x] Detect ephemeral (application) nodes:
- [x] Track node appearance/disappearance via Client poll or registry events
- [x] Mark node as "inactive" if it disappears (no audio playing)
- [x] Persist inactive nodes in graph model (do NOT remove from visual graph)
- [x] Apply "ghost" styling to inactive nodes:
- [x] Set `Opacity = 0.6f` (vs 1.0f for active)
- [x] Darken gradient colors (use `.darker(150-180)`)
- [x] Fade font color (lighter gray)
- [x] Keep connections visible with faded style
- [x] Verify: Application nodes appear vibrant when active, fade when inactive, never disappear
- [ ] Milestone 3 - Link Visualization and Drag-Connect
- [ ] Implement connection mapping: