feat: add QuickNav addon — Phase 1 core infrastructure (#320) #324

Merged
forbes merged 1 commits from feat/quicknav-phase1 into main 2026-02-24 18:37:22 +00:00
Owner

Summary

Add QuickNav Phase 1 — keyboard-driven command navigation for Kindred Create.

Closes #320

Changes

New submodule: mods/quicknav

  • quicknav/workbench_map.py — static workbench slots (Sketcher, PartDesign, Assembly, Spreadsheet, TechDraw) and command groupings from spec §5
  • quicknav/event_filter.py — key event routing: 0=toggle, 1-9=commands, Shift+1-9=groupings, Ctrl+1-9=workbenches; input-widget safety (QLineEdit, QTextEdit, QAbstractSpinBox, TaskView); numpad support
  • quicknav/nav_bar.py — QToolBar with workbench/grouping/command display; conditional Catppuccin theming via SDK
  • quicknav/core.py — QuickNavManager singleton; workbench switching, grouping selection, command execution; preference persistence
  • quicknav/commands.pyQuickNav_Toggle FreeCAD command
  • InitGui.py — QuickNavWorkbench with transparent overlay pattern
  • package.xml — addon manifest, priority 20, depends on sdk

Create-side integration

  • src/Mod/Create/CMakeLists.txt — install rules for quicknav
  • tests/test_kindred_pure.py — 16 new TestWorkbenchMap tests (94 total, all passing)
  • docs/src/quicknav/SPEC.md — QuickNav specification

Testing

  • python tests/test_kindred_pure.py — 94 tests pass
  • Manual verification needed: launch app, test key routing, nav bar display, input-widget safety
## Summary Add QuickNav Phase 1 — keyboard-driven command navigation for Kindred Create. Closes #320 ## Changes ### New submodule: `mods/quicknav` - `quicknav/workbench_map.py` — static workbench slots (Sketcher, PartDesign, Assembly, Spreadsheet, TechDraw) and command groupings from spec §5 - `quicknav/event_filter.py` — key event routing: `0`=toggle, `1-9`=commands, `Shift+1-9`=groupings, `Ctrl+1-9`=workbenches; input-widget safety (QLineEdit, QTextEdit, QAbstractSpinBox, TaskView); numpad support - `quicknav/nav_bar.py` — QToolBar with workbench/grouping/command display; conditional Catppuccin theming via SDK - `quicknav/core.py` — QuickNavManager singleton; workbench switching, grouping selection, command execution; preference persistence - `quicknav/commands.py` — `QuickNav_Toggle` FreeCAD command - `InitGui.py` — QuickNavWorkbench with transparent overlay pattern - `package.xml` — addon manifest, priority 20, depends on sdk ### Create-side integration - `src/Mod/Create/CMakeLists.txt` — install rules for quicknav - `tests/test_kindred_pure.py` — 16 new TestWorkbenchMap tests (94 total, all passing) - `docs/src/quicknav/SPEC.md` — QuickNav specification ## Testing - `python tests/test_kindred_pure.py` — 94 tests pass - Manual verification needed: launch app, test key routing, nav bar display, input-widget safety
forbes added 1 commit 2026-02-23 20:12:28 +00:00
feat: add QuickNav addon — Phase 1 core infrastructure (#320)
All checks were successful
Build and Test / build (pull_request) Successful in 29m58s
e73c5fc750
Add quicknav submodule and create-side integration for keyboard-driven
command navigation.

Submodule: mods/quicknav (https://git.kindred-systems.com/kindred/quicknav)

Create-side changes:
- CMakeLists.txt: add quicknav install rules
- test_kindred_pure.py: add 16 workbench_map validation tests
- docs/src/quicknav/SPEC.md: QuickNav specification

QuickNav provides numbered-key access to workbenches (Ctrl+1-5),
command groupings (Shift+1-9), and individual commands (1-9), with
a navigation bar toolbar and input-widget safety guards.
forbes merged commit 1fd52ccf1c into main 2026-02-24 18:37:22 +00:00
forbes deleted branch feat/quicknav-phase1 2026-02-24 18:37:23 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#324