2.5 KiB
Native document actions
Implemented
Std_SaveAsandStd_SaveCopyuse the existing PartBox document-view envelope and nativesaveAs/saveCopyrather than sending a view schema to a Python-family worker. Their FCStd bytes are persisted to OPFS. Save Copy preserves the open native document identity and refuses the same OPFS filename, including path aliases.Std_SelectAllreuses the existing native document-object selection and propagates it to the mounted workbench.Std_Undoreuses the native transaction stack. Surviving selected objects now return complete identities including labels, as required by the facade. Scene refresh remains separate from the committed undo.Std_ToggleFreezecallsDocumentObject::freeze/unfreezedirectly on selected native objects, with per-document transactions and returned frozen states.Std_ToggleSkipRecomputereads and setsDocument::SkipRecomputethrough a real checkbox state. Read requests do not change the flag. Updating this flag does not clear the current selection.
The mounted document task now provides command-specific filename, save, selection, undo and freeze controls instead of the unrelated generic selection-preview panel. Prefixed command IDs are normalized at the task boundary.
Reused Sources
freecad-source/src/Gui/CommandDoc.cpp, CommandFeat.cpp, WebViewCommands.h, NativeDocumentView.h, the existing PartBox/DocumentProbe targets, document-view facade and OPFS storage are reused. No alternate geometry algorithms, fixture output or new WASM module were added.
Build and Delivery
PartBox and DocumentProbe were incrementally compiled/linked once for the combined native changes. Frontend build succeeded in 4.12 seconds. The formal six-command pipeline is implementation_ready:
| Pipeline step | Seconds |
|---|---|
| Module registry | 0.104 |
| Capability registry | 0.088 |
| Link preflight | 0.042 |
| Build handoff after compilation | 0.199 |
| Artifact sync | 4.423 |
| Completion bookkeeping | 1.063 |
| Pipeline total | 5.919 |
The 0.199-second build handoff is not the preceding native compilation duration. Receipt: document-actions-pipeline-20260915.json. No automatic business, regression or browser tests were run.
After this batch, the registry has 1411/1452 routed entries and 41 pending. This is implementation registration, not project-wide acceptance. Unimplemented links, GUI hosting and remaining BIM dependencies are still pending; do not close them by adding names to a route table.