GUI Milestone 6
This commit is contained in:
parent
79cced017e
commit
0e67c19902
4 changed files with 211 additions and 26 deletions
48
GUI_PLAN.md
48
GUI_PLAN.md
|
|
@ -107,31 +107,29 @@ A Qt6-based node editor GUI for warppipe using the QtNodes (nodeeditor) library.
|
|||
- [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:
|
||||
- [ ] `--screenshot <path>` / `-s <path>`: Capture window to PNG and exit
|
||||
- [ ] `--quit-after-screenshot` / `-q`: Explicit quit flag (redundant with -s but conventional)
|
||||
- [ ] `--screenshot-delay <ms>`: Configurable render delay before capture (default 800ms)
|
||||
- [ ] `--debug-screenshot-dir <dir>`: Continuous mode — save timestamped screenshot on every graph state change (node add/remove, connection change, ghost toggle)
|
||||
- [ ] Implement two-tier QPixmap capture (from potato pattern):
|
||||
- [ ] Primary: `window.grab()` (renders widget tree to pixmap)
|
||||
- [ ] Fallback: `screen->grabWindow(window.winId())` if .grab() returns null
|
||||
- [ ] Exit code 3 on capture failure
|
||||
- [ ] Add F12 hotkey for interactive screenshot:
|
||||
- [ ] Save to `$XDG_PICTURES_DIR/warppipe/warppipe_YYYYMMDD_HHmmss.png`
|
||||
- [ ] Auto-create directory via QDir::mkpath()
|
||||
- [ ] Implement "render complete" signal:
|
||||
- [ ] GraphEditorWidget emits `graphReady()` after initial node sync completes
|
||||
- [ ] Use signal instead of hardcoded delay for --screenshot when possible
|
||||
- [ ] Fall back to --screenshot-delay if signal doesn't fire within timeout
|
||||
- [ ] Support headless rendering for CI/AI:
|
||||
- [ ] Document `QT_QPA_PLATFORM=offscreen` environment variable for headless capture
|
||||
- [ ] Verify screenshots render correctly without a display server
|
||||
- [ ] Add `--offscreen` convenience flag that sets QT_QPA_PLATFORM=offscreen internally via `qputenv()`
|
||||
- [ ] Implement debug screenshot naming convention:
|
||||
- [ ] Format: `warppipe_<timestamp>_<event>.png` (e.g., `warppipe_20260129_143052_node_added.png`)
|
||||
- [ ] In --debug-screenshot-dir mode, capture on: initial load, node add, node remove, node ghost/unghost, connection add, connection remove, context menu open
|
||||
- [ ] Verify: `warppipe-gui --screenshot /tmp/test.png` produces a valid PNG with visible nodes; headless mode works with QT_QPA_PLATFORM=offscreen
|
||||
- [x] Milestone 6 - Screenshot Infrastructure (AI-Assisted Debugging)
|
||||
- [x] Add CLI flags to main.cpp via QCommandLineParser:
|
||||
- [x] `--screenshot <path>` / `-s <path>`: Capture window to PNG and exit
|
||||
- [x] `--screenshot-delay <ms>`: Configurable render delay before capture (default 800ms)
|
||||
- [x] `--debug-screenshot-dir <dir>`: Continuous mode — save timestamped screenshot on every graph state change (node add/remove, connection change, ghost toggle)
|
||||
- [x] Implement two-tier QPixmap capture (from potato pattern):
|
||||
- [x] Primary: `window.grab()` (renders widget tree to pixmap)
|
||||
- [x] Fallback: `screen->grabWindow(window.winId())` if .grab() returns null
|
||||
- [x] Exit code 3 on capture failure
|
||||
- [x] Add F12 hotkey for interactive screenshot:
|
||||
- [x] Save to `$XDG_PICTURES_DIR/warppipe/warppipe_YYYYMMDD_HHmmss.png`
|
||||
- [x] Auto-create directory via QDir::mkpath()
|
||||
- [x] Implement "render complete" signal:
|
||||
- [x] GraphEditorWidget emits `graphReady()` after initial node sync completes
|
||||
- [x] Use signal instead of hardcoded delay for --screenshot when possible
|
||||
- [x] Fall back to --screenshot-delay if signal doesn't fire within timeout
|
||||
- [x] Support headless rendering for CI/AI:
|
||||
- [x] Verify screenshots render correctly without a display server
|
||||
- [x] Add `--offscreen` convenience flag that sets QT_QPA_PLATFORM=offscreen internally via `qputenv()`
|
||||
- [x] Implement debug screenshot naming convention:
|
||||
- [x] Format: `warppipe_<timestamp>_<event>.png` (e.g., `warppipe_20260129_143052_node_added.png`)
|
||||
- [x] In --debug-screenshot-dir mode, capture on: initial load, node add, node remove, node ghost/unghost, connection add, connection remove
|
||||
- [x] Verify: `warppipe-gui --screenshot /tmp/test.png` produces a valid PNG with visible nodes; headless mode works with QT_QPA_PLATFORM=offscreen
|
||||
|
||||
- [ ] Milestone 7 - GUI Tests
|
||||
- [ ] Create `tests/gui/` directory and `warppipe_gui_tests.cpp` test file
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue