GUI Milestone 5

This commit is contained in:
Joey Yakimowich-Payne 2026-01-30 06:30:20 -07:00
commit 79cced017e
6 changed files with 228 additions and 20 deletions

View file

@ -89,23 +89,23 @@ A Qt6-based node editor GUI for warppipe using the QtNodes (nodeeditor) library.
- [x] Call `Client::RemoveNode(nodeId)` and remove from graph
- [x] Verify: Can create/delete virtual sinks and sources via right-click
- [ ] Milestone 5 - Layout Persistence and Polish
- [ ] Implement layout save/load:
- [ ] Save node positions to JSON file in `~/.config/warppipe-gui/layout.json`
- [ ] Store by stable ID (use NodeInfo.name as stable key)
- [ ] Save on position change (debounced)
- [ ] Load on startup and restore positions
- [ ] Implement auto-arrange:
- [ ] Menu or button to auto-layout nodes (left-to-right: sources → sinks)
- [ ] Use simple grid or layered layout algorithm
- [ ] Add visual polish:
- [ ] Connection lines styled (color, width, curvature)
- [ ] Highlight connections on hover
- [ ] Port connection points visible and responsive
- [ ] Add status bar:
- [ ] Show connection status to PipeWire daemon
- [ ] Show count of nodes, links
- [ ] Verify: Layout persists across sessions, UI feels responsive and polished
- [x] Milestone 5 - Layout Persistence and Polish
- [x] Implement layout save/load:
- [x] Save node positions to JSON file in `~/.config/warppipe-gui/layout.json`
- [x] Store by stable ID (use NodeInfo.name as stable key)
- [x] Save on position change (debounced)
- [x] Load on startup and restore positions
- [x] Implement auto-arrange:
- [x] Menu or button to auto-layout nodes (left-to-right: sources → sinks)
- [x] Use simple grid or layered layout algorithm
- [x] Add visual polish:
- [x] Connection lines styled (color, width, curvature)
- [x] Highlight connections on hover
- [x] Port connection points visible and responsive
- [x] Add status bar:
- [x] Show connection status to PipeWire daemon
- [x] Show count of nodes, links
- [x] Verify: Layout persists across sessions, UI feels responsive and polished
- [ ] Milestone 6 - Screenshot Infrastructure (AI-Assisted Debugging)
- [ ] Add CLI flags to main.cpp via QCommandLineParser: