docs: write CORE.md — src/App, src/Base, src/Gui inherited and modified code #90

Closed
opened 2026-02-09 13:45:22 +00:00 by forbes · 1 comment
Owner

Tier 2 — Component Guide

File: docs/CORE.md

What this document should cover

  1. src/App/ — Core application layer (~169 files, C++)

    • Application.cpp/h — main application class
    • Document.cpp/h — document management
    • DocumentObject.cpp/h — base object hierarchy
    • Branding.cpp/h — Kindred Create branding (custom addition)
    • Datums.cpp/h — datum objects
    • ApplicationDirectories.cpp/h — path management
    • What's stock FreeCAD vs what has Kindred modifications
  2. src/Base/ — Foundation classes (C++)

    • BaseClass, Console, Builder3D, BoundBox
    • Geometry utilities: DualQuaternion, CoordinateSystem, Axis
    • Color.cpp/h — color management
    • Essentially stock FreeCAD — note any Kindred patches
  3. src/Gui/ — GUI framework (~133,570 lines, C++ + Qt6)

    • Stock FreeCAD subsystems: Command framework, TreeView, MainWindow, MDIView, Property editor, Selection, Navigation, DAGView, 3Dconnexion, Quarter (Coin3D)
    • Kindred additions — Origin system:
      • FileOrigin.cpp/h — abstract file origin interface
      • FileOriginPython.cpp/h — Python bindings for addon origins
      • OriginManager.cpp/h — origin lifecycle management
      • OriginManagerDialog.cpp/h — management dialog
      • OriginSelectorWidget.cpp/h — File toolbar dropdown
      • CommandOrigin.cpp — Commit/Pull/Push/Info/BOM commands
      • AxisOrigin.cpp/h — axis origin implementation
    • Kindred additions — Theme:
      • Stylesheets/KindredCreate.qss — Catppuccin Mocha dark theme
      • PreferencePacks/KindredCreate/ — preference pack
      • Icons/ — 5 silo-*.svg icons in resource.qrc
    • Kindred additions — Relocation:
      • TaskDlgRelocation.h — relocation task panel
  4. How to identify Kindred patches — approach for auditing which files diverge from upstream FreeCAD

Key source files

  • src/Gui/FileOrigin.h — the central abstraction Kindred adds to FreeCAD GUI
  • src/Gui/resource.qrc — Qt resource registration
  • src/App/Branding.cpp — branding constants

Acceptance criteria

  • Clear separation between "inherited from FreeCAD" and "added/modified by Kindred"
  • Origin system classes are documented with their roles
  • A developer knows where to look when modifying core behavior
## Tier 2 — Component Guide **File:** `docs/CORE.md` ### What this document should cover 1. **`src/App/` — Core application layer** (~169 files, C++) - `Application.cpp/h` — main application class - `Document.cpp/h` — document management - `DocumentObject.cpp/h` — base object hierarchy - `Branding.cpp/h` — Kindred Create branding (custom addition) - `Datums.cpp/h` — datum objects - `ApplicationDirectories.cpp/h` — path management - What's stock FreeCAD vs what has Kindred modifications 2. **`src/Base/` — Foundation classes** (C++) - `BaseClass`, `Console`, `Builder3D`, `BoundBox` - Geometry utilities: `DualQuaternion`, `CoordinateSystem`, `Axis` - `Color.cpp/h` — color management - Essentially stock FreeCAD — note any Kindred patches 3. **`src/Gui/` — GUI framework** (~133,570 lines, C++ + Qt6) - **Stock FreeCAD subsystems:** Command framework, TreeView, MainWindow, MDIView, Property editor, Selection, Navigation, DAGView, 3Dconnexion, Quarter (Coin3D) - **Kindred additions — Origin system:** - `FileOrigin.cpp/h` — abstract file origin interface - `FileOriginPython.cpp/h` — Python bindings for addon origins - `OriginManager.cpp/h` — origin lifecycle management - `OriginManagerDialog.cpp/h` — management dialog - `OriginSelectorWidget.cpp/h` — File toolbar dropdown - `CommandOrigin.cpp` — Commit/Pull/Push/Info/BOM commands - `AxisOrigin.cpp/h` — axis origin implementation - **Kindred additions — Theme:** - `Stylesheets/KindredCreate.qss` — Catppuccin Mocha dark theme - `PreferencePacks/KindredCreate/` — preference pack - `Icons/` — 5 silo-*.svg icons in `resource.qrc` - **Kindred additions — Relocation:** - `TaskDlgRelocation.h` — relocation task panel 4. **How to identify Kindred patches** — approach for auditing which files diverge from upstream FreeCAD ### Key source files - `src/Gui/FileOrigin.h` — the central abstraction Kindred adds to FreeCAD GUI - `src/Gui/resource.qrc` — Qt resource registration - `src/App/Branding.cpp` — branding constants ### Acceptance criteria - [ ] Clear separation between "inherited from FreeCAD" and "added/modified by Kindred" - [ ] Origin system classes are documented with their roles - [ ] A developer knows where to look when modifying core behavior
forbes added the documentation label 2026-02-09 13:45:22 +00:00
Author
Owner

Superseded by the mdBook documentation structure set up in PR #105. The content scope of this issue is now covered by the pages in docs/src/. Remaining content work is tracked in #104.

Superseded by the mdBook documentation structure set up in PR #105. The content scope of this issue is now covered by the pages in `docs/src/`. Remaining content work is tracked in #104.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#90