vectorcraft/crates/engine/src
HT f2b35fc039 Fix #602: Scale Artwork with Artboard scales the art with a resized artboard
`artboard.setProps {scaleArt: true}` maps the art fully inside a resized
artboard (as Move Artwork with Artboard gathers it) and its artboard guides
from the old rectangle onto the new one, each side by its own ratio, in one
undo step, and returns the ids scaled. Strokes, effects and corners follow
Scale Strokes & Effects and Scale Corners (`strokes`, `corners`), pattern tiles
Transform Pattern Tiles (`patterns`); locked and hidden art follows
`lockedAndHidden` (default: prefs moveLockedWithArtboard). The resolved choices
are journaled, so a replay scales the same objects the same way. A move that
keeps the size scales nothing.

The Artboard tool's `scaleArt` option (saved with `moveArt`) makes handle
drags proportional, as the public help describes, keeps them proportional at
the 1 pt minimum, and leaves the scaled art out of the Smart Guide targets.
Move and Scale Artwork with Artboard are check boxes in the Control bar and
Properties' Edit Artboards; the artboard size fields there and in the
Transform panel pass the option. Translated in the eight catalogs that have
Move Artwork with Artboard. docs/mcp.md and the ROADMAP updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:50:35 +01:00
..
cmd Fix #602: Scale Artwork with Artboard scales the art with a resized artboard 2026-10-09 11:50:35 +01:00
guard.rs Robustness: VectorCraft never crashes — no panics in shipped code 2026-10-05 06:28:59 +07:00
inspect.rs M7: area type auto size and shrink text to fit 2026-10-08 14:48:25 -07:00
lib.rs Read Illustrator EPS and .ai layers from their editing data 2026-10-09 03:49:49 -04:00
tests.rs M2.9: add editable Shaper groups and shape orientation steps 2026-10-08 22:52:23 +01:00
tests_adjust.rs Fix #122: colour adjustment live effects (Effect > Color Adjustments) 2026-10-06 00:42:26 +07:00
tests_appearance.rs M3.46: three-state knockout groups (on, neutral, off) render, export and edit 2026-10-04 23:04:20 +07:00
tests_areafit.rs M7: area type auto size and shrink text to fit 2026-10-08 14:48:25 -07:00
tests_assets.rs M4.65: Asset Export panel and the Assets tab of Export for Screens 2026-10-05 15:24:54 +07:00
tests_attributes.rs Fix #522: SVG round trips keep hidden objects and data-* attributes 2026-10-09 03:36:08 +07:00
tests_bboxrotate.rs Fix #712: the bounding box hides while a drag moves, scales or rotates 2026-10-09 17:39:12 +07:00
tests_blendfidelity.rs M8.20: blends interpolate strokes, gradients, groups, type and symbols faithfully 2026-10-06 12:01:28 +07:00
tests_blendopts.rs M8.18: Blend Options dialog and the Blend tool's anchor targeting 2026-10-06 11:01:18 +07:00
tests_blendspine.rs M8.19: blend spine and keys editable on the canvas 2026-10-06 11:12:58 +07:00
tests_brushsym.rs Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00
tests_build.rs Image Trace: Flat Logo mode (sub-pixel edges, restored corners, true lines and circles) 2026-10-09 17:57:04 +11:00
tests_charstroke.rs M3.40: stroke on type — the Stroke panel edits the characters' stroke 2026-10-05 01:09:55 +07:00
tests_clip.rs M3.75: layer clipping masks from the Layers panel button 2026-10-05 00:27:31 +07:00
tests_clipboard.rs Fix #693: a click activates its artboard; in-place pastes go onto it 2026-10-09 13:32:44 +07:00
tests_clipflavours.rs Fix #398: Linux/Wayland bitmap paste, copied files paste as art 2026-10-08 07:44:23 +07:00
tests_clippaint.rs M3.89: a clipping path's fill paints behind the clipped art, its stroke over it 2026-10-05 03:11:04 +07:00
tests_cmdsplit.rs M3.8: register the split paint modules next to paint so the command palette keeps listing them (Stroke Options for "stroke") 2026-10-04 11:32:11 +07:00
tests_cmykflatten.rs M3.90: blend modes and opacity composite inks in CMYK documents 2026-10-05 04:30:06 +07:00
tests_colorguide.rs M3.53: Color Guide has 21 harmony rules, Steps and Variation options, a fixed base colour and Save Colors as Swatches 2026-10-05 00:13:36 +07:00
tests_colorguidelib.rs M3.95: Color Guide Limit to Library and Edit or Apply Colors without art 2026-10-05 05:08:15 +07:00
tests_colormgmt.rs M4.31: Save PDF dialog and document.exportPdf with PDF settings 2026-10-05 07:22:27 +07:00
tests_colorthemes.rs M3.96: Color Themes panel with a local theme library 2026-10-05 05:08:28 +07:00
tests_containers.rs M14.4: tests main gained follow the no-panic lint rules 2026-10-05 06:40:34 +07:00
tests_css.rs M4.96: Window › CSS Properties shows, copies and exports the CSS of the selection 2026-10-05 16:03:11 +07:00
tests_cut.rs Fix #122: Mirror & Cut, Line Cut and Rectangle Cut tools 2026-10-06 00:42:26 +07:00
tests_dashalign.rs M3.38: dashes fitted to corners and path ends, a flag of their own that keeps the offset 2026-10-04 23:37:58 +07:00
tests_distort.rs Perspective grid: coming back from a temporary tool keeps a hidden grid hidden (review of #333) 2026-10-08 03:27:36 +07:00
tests_docsetup.rs M4.20: Document Setup with bleed, transparency grid, paper and type options 2026-10-05 08:28:16 +07:00
tests_draw2.rs Fix #504: Convert corner/smooth for a path selected as a whole with the anchor tools 2026-10-08 22:03:17 +07:00
tests_editcolors.rs M4.63: Links panel with status, Relink, Go To, Update, Edit Original, Embed/Unembed, Link Info and Placement Options 2026-10-05 12:40:05 +07:00
tests_effectedit.rs M3.42: Appearance editing depth — drag effect rows to reorder them or move them into/out of fills and strokes (Alt copies), click an effect name to edit it in its prefilled dialog, choosing an applied effect asks to edit it or add another, Show All Hidden Attributes, multi-select and Alt-drag duplicate of fills/strokes, drag the thumbnail onto art to copy the appearance, stroke rows note brush/Dashed/profile, Shift-click a chip for the mixer, Properties fx opens the effect menu 2026-10-04 23:01:34 +07:00
tests_emptytype.rs Part of #394: Preferences for snapping, handles, rubber bands, pattern tiles, tints and type 2026-10-08 09:43:12 +07:00
tests_envelope.rs clippy: a byte string for the envelope test's newline (byte_char_slices, red on main with Rust 1.99) 2026-10-06 07:09:35 -04:00
tests_envelope_distort.rs M8.16: Envelopes bend images, symbols, gradients, patterns and appearance; warps keep their frame 2026-10-06 12:01:47 +07:00
tests_envelope_edit.rs M8.17: Edit envelopes on the canvas: Edit Contents, mesh points and handles, Control bar 2026-10-06 12:16:59 +07:00
tests_expand.rs M14.4: as_chunks for the pixel loops main gained since the no-panics branch 2026-10-05 06:40:34 +07:00
tests_eyedropper.rs Type: Hebrew and Arabic text laid out right to left (bidi), aligned by its direction 2026-10-08 05:24:44 +07:00
tests_file.rs Tests: Japanese file and folder names save, open, export and title documents 2026-10-07 13:20:07 +07:00
tests_fileinfo.rs M4.55: File Info with author, description, keyword chips, rating and copyright, written to SVG, PDF and PNG 2026-10-05 09:55:47 +07:00
tests_flatpresets.rs M3.93: Edit > Transparency Flattener Presets… manages built-in and saved flattener presets 2026-10-05 02:36:28 +07:00
tests_flatpreview.rs M3.94: Window > Flattener Preview shows what flattening would rasterize, outline and change 2026-10-05 02:36:43 +07:00
tests_flatten.rs M14.4: as_chunks for the pixel loops main gained since the no-panics branch 2026-10-05 06:40:34 +07:00
tests_focal.rs M14.4: tests main gained follow the no-panic lint rules 2026-10-05 06:40:34 +07:00
tests_fontlist.rs Fonts: the font menus leave out macOS's hidden "." families 2026-10-06 15:33:21 -04:00
tests_freeform.rs M3.97: freeform points drag out to delete, spread ring drags, Lines mode draws lines 2026-10-05 04:43:43 +07:00
tests_gradient.rs M3.98: radial annotator extent ellipse, aspect handle and off-centre focal point 2026-10-05 04:43:43 +07:00
tests_gradpanel.rs M3.52: Eyedropper Options with Picks Up / Applies trees, Alt and Shift+Alt modes, image sampling 2026-10-05 02:08:10 +07:00
tests_halftone.rs Fix #122: Object > Vector Halftone 2026-10-06 00:42:26 +07:00
tests_inline.rs M7: inline symbols in text 2026-10-08 15:45:34 -07:00
tests_journal.rs Fix #400: Scrub numeric fields by dragging their label 2026-10-08 11:33:57 +07:00
tests_knockout.rs M4.31: Save PDF dialog and document.exportPdf with PDF settings 2026-10-05 07:22:27 +07:00
tests_labspots.rs M4.31: Save PDF dialog and document.exportPdf with PDF settings 2026-10-05 07:22:27 +07:00
tests_layerclip.rs Layers: sublayers are layers, not objects, and every row has a command 2026-10-07 22:29:15 +07:00
tests_layers.rs Layers: keep clippy happy (menu item type, no unreachable in tests) 2026-10-07 23:06:31 +07:00
tests_linked_stops.rs M4.31: Save PDF dialog and document.exportPdf with PDF settings 2026-10-05 07:22:27 +07:00
tests_links.rs Placed documents: File › Place links a VectorCraft document by default; output reads its file 2026-10-08 12:20:51 -07:00
tests_linkspanel.rs M4.63: Links panel with status, Relink, Go To, Update, Edit Original, Embed/Unembed, Link Info and Placement Options 2026-10-05 12:40:05 +07:00
tests_liquify.rs M8.4: Liquify keeps going while held, leaves non-paths alone, strokes apply incrementally 2026-10-06 12:00:52 +07:00
tests_live.rs Type Object Selection by Path Only: every baseline, Type tool and Eyedropper (review of #475) 2026-10-08 18:59:47 +07:00
tests_livecorners.rs Fix #511: Live Corners on any path's corners (stars, polygons, pen paths) 2026-10-08 23:05:41 +07:00
tests_maskview.rs M3.86: Alt-click the mask thumbnail to view only the mask 2026-10-05 03:11:04 +07:00
tests_menucmds.rs Crop Image: trim an image to its pixels that aren't fully transparent 2026-10-09 17:24:04 +13:00
tests_nativefile.rs M4.35: native files compress, save atomically, drop unused images, keep newer keys and save down to v1 2026-10-05 12:27:02 +07:00
tests_newart.rs M3.65: new-art appearance template (stroke options and graphic styles with nothing selected, New Art Has Basic Appearance) 2026-10-05 04:38:09 +07:00
tests_newdoc.rs Fix #681: Rearrange All Artboards layouts, order and one-click access 2026-10-09 12:22:48 +07:00
tests_objexpand.rs M14.4: as_chunks for the pixel loops main gained since the no-panics branch 2026-10-05 06:40:34 +07:00
tests_opacitymask.rs M3.48: Page Isolated Blending and Page Knockout Group 2026-10-04 23:10:06 +07:00
tests_outlinestroke.rs M3.38: dashes fitted to corners and path ends, a flag of their own that keeps the offset 2026-10-04 23:37:58 +07:00
tests_overprint.rs M3.50: Overprint Black dialog with fill/stroke, rich and spot black options 2026-10-05 00:01:02 +07:00
tests_package.rs M4.64: File > Package collects the document, its linked files and fonts with a report; Document Info categories and Save 2026-10-05 12:40:05 +07:00
tests_paintproxy.rs M3.51: Fill/Stroke chips open swatch and mixer popovers; panel shortcuts; Recolor quick action 2026-10-05 02:05:33 +07:00
tests_panelcmds.rs M7: Every-line Composer for ragged text 2026-10-08 14:03:33 -07:00
tests_paragraphs.rs M7: per-paragraph paragraph attributes 2026-10-08 15:07:13 -07:00
tests_pathops.rs Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00
tests_pathtype.rs Fix #429: Type on a path brackets, flip and Type on a Path Options that keep the type in place 2026-10-08 12:50:25 +07:00
tests_pattern.rs Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00
tests_pdffidelity.rs M4.59: pattern strokes and freeform gradients keep their look in PDF 2026-10-05 11:52:35 +07:00
tests_pdfmarks.rs M4.72: PDF export draws printer's marks in Registration around each page 2026-10-05 13:05:20 +07:00
tests_pdfpresets.rs M4.86: PDF page thumbnails and fast web view (linearised files) 2026-10-05 18:05:36 +07:00
tests_pdfraster.rs M4.63: Links panel with status, Relink, Go To, Update, Edit Original, Embed/Unembed, Link Info and Placement Options 2026-10-05 12:40:05 +07:00
tests_persp_planes.rs M8.13: Perspective planes move along their normals with widgets, alone, with or copying their objects 2026-10-06 11:44:11 +07:00
tests_persp_select.rs M8.10: Perspective grid view options: Lock Grid, Lock Station Point, Snap to Grid, Show Rulers 2026-10-06 11:49:19 +07:00
tests_persp_text.rs M8.14: Type and symbols in perspective are really projected and stay editable; attachments survive copies 2026-10-06 12:10:00 +07:00
tests_perspgrid.rs Fix #321: the perspective grid hides while a perspective tool is chosen 2026-10-08 03:27:36 +07:00
tests_place.rs M4.54: Placing a text file asks for Text Import Options and sets it as area type 2026-10-05 10:07:23 +07:00
tests_placed_document.rs Placed documents: Links commands check, update, relink and break their links 2026-10-08 12:20:51 -07:00
tests_plugins.rs Fix #121: sandboxed WebAssembly plug-ins: object filters and live effects 2026-10-06 00:19:41 +07:00
tests_prefs.rs Part of #394: Smart Guides › Spacing Guides space a moved selection evenly 2026-10-09 11:22:22 +07:00
tests_previewbounds.rs M3.67: Use Preview Bounds measures strokes in transforms, the bounding box and Align 2026-10-05 03:59:37 +07:00
tests_print.rs M4.75: File → Print writes the job as a print-ready PDF: paper, scale, tiles, marks and bleed, separations 2026-10-05 15:13:10 +07:00
tests_printadvanced.rs M4.81: Print advanced options: overprints, flattener, printer profile, bitmap 2026-10-05 17:27:00 +07:00
tests_printpresets.rs M4.79: print presets in the Print dialog and Edit > Print Presets 2026-10-05 16:30:46 +07:00
tests_printpreview.rs M4.78: File > Print opens the Print dialog and prints through the system 2026-10-05 16:30:35 +07:00
tests_printps.rs M4.92: Print to a PostScript file 2026-10-05 17:01:36 +07:00
tests_printtiling.rs M4.80: Print Tiling tool and View > Show Print Tiling 2026-10-05 17:26:59 +07:00
tests_proxyitems.rs M3.51: Fill/Stroke chips open swatch and mixer popovers; panel shortcuts; Recolor quick action 2026-10-05 02:05:33 +07:00
tests_puppetwarp.rs M8.6: Puppet Warp pins appear at once, warp from the rest shape and follow Undo 2026-10-06 11:16:10 +07:00
tests_rasterfilters.rs Part of ROADMAP gap 2: Radial Blur, Smart Blur and Unsharp Mask on a pixel-filter pipeline 2026-10-09 13:30:31 +07:00
tests_rastersettings.rs M4.56: Document Raster Effects Settings with colour model, background, anti-alias, clipping mask and room around 2026-10-05 09:55:48 +07:00
tests_recolor.rs M3.79: Edit or Apply Color Group opens Recolor Artwork on a colour group 2026-10-05 04:20:27 +07:00
tests_recovery.rs EPS import: bound what hostile editing data can cost, and say when it can't be read 2026-10-09 03:49:49 -04:00
tests_registration.rs M4.31: Save PDF dialog and document.exportPdf with PDF settings 2026-10-05 07:22:27 +07:00
tests_save.rs Fix #638: Layers panel lays out only the rows in view and keeps open rows in the file 2026-10-09 08:19:49 +07:00
tests_saveoptions.rs M4.38: native and .ai save options: each artboard to its own file, linked files, ICC profiles, PDF content 2026-10-05 15:24:19 +07:00
tests_scalestrokes.rs Fix #291: live corners stay circular when a rectangle is scaled unevenly 2026-10-07 20:25:41 +07:00
tests_shaper.rs M2.9: add editable Shaper groups and shape orientation steps 2026-10-08 22:52:23 +01:00
tests_slices.rs M4.89: Slice and Slice Selection tools draw, pick, move, resize and delete slices 2026-10-05 12:52:15 +07:00
tests_smartguides.rs Fix #506: drawing tools snap to Smart Guides as the Selection tool does 2026-10-08 23:20:27 +07:00
tests_strokegeom.rs M3.20: visual bounds cover arrowheads so overhanging heads are not culled; one arrowhead-weight helper 2026-10-04 17:40:41 +07:00
tests_strokegradient.rs M4.31: Save PDF dialog and document.exportPdf with PDF settings 2026-10-05 07:22:27 +07:00
tests_strokereach.rs M3.63: visual bounds and clicks take in the whole stroke 2026-10-05 02:55:23 +07:00
tests_strokeux.rs Stroke: per-unit weight presets so mm/cm/in dropdowns show clean numbers 2026-10-08 12:26:47 +07:00
tests_stylelib.rs M14.4: as_chunks for the pixel loops main gained since the no-panics branch 2026-10-05 06:40:34 +07:00
tests_stylepanel.rs M14.4: tests main gained follow the no-panic lint rules 2026-10-05 06:40:34 +07:00
tests_styles.rs M3.68: groups, layers and type have their own fills, strokes and effects, with Contents and Characters rows 2026-10-05 00:59:34 +07:00
tests_swatchcmds.rs M3.59: tints of global and spot colours, tint swatches and Global colour balance 2026-10-05 02:29:17 +07:00
tests_swatches.rs M4.31: Save PDF dialog and document.exportPdf with PDF settings 2026-10-05 07:22:27 +07:00
tests_swatchlib.rs Swatches: swatch exchange (.ase) files open as swatch libraries 2026-10-08 15:18:57 -07:00
tests_targeting.rs M3.69: target circles target layers, groups and objects; drag them to move appearances 2026-10-05 02:15:41 +07:00
tests_textcombos.rs M7: tests for the text engine features combined 2026-10-08 20:30:14 -07:00
tests_textedit.rs Part of #394: Preferences for snapping, handles, rubber bands, pattern tiles, tints and type 2026-10-08 09:43:12 +07:00
tests_textimport.rs AF.3: native Affinity import with artboards, vectors, text and images 2026-10-08 17:58:11 +00:00
tests_tileedge.rs M3.72: Tile Edge Color dialog and Show Swatch Bounds in pattern editing 2026-10-05 01:50:25 +07:00
tests_tints.rs M4.31: Save PDF dialog and document.exportPdf with PDF settings 2026-10-05 07:22:27 +07:00
tests_toolsettings.rs M8.2: tool options last across tool switches and launches 2026-10-06 09:23:44 +07:00
tests_transparencygrid.rs M3.88: Show Transparency Grid is per-document engine view state 2026-10-05 03:11:04 +07:00
tests_typearea.rs M7: area type vertical alignment 2026-10-08 14:28:02 -07:00
tests_units.rs M14.5: Preferences > Units drive every length the UI shows and reads 2026-10-05 07:43:41 +07:00
tests_webexport.rs M4.90: Save for Web (Legacy) previews and saves optimised GIF, JPEG, PNG-8 and PNG-24 images, slices and HTML 2026-10-05 15:24:51 +07:00
tests_widthpoints.rs M3.64: Width tool depth: Width Point Edit, multi-select, Alt-copy and discontinuous points 2026-10-05 04:38:09 +07:00
tests_widthprofiles.rs M3.61: width profile library: Add to Profiles, Delete Profile, Reset Profiles 2026-10-05 02:55:21 +07:00
tests_widthtool.rs M8.7: Width tool edits compound-path strokes, shows every subpath's points, own cursors 2026-10-06 12:01:10 +07:00
tests_xform.rs Fix #602: Scale Artwork with Artboard scales the art with a resized artboard 2026-10-09 11:50:35 +01:00
tooling.rs Fix #712: the bounding box hides while a drag moves, scales or rotates 2026-10-09 17:39:12 +07:00
units.rs M14.5: Preferences > Units drive every length the UI shows and reads 2026-10-05 07:43:41 +07:00