GUI Milestone 4

This commit is contained in:
Joey Yakimowich-Payne 2026-01-30 06:14:49 -07:00
commit a369381b6c
5 changed files with 177 additions and 16 deletions

View file

@ -74,20 +74,20 @@ A Qt6-based node editor GUI for warppipe using the QtNodes (nodeeditor) library.
- [x] Remove from m_connections
- [x] Verify: Drag connection from output port to input port creates PipeWire link; delete removes it
- [ ] Milestone 4 - Context Menu and Virtual Node Creation
- [ ] Add context menu to GraphEditorWidget:
- [ ] Right-click on canvas (not on node) shows menu
- [ ] Menu items: "Create Virtual Sink", "Create Virtual Source"
- [ ] Implement "Create Virtual Sink":
- [ ] Prompt user for name (QInputDialog or inline text field)
- [ ] Call `Client::CreateVirtualSink(name, VirtualNodeOptions{})` with default options
- [ ] On success, node appears in graph at context menu position
- [ ] Implement "Create Virtual Source":
- [ ] Same as sink but call `Client::CreateVirtualSource()`
- [ ] Add context menu on nodes:
- [ ] Right-click on virtual node shows "Delete Node" option
- [ ] Call `Client::RemoveNode(nodeId)` and remove from graph
- [ ] Verify: Can create/delete virtual sinks and sources via right-click
- [x] Milestone 4 - Context Menu and Virtual Node Creation
- [x] Add context menu to GraphEditorWidget:
- [x] Right-click on canvas (not on node) shows menu
- [x] Menu items: "Create Virtual Sink", "Create Virtual Source"
- [x] Implement "Create Virtual Sink":
- [x] Prompt user for name (QInputDialog or inline text field)
- [x] Call `Client::CreateVirtualSink(name, VirtualNodeOptions{})` with default options
- [x] On success, node appears in graph at context menu position
- [x] Implement "Create Virtual Source":
- [x] Same as sink but call `Client::CreateVirtualSource()`
- [x] Add context menu on nodes:
- [x] Right-click on virtual node shows "Delete Node" option
- [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: