diff --git a/README.md b/README.md index ee2fc2d5f4..631fa61bb5 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,8 @@ Kindred Create is a fork of FreeCAD 1.0+ that integrates custom workbenches and **Key additions over base FreeCAD:** - **ztools Workbench** - Unified interface consolidating part design, assembly, and drawing tools with custom engineering features -- **Silo Integration** - Parts database system for tracking, versioning, and managing CAD files across teams -- **Catppuccin Mocha Theme** - Dark theme optimized for extended work sessions +- **Silo Integration** - Parts database system for tracking, versioning, and managing CAD files across teams, with an interactive browsing panel for searching, opening, and inspecting parts directly from the dock +- **Catppuccin Mocha Theme** - Dark theme with spanning tree branch indicators, optimized for extended work sessions Kindred Create is maintained by [Kindred Systems LLC](https://www.kindred-systems.com). @@ -112,6 +112,7 @@ Silo is a parts database system designed for managing CAD files, part numbers, a - Open, save, and commit files directly to Silo - Pull latest revisions and push changes - View item metadata and revision history +- **Database Activity Panel** - Interactive dock panel for browsing, searching, and opening parts without leaving the 3D viewport. Includes search filtering, type filtering (part/assembly), a details pane showing metadata (part number, description, type, revision, projects), and direct open/info actions. Silo documentation is available in the `mods/silo/` directory. @@ -126,6 +127,7 @@ A comprehensive dark theme using the [Catppuccin Mocha](https://github.com/catpp - Spreadsheet backgrounds and text - Property editor and tree view - All dialog and widget styling +- Tree view branch indicators using spanning lines (`├`, `└`, `│`) instead of disclosure arrows The theme is automatically applied when using Kindred Create. @@ -135,7 +137,7 @@ The theme is automatically applied when using Kindred Create. ### Prebuilt Binaries -Prebuilt packages for Linux are available on the [releases page](https://github.com/anthropics/create-0070/releases). +Prebuilt packages for Linux are available on the [releases page](https://git.kindred-systems.com/kindred/create/releases). #### Debian/Ubuntu (.deb) @@ -152,11 +154,51 @@ Or install directly with apt: sudo apt install ./kindred-create_*.deb ``` +#### AppImage + +Download the `.AppImage` file from the releases page, make it executable, and run: + +```bash +chmod +x KindredCreate-*.AppImage +./KindredCreate-*.AppImage +``` + After installation, launch Kindred Create from your application menu or run `kindred-create` from the terminal. ### Building from Source -Kindred Create uses the same build system as FreeCAD. Build instructions for each platform: +Kindred Create uses [pixi](https://pixi.sh) for dependency management and CMake for building. Pixi handles all build dependencies automatically via conda packages. + +#### Prerequisites + +- [pixi](https://pixi.sh) (conda-based package manager) +- Git with submodule support + +#### Build Steps + +```bash +git clone --recursive ssh://git@git.kindred-systems.com:2222/kindred/create.git +cd create +pixi run configure +pixi run build +pixi run install +``` + +To launch the built application: + +```bash +pixi run freecad +``` + +#### Platform Support + +CMake presets are available for: + +- **Linux** (x86-64, aarch64) - Clang compiler +- **macOS** (Intel, Apple Silicon) - Clang compiler +- **Windows** - MSVC compiler + +See `CMakePresets.json` for platform-specific configuration. For general FreeCAD build guidance: - [Linux](https://wiki.freecad.org/Compile_on_Linux) - [Windows](https://wiki.freecad.org/Compile_on_Windows) @@ -193,22 +235,35 @@ Configure the FreeCAD workbench with environment variables: ``` kindred-create/ -├── src/ # FreeCAD core source -├── Mod/ # FreeCAD modules -├── mods/ # Kindred Create addon modules (git submodules) -│ ├── ztools/ # ztools workbench -│ │ ├── ztools/ # Workbench package -│ │ │ ├── InitGui.py # Workbench registration -│ │ │ └── ztools/ # Commands and resources -│ │ └── CatppuccinMocha/ # Theme preference pack -│ └── silo/ # Silo parts database -│ ├── cmd/ # Go entry points -│ ├── internal/ # Go packages -│ ├── pkg/freecad/ # FreeCAD workbench -│ └── deployments/ # Docker configuration -└── resources/ # Branding and preferences - ├── branding/ # Splash screens and logos - └── preferences/ # Default preference packs +├── src/ # FreeCAD core source +│ ├── App/ # Core application logic +│ ├── Base/ # Base classes and utilities +│ ├── Gui/ # GUI framework +│ │ └── Stylesheets/ # Theme stylesheets and assets +│ ├── Mod/ # FreeCAD modules (PartDesign, Assembly, Sketcher, etc.) +│ │ └── Create/ # Kindred Create module (loads addon workbenches) +│ └── 3rdParty/ # Vendored dependencies (OndselSolver, GSL) +├── mods/ # Kindred Create addon modules (git submodules) +│ ├── ztools/ # ztools workbench +│ │ ├── ztools/ # Workbench package +│ │ │ ├── InitGui.py # Workbench registration +│ │ │ └── ztools/ # Commands and resources +│ │ └── CatppuccinMocha/ # Theme preference pack +│ └── silo/ # Silo parts database +│ ├── cmd/ # Go server entry points +│ ├── internal/ # Go API, database, storage packages +│ ├── pkg/freecad/ # FreeCAD workbench (Python) +│ ├── deployments/ # Docker configuration +│ └── migrations/ # PostgreSQL migrations +├── resources/ # Branding and preferences +│ ├── branding/ # Splash screens and logos +│ ├── preferences/ # Default preference packs +│ └── icons/ # Application icons (16x16 to 512x512) +├── package/ # Packaging (debian, AppImage) +├── .gitea/workflows/ # CI/CD workflows (build, release) +├── CMakeLists.txt # Root CMake configuration +├── CMakePresets.json # Platform-specific CMake presets +└── pixi.toml # Pixi environment and dependency definition ``` The `mods/ztools` and `mods/silo` directories are git submodules. After cloning, initialize them with: @@ -221,7 +276,9 @@ git submodule update --init --recursive ## Reporting Issues -When reporting issues: +Report issues at [git.kindred-systems.com/kindred/create/issues](https://git.kindred-systems.com/kindred/create/issues). + +When reporting: 1. Specify whether the issue is with Kindred Create additions (ztools, Silo, theme) or base FreeCAD functionality 2. Include version info from `Help > About FreeCAD > Copy to clipboard` diff --git a/mods/silo b/mods/silo index 17a10ab1b6..3a67d2082b 160000 --- a/mods/silo +++ b/mods/silo @@ -1 +1 @@ -Subproject commit 17a10ab1b68d13227d2b90e92163353f68e7fdc1 +Subproject commit 3a67d2082b93173195e073ffc974c22e3db6a370 diff --git a/mods/ztools b/mods/ztools index 9dde3ad67b..d2f94c3d78 160000 --- a/mods/ztools +++ b/mods/ztools @@ -1 +1 @@ -Subproject commit 9dde3ad67bab82bafff8cb34ea74b4ffde2cbd6a +Subproject commit d2f94c3d78976aa63882f5e7e25eca8177302b74 diff --git a/src/Mod/Create/InitGui.py b/src/Mod/Create/InitGui.py index c9d0016c6b..f22b18f52f 100644 --- a/src/Mod/Create/InitGui.py +++ b/src/Mod/Create/InitGui.py @@ -115,6 +115,8 @@ def _setup_silo_auth_panel(): panel = QtWidgets.QDockWidget("Database Auth", mw) panel.setObjectName("SiloDatabaseAuth") panel.setWidget(auth.widget) + # Keep the auth object alive so its QTimer isn't destroyed while running + panel._auth = auth mw.addDockWidget(QtCore.Qt.RightDockWidgetArea, panel) except Exception as e: FreeCAD.Console.PrintLog(f"Create: Silo auth panel skipped: {e}\n")