fix: prevent QThread crash and Unknown command warnings on startup
Some checks failed
Build and Test / build (push) Has been cancelled
Some checks failed
Build and Test / build (push) Has been cancelled
InitGui.py: Store SiloAuthDockWidget reference on the QDockWidget to prevent Python from garbage-collecting it while its 30-second QTimer is still running. The lost reference caused 'QThread: Destroyed while thread is still running' followed by abort. ztools InitGui.py: Move addWorkbenchManipulator() call from module-level into Initialize(), after command modules are imported. The manipulator references ZTools_DatumCreator, ZTools_DatumManager, ZTools_EnhancedPocket, and ZTools_RotatedLinearPattern, which don't exist until the imports run. Also updates README.md and submodule pointers.
This commit is contained in:
83
README.md
83
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)
|
||||
@@ -194,7 +236,13 @@ Configure the FreeCAD workbench with environment variables:
|
||||
```
|
||||
kindred-create/
|
||||
├── src/ # FreeCAD core source
|
||||
├── Mod/ # FreeCAD modules
|
||||
│ ├── 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
|
||||
@@ -202,13 +250,20 @@ kindred-create/
|
||||
│ │ │ └── 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
|
||||
│ ├── 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`
|
||||
|
||||
Submodule mods/silo updated: 17a10ab1b6...3a67d2082b
Submodule mods/ztools updated: 9dde3ad67b...d2f94c3d78
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user