mirror of
https://github.com/storytold/cadcraft.git
synced 2026-10-14 14:26:45 -04:00
Copying in one drawing and pasting in another lost what the objects refer to: a line on a layer the target lacked landed on a new default layer (colour and linetype gone), and a block reference pointed at a block the target didn't have. Cmd/Ctrl+C, X and V did nothing on the desktop, because egui delivers them as clipboard events, not key presses. PASTEORIG had no checks, and the canvas had no right-click menu. - Engine (cmd/clipboard.rs): the session clipboard keeps, with the copied objects, the layers, linetypes, text/dimension/multileader/ table styles and blocks (nested too) they use. Pasting adds the ones the target lacks; names it has keep the target's definitions, as in AutoCAD; generated (*U, *D) blocks whose name is taken get a fresh one; objects get new handles. - PASTEORIG pastes at the original coordinates, only into a drawing other than the one copied from (greyed and refused there, as in AutoCAD). PASTECLIP and PASTEBLOCK are greyed with an empty clipboard. - PASTEBLOCK (Edit > Paste as Block, Cmd+Shift+V): the clipboard becomes an A$C… block inserted at a point. AI_DESELECT. - UI: Cut/Copy/Paste events run the clipboard commands (Shift: Copy with Base Point / Paste as Block). Each copy is also put on the system clipboard as DXF text, and pasted DXF text that isn't our own last copy becomes the clipboard, so another CADCraft window can paste it. - Right-click on the canvas with no command running opens a shortcut menu: Repeat <last>, Clipboard (Cut, Copy, Copy with Base Point, Paste, Paste as Block, Paste to Original Coordinates), the selection's editing commands and Deselect All, Undo/Redo, Pan/Zoom, Quick Select, Find. During a command it is still Enter. - Ukrainian labels for the new items. Co-authored-by: Claude Opus 5.5 <[email protected]>