docs: C++ API reference, signal architecture, and build integration #166

Merged
forbes merged 11 commits from docs/api-reference into main 2026-02-10 14:41:53 +00:00

11 Commits

Author SHA1 Message Date
8247127905 merge: resolve build.yml conflict with main
All checks were successful
Build and Test / build (pull_request) Successful in 35m52s
Keep Kindred addon test step, drop removed cache-date step.
2026-02-10 08:41:29 -06:00
779e32e24a docs(dev): Gui module build integration
All checks were successful
Build and Test / build (pull_request) Successful in 1h20m55s
Covers FreeCADGui target definition, dependency chain (fastsignals,
Qt6, Coin3D, PySide6, PyCXX), source file organisation and how to
add new files, theme/stylesheet build-time copying, version constants,
precompiled headers, CMake presets, ccache, and pixi tasks.

Closes #138
2026-02-10 08:36:50 -06:00
5774f42876 docs(arch): signal architecture — fastsignals vs Qt signals
Explains the dual-signal system: fastsignals for domain events
(origin lifecycle, document changes, application state) and Qt signals
for UI framework integration. Covers API, connection patterns
(scoped_connection RAII, DocumentObserver, temporary blocking),
thread safety model, performance, and common mistakes.

Closes #137
2026-02-10 08:32:07 -06:00
1561dff860 docs(c++): guide to creating a custom origin in C++
Step-by-step walkthrough covering class definition, identity methods,
ownership detection with tracking properties, document operations,
capability flags, extended PLM operations, connection lifecycle,
OriginManager registration, and CMake build integration.

Closes #136
2026-02-10 08:27:01 -06:00
c25aa17591 docs(c++): OriginSelectorWidget toolbar integration
Covers widget lifecycle, signal connections (fastsignals), menu
population, origin selection with authentication gate, icon overlays
for connection state, StdCmdOrigin/OriginSelectorAction command
wrappers, and StdWorkbench toolbar placement.

Closes #133
2026-02-10 08:18:05 -06:00
8fd664d509 docs(c++): LocalFileOrigin implementation guide
Covers ownership-by-exclusion algorithm, document identity, open/save
workflows, capability flags, connection state, OriginManager integration,
and unregister protection.

Closes #131
2026-02-10 08:14:29 -06:00
77e5063b95 docs: deduplicate silo server content in favor of silo-server/ authority
Replace duplicated server setup, deployment, migrations, and config
sections in guide/silo.md, architecture/silo-server.md, and
reference/configuration.md with cross-references to the authoritative
docs/src/silo-server/ directory.

Fix dead link in COMPONENTS.md (mods/silo/docs/ → docs/src/silo-server/).
2026-02-10 08:07:21 -06:00
c9f6f9e02b docs(c++): FileOriginPython bridge — Python-to-C++ origin adapter
Document the FileOriginPython bridge: registration via
FreeCADGui.addOrigin()/removeOrigin(), method dispatch pattern with GIL
management, callStringMethod/callBoolMethod/callMethod helpers, document
argument marshalling (App::Document* <-> App.Document), enum mapping
tables for OriginType and ConnectionState, required vs optional Python
interface methods with defaults, error handling (never propagates Python
exceptions into C++), icon resolution via BitmapFactory, and lifetime/
ownership model between Py::Object, _instances vector, and
OriginManager unique_ptr.

Closes #135
2026-02-10 08:02:02 -06:00
633bef6b18 docs(c++): CommandOrigin commands (Commit/Pull/Push/Info/BOM)
Document the five origin commands: activation pattern (ownership lookup
via findOwningOrigin, capability gate check), command table with IDs,
shortcuts, icons and capability gates, eType flags for undo integration,
registration in CreateOriginCommands(), and the full dispatch call chain
from C++ through FileOriginPython bridge to Python SiloOrigin.

Closes #134
2026-02-10 07:59:45 -06:00
98218661d0 docs(c++): OriginManager singleton API reference
Document the OriginManager singleton: origin registration/unregistration
lifecycle, document-to-origin resolution algorithm (non-local checked
first, local as fallback), explicit vs detected ownership, preference
persistence, signal catalog, and memory model.

Closes #132
2026-02-10 07:55:46 -06:00
bdbe1b163a docs: add FileOrigin API reference and Kindred addon test suite
- Add docs/src/reference/cpp-file-origin.md: full API reference for the
  FileOrigin abstract interface, OriginType/ConnectionState enums,
  LocalFileOrigin behavior, and ownership detection algorithm
- Add SUMMARY.md entry under new 'C++ API Reference' section
- Add tests/test_kindred_pure.py: 78 pure-logic unit tests covering
  update_checker, datum_commands, spreadsheet_commands, silo_commands,
  silo_start, and silo_origin (no FreeCAD binary required)
- Add tests/run_kindred_tests.py: two-tier test runner with CI exit codes
- Add pixi task 'test-kindred' for running addon tests
- Add CI/CD step in build.yml to run addon tests before build

Closes #130
2026-02-10 07:54:26 -06:00