feat: appearance mode system with engineering color presets #1

Open
forbes wants to merge 2 commits from feat/appearance-mode into main
Owner

Adds appearance mode system with Realistic and Engineering modes. Engineering mode colors parts by KindredCategory using Catppuccin Mocha palette. Includes manager, observer, JSON palette, and View menu integration. Closes #20

Adds appearance mode system with Realistic and Engineering modes. Engineering mode colors parts by KindredCategory using Catppuccin Mocha palette. Includes manager, observer, JSON palette, and View menu integration. Closes #20
forbes added 1 commit 2026-02-07 17:02:00 +00:00
Add configurable appearance mode system with two modes:
- Realistic: material passthrough (restores original ShapeColor)
- Engineering: colors parts by KindredCategory using Catppuccin Mocha palette

KindredCategory enum property (custom_body, fastener, structural, electrical,
seal_gasket, bearing_bushing, spring_compliant, moving_part) is added lazily
to Part::Feature objects when Engineering mode is activated.

Includes:
- AppearanceMode base class with apply/reset/apply_to_object interface
- AppearanceManager singleton with document observer for auto-coloring
- Palette loaded from JSON config (theme-overridable)
- View > Appearance Mode menu and toolbar integration
- Preference persistence at Kindred/AppearanceMode

Closes #20
forbes added 1 commit 2026-02-07 19:32:36 +00:00
- Grouped toolbar dropdown (ZTools_AppearanceMode) replaces two separate buttons
- Set Category command (ZTools_SetCategory) with popup menu for batch tagging
- Category changes wrapped in undo transactions
- Status bar indicator showing current mode, clickable to toggle
- Debounced recompute handling (Shape property changes batched at 100ms)
- Observer re-applies colors after recompute to prevent reset

Closes #21
This pull request has changes conflicting with the target branch.
  • ztools/InitGui.py
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/appearance-mode:feat/appearance-mode
git checkout feat/appearance-mode
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/ztools#1