refactor: migrate ztools and Silo to kindred-addon-sdk (#250) #260

Merged
forbes merged 1 commits from feat/migrate-addons-to-sdk into main 2026-02-17 15:51:00 +00:00
Owner

Summary

Route platform API calls through kindred_sdk wrappers so there is a single adaptation point during upstream FreeCAD rebases. Behavior is identical before and after.

Changes

ZTools (3 files)

  • icons.py — Replace hardcoded 26-entry MOCHA dict with kindred_sdk.get_theme_tokens()
  • theme.py — Replace from .icons import MOCHA with SDK import
  • package.xml — Add <dependency>sdk</dependency>

Silo (4 files)

  • InitGui.py — Replace FreeCADGui.registerEditingOverlay() with kindred_sdk.register_overlay()
  • silo_origin.py — Replace FreeCADGui.addOrigin()/removeOrigin() with SDK wrappers
  • silo_start.py — Replace hardcoded 16-entry _MOCHA subset with kindred_sdk.get_theme_tokens()
  • package.xml — Add <dependency>sdk</dependency>

Create module (1 file)

  • InitGui.py — Replace dock panel boilerplate (duplicate check, QDockWidget creation, area mapping) with kindred_sdk.register_dock_panel()

What stays unchanged

  • Gui.addWorkbench(), Gui.addCommand(), Gui.addWorkbenchManipulator() — stable FreeCAD APIs
  • QSS generation approach (f-strings) — converting to format_qss() templates is a separate issue
  • QTimer deferral patterns — existing timers kept as-is

Closes #250

## Summary Route platform API calls through kindred_sdk wrappers so there is a single adaptation point during upstream FreeCAD rebases. Behavior is identical before and after. ## Changes ### ZTools (3 files) - **icons.py** — Replace hardcoded 26-entry MOCHA dict with `kindred_sdk.get_theme_tokens()` - **theme.py** — Replace `from .icons import MOCHA` with SDK import - **package.xml** — Add `<dependency>sdk</dependency>` ### Silo (4 files) - **InitGui.py** — Replace `FreeCADGui.registerEditingOverlay()` with `kindred_sdk.register_overlay()` - **silo_origin.py** — Replace `FreeCADGui.addOrigin()`/`removeOrigin()` with SDK wrappers - **silo_start.py** — Replace hardcoded 16-entry _MOCHA subset with `kindred_sdk.get_theme_tokens()` - **package.xml** — Add `<dependency>sdk</dependency>` ### Create module (1 file) - **InitGui.py** — Replace dock panel boilerplate (duplicate check, QDockWidget creation, area mapping) with `kindred_sdk.register_dock_panel()` ## What stays unchanged - `Gui.addWorkbench()`, `Gui.addCommand()`, `Gui.addWorkbenchManipulator()` — stable FreeCAD APIs - QSS generation approach (f-strings) — converting to `format_qss()` templates is a separate issue - QTimer deferral patterns — existing timers kept as-is Closes #250
forbes added 1 commit 2026-02-17 15:00:18 +00:00
refactor: migrate ztools and Silo to kindred-addon-sdk (#250)
Some checks failed
Build and Test / build (pull_request) Failing after 1m51s
64edae4c04
Route platform API calls through kindred_sdk wrappers:

ZTools:
- Replace hardcoded MOCHA dict with kindred_sdk.get_theme_tokens()
- Add sdk dependency to package.xml

Silo:
- Replace FreeCADGui.registerEditingOverlay() with kindred_sdk.register_overlay()
- Replace FreeCADGui.addOrigin()/removeOrigin() with kindred_sdk wrappers
- Replace hardcoded _MOCHA palette subset with kindred_sdk.get_theme_tokens()
- Add sdk dependency to package.xml

Create module:
- Replace dock panel boilerplate with kindred_sdk.register_dock_panel()

Behavior is identical before and after — this is a refactor only.

Closes #250
forbes merged commit acfb627d67 into main 2026-02-17 15:51:00 +00:00
forbes deleted branch feat/migrate-addons-to-sdk 2026-02-17 15:51:00 +00:00
Author
Owner
Submodule PRs created for the upstream repos: - **ztools**: kindred/ztools#2 - **silo-mod**: kindred/silo-mod#34
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#260