Mixed origin workflows (Save To...) #17
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Overview
Enable workflows where users work with documents across different origins. This includes migrating local documents to Silo, copying Silo documents to new part numbers, and saving Silo documents locally for offline use or sharing.
Key Insight: Since all documents live locally, "mixed origin" is really about:
Parent Issue
Epic: #8 Unified File Origin System
Goals
Detailed Design
Save As Behavior Matrix
Migration Workflow: Local → Silo
User has a local document and wants to start tracking it in Silo:
Implementation:
Copy Workflow: Silo → Silo (Same Instance)
User wants to create a variant or copy of an existing Silo document:
Implementation:
Export Workflow: Silo → Local
User wants to save a copy without Silo tracking (for sharing, offline, etc.):
Implementation:
Save As Command Logic
Implementation Tasks
SiloOrigin._migrate_to_silo()SiloOrigin._copy_silo_document()ExportDialogfor Silo → Local workflowLocalFileOrigin.saveDocumentAs()for export handlingStdCmdSaveAsto detect cross-origin scenariosPartCreationDialog(reuse from Silo_New)Files to Create/Modify
mods/silo/pkg/freecad/silo_origin.py(migration, copy methods)mods/silo/pkg/freecad/dialogs.py(PartCreationDialog, ExportDialog)src/Gui/CommandDoc.cpp(SaveAs cross-origin logic)src/Gui/LocalFileOrigin.cpp(export handling)Acceptance Criteria
Dependencies
Blocking
None - this completes Phase 3
Complete. Closing with code references:
src/Gui/CommandDoc.cpp:780-804—Std_SaveAsdetects cross-origin scenarios:saveDocumentAsInteractive()src/Gui/FileOrigin.h—saveDocumentAsInteractive()virtual method for origin-specific dialogs