github storytold/vectorcraft v0.18.0
VectorCraft v0.18.0

3 hours ago

What's Changed

  • Reject exponent notation in the pica form of Unit::parse by @Silvertree2010 in #4126
  • Refuse signs, exponents and non-numeric text in Export for Screens sizes by @Silvertree2010 in #4123
  • Reject misplaced or excess '=' padding in base64_decode by @Silvertree2010 in #4131
  • Shortcuts: the Cmd+Escape test expects no binding on Windows by @dotCooCoo in #4096
  • Shortcuts: the Ctrl+Alt chord test presses Cmd on a Mac by @dotCooCoo in #4073
  • MCP docs: export's EPS row names its one-file default and rect refuses artboards by @dotCooCoo in #4102
  • Docs: the Image Trace page describes the background line between Abutting colors by @dotCooCoo in #4061
  • Threaded text: Rasterize on a frame no longer duplicates its text by @dotCooCoo in #4047
  • Type: a recovered document keeps continued paragraphs in threaded frames by @dotCooCoo in #4072
  • Properties and Transform: X, Y, W and H of a compound path's member set only that path by @marcoarnulfo in #4056
  • Threaded text: New Symbol on a frame no longer duplicates its text by @dotCooCoo in #4059
  • Color management: loading the working RGB profile again under its name takes effect at once by @marcoarnulfo in #4053
  • Pencil: a path-continuation cursor shows over an end a straight line continues by @dotCooCoo in #4064
  • Pen cursors: a fountain-pen nib on the selection arrow's axis by @zsoltmar in #4117
  • Image Trace: Flat Logo finds a bar two pixels wide and three pixels long in its own color by @dotCooCoo in #4081
  • Export for Screens: takes the saved document's file name by @dotCooCoo in #4050
  • CLI: --help after a subcommand prints the usage by @dotCooCoo in #4063
  • Commands: an unknown command id is answered with the nearest command id by @dotCooCoo in #4060
  • MCP: headless file tools pass relative paths to the engine as given by @dotCooCoo in #4108
  • MCP: set_paint reports how many objects it painted by @dotCooCoo in #4069
  • Image Trace: Flat Logo counts only the outlines it keeps toward the anchor limit by @dotCooCoo in #4066
  • Image Trace: a color with no traced paths is left out of the palette by @dotCooCoo in #4077
  • EPS: the help text says no central file is written when no art shows by @dotCooCoo in #4068
  • Protect Windows device names followed by a space in safe_file_name by @Silvertree2010 in #4125
  • Direct Selection: an anchor of type on a path's path drags and the type reflows along it by @marcoarnulfo in #4070
  • Recolor Artwork: double-click a new color to pick it in the Color Picker, in the model it was picked in by @marcoarnulfo in #4090
  • Security: EPS and legacy Illustrator bounds (operator recursion, bind, copy, cvn, previews, writer output, ink name) by @dylanmtaylor in #3883
  • Security: document model bounds (id hashing, page ranges, overprint migration, auto slices, nested Repeat bounds) by @dylanmtaylor in #3888
  • Migrate VectorCraft input, text and capture to egui 0.37 by @skylartaylor in #4113
  • Docking: panels on craft-ui's shared docking, floating panels in OS windows by @aiongg in #4135
  • feat: startup update prompt modal and direct self-updating by @dylanmtaylor in #4138
  • Security: planar map budgets for booleans, Live Paint, Offset Path and 3D effects by @dylanmtaylor in #3937
  • build: pin craft-update to craft-libs main (495e597) by @dylanmtaylor in #4183
  • chore(deps): refresh muda, webbrowser and weezl by @skylartaylor in #4189
  • Tests: two control server line-deadline tests pass on a loaded machine by @dotCooCoo in #4194
  • Tests: the Paintbrush closing cursor follows the point a release keeps by @dotCooCoo in #4197
  • Appearance: Add New Fill and Add New Stroke are off with nothing selected by @dotCooCoo in #4193
  • Symbol Stainer: stained type keeps no link to a global swatch by @dotCooCoo in #4185
  • Character: Character Direction is off at a caret with no characters selected by @dotCooCoo in #4184
  • Plug-ins: compiling a plug-in's code takes none of a run's instructions by @KaboomFox in #4190
  • .ai import: the -- placeholder in a gradient highlight and the XC operator no longer send the file to its PDF part (fixes #4176) by @youwishgames in #4179
  • .ai import: editing data up to 512 MiB opens on 64-bit builds, so a card file with embedded rasters keeps its layers and text (part of #3510) by @youwishgames in #4177
  • Reset stroke weight to zero when the stroke colour is removed by @Silvertree2010 in #4132
  • Join the selected end points of two paths with Ctrl+J by @Silvertree2010 in #4187
  • lint: method references and elided const lifetimes (S1612, S8863) by @dylanmtaylor in #4204
  • G1: Reshape readouts follow Measurement Labels pref by @nrq6993-a11y in #4161
  • G1: Artboard resize honors Transform Tools readouts by @nrq6993-a11y in #4160
  • G1: Slice Selection resize honors Transform Tools by @nrq6993-a11y in #4168
  • G1: Shear tool Shift locks width or height by @nrq6993-a11y in #4164
  • lint: shell helper, local params and lossless float conversion (S1192, S7679, S4325) by @dylanmtaylor in #4205
  • G1: Star tool shows inner and outer radii in measurement labels by @nrq6993-a11y in #4148
  • Fix #3627: convert to PDF omits editing data by default by @nrq6993-a11y in #4147
  • MCP: doc_inspect reports opacityPct in the percent scale the drawing tools take by @acosimati in #4149
  • Live Paint: a plain group named "Live Paint..." is not a Live Paint group by @dotCooCoo in #4078
  • G11: Shape Builder's edge-source grid holds a bounded number of references (#4080) by @bflatastic in #4211
  • Shape Builder: a click merges over the map the tool built for the hover by @dotCooCoo in #4062
  • i18n(ka): shorter Georgian for 15 labels that were cut off by @devius in #4158
  • Shape Builder: erasing picks a region narrower than twice the tolerance by @dotCooCoo in #4065
  • Shape Builder: a merge across an overlap thinner than the precision gives one path by @dotCooCoo in #4079
  • Image Trace: the eye button's hold ends on release, and the panel uses any selected trace or image by @dotCooCoo in #4076
  • Image Trace: Overlapping layers reach only under areas that hold their own color by @dotCooCoo in #4054
  • Image Trace: Document Library keeps neutral tones off saturated library colors by @dotCooCoo in #4048
  • Image Trace: the blended edge of a cut-out image adds no color to the palette by @dotCooCoo in #4075
  • Image Trace: changes that wait with Preview off stay with their object by @dotCooCoo in #4105
  • Undo: canceling an undo group keeps a batch's steps in other documents by @dotCooCoo in #4103
  • Dialogs: ui.dialog.set returns an error for a field the open dialog does not read by @dotCooCoo in #4049
  • MCP: screenshot and render_preview can draw the Image Trace view by @dotCooCoo in #4055
  • MCP: answer_dialog sets the fields of the app's open dialog and confirms or cancels it by @dotCooCoo in #4057
  • Type: typing "1. ", "A) " or "* " at the start of a paragraph starts a list by @dotCooCoo in #4192
  • Pencil: Live curve fitting in Pencil Tool Options shows the stroke's points until the release fits them by @dotCooCoo in #4182
  • Brushes: Art Brush Options' Width can follow the pen pressure by @dotCooCoo in #4181
  • Eraser: Angle and Roundness in Eraser Tool Options shape the tip by @dotCooCoo in #4180
  • Fix #1732: Transform Each opens on the values it was last confirmed with and has a Copy button by @Taha-Mahmoodi in #4175
  • Pencil: the cursor shows a star before a press that draws a new path by @dotCooCoo in #4152
  • Pencil: a stroke from an end of one selected path to an end of another connects them by @dotCooCoo in #4095
  • Fix #3328: Pencil Fidelity down to 0.01 pt, with a logarithmic slider and key steps that fit the range by @ncic in #4196
  • Type on a path: joined scripts bend along the path so their joins stay connected by @ham9zah in #4119
  • Pen tablets: a pen's eraser end selects the Eraser on Windows by @dotCooCoo in #4097
  • Pen tablets: a pen's eraser end selects the Eraser in the web build by @dotCooCoo in #4104
  • Type: Highlight Substituted Fonts moves to Preferences › Type and applies to every document by @dotCooCoo in #4099
  • Web: shortcuts the browser also has run only in the app by @addibble in #4106
  • G12: General › Corner Radius is the Rounded Rectangle tool's radius (#4074) by @bflatastic in #4212
  • Artboards: canvas menu to lock and unlock artboards (#2531) by @vangel76 in #2532
  • Image Trace: Document Library traces with a color group from the Swatches panel by @dotCooCoo in #3975
  • lint(engine): explicit imports in engine modules and tests (S2208) by @dylanmtaylor in #4200
  • lint: explicit imports in remaining test and module files (S2208) by @dylanmtaylor in #4203
  • Revert #4200 and #4203: their explicit imports don't compile by @bflatastic in #4214
  • Transform panel: the menu's Transform Object Only, Pattern Only, Both and Use Registration Point for Symbol act by @Taha-Mahmoodi in #4146
  • Metafile import: a file's bitmaps share one decoded-pixel budget (#3600) by @ashokram-si in #4215
  • Image Trace: a cut-edge blend past the rare-color budget traces as its kept color by @dotCooCoo in #4216
  • Finish recolor widget IDs and migration documentation after #4113 by @skylartaylor in #4173
  • Tab overflow list scrolls to every open document (#4017) by @HEOJUNFO in #4218
  • Pencil: Edit Selected Paths redraws a selected compound path by @ncic in #4220
  • Fix #3837: unit fields read a decimal comma as a decimal point by @DCaioP in #4213
  • i18n: the message scan skips comments and reads EngineError::Disabled's reason by @dotCooCoo in #4222
  • Pencil: Live preview option in Pencil Tool Options by @ncic in #4225
  • G4: draw loaded-text cursor for threaded overflow by @nrq6993-a11y in #4229
  • Canvas: a mouse's moves between frames reach the tool too by @ncic in #4227
  • PDF tests: exports compared byte for byte are dated alike by @KaboomFox in #4210
  • Respect quotes and parentheses when splitting SVG CSS declarations by @Silvertree2010 in #4230
  • Repeat: a selected Grid Repeat has on-canvas handles for its rows, columns and spacing (part of #2691) by @Taha-Mahmoodi in #4166
  • Artboards: the Artboards panel's Delete Empty Artboards deletes every artboard with no artwork in one undo step by @Taha-Mahmoodi in #4142
  • Import: Illustrator blends come in as live blends by @ham9zah in #4127
  • Import: live blend check follow-ups by @ham9zah in #4234
  • Brushes: Window › Brush Libraries opens brush libraries whose brushes click or drag into the document's Brushes by @Taha-Mahmoodi in #4020
  • macOS: declare the UI languages so the open and save panels are translated by @Atalantis in #4235
  • Fix #3426: the Pathfinder panel's Pathfinder Options… sets Precision, Remove Redundant Points and Divide and Outline Will Remove Unpainted Artwork by @Taha-Mahmoodi in #4141
  • Toolbar: double-clicking the Type on a Path tool opens Type on a Path Options by @dotCooCoo in #4236
  • Type: a double-click on a threaded port breaks the thread there by @Taha-Mahmoodi in #4144
  • G8: EPS import regression tests for operator type checks by @nrq6993-a11y in #4238
  • Render: brush art is made again when a symbol or pattern it shows is renamed by @dotCooCoo in #4240
  • Undo: a canceled undo scope drops the journal entries it cut from open undo groups by @dotCooCoo in #4243
  • View: all 25 saved views in the View menu; Edit Views… lists them by @ashokram-si in #4247
  • Windows fonts: list the fonts only GDI has loaded, such as Creative Cloud's Adobe Fonts (#1258) by @xbirks in #4130
  • Fix #4128: text.create and text.setStyle store a font style the family has by @DCaioP in #4250
  • Part of #2384: imported PDF text keeps its place beside a drawn no-break or thin space by @dotCooCoo in #4251
  • G1: Blob Brush drag shows scrub path length when Measurement Labels on by @nrq6993-a11y in #4252
  • Clippy: bool and range checks after egui 0.37 merge by @nrq6993-a11y in #4253
  • G11: Anchor Point tool Space moves anchor mid-drag by @nrq6993-a11y in #4254
  • Render: an image that can't be decoded shows as a crossed box and isn't decoded again by @dotCooCoo in #4255
  • Type: Convert to Text makes a list's bullets and numbers characters of its text by @dotCooCoo in #4093
  • Clippy fixes after upstream merge by @nrq6993-a11y in #4258
  • G4: mixed Small Caps and super/subscript in Character panel by @nrq6993-a11y in #4260
  • Render: the decoded-image cache sizes from installed memory on Windows, macOS and FreeBSD by @dotCooCoo in #4261
  • Tests: the --help tests wait for the app to exit on a loaded machine by @dotCooCoo in #4266
  • G10: skip kashida test when PDF text import is empty by @nrq6993-a11y in #4264
  • #4122: File → Open starts in the last opened file's folder by @nrq6993-a11y in #4263
  • Render: cropped shadow and blur rasters are kept across pans within a margin by @dotCooCoo in #4265
  • PDF: list markers export as selectable text by @dotCooCoo in #4098
  • Images: an image past the 2 GiB decode allowance draws at reduced size instead of a crossed box by @dotCooCoo in #4269
  • Placed documents: a ready bitmap redraws only its objects, and bitmaps on screen are not made again by @dotCooCoo in #4270
  • G11: Join tool connects endpoints near scrub line ends by @nrq6993-a11y in #4272
  • ci: require nextest 0.9.150 by @skylartaylor in #4286
  • refactor: shared module layout (craft-contrib#20) by @aiongg in #4294
  • fix(format): cap a compressed file's JSON at 256 MB on wasm32 (#3587) by @rahul05ranjan in #4310
  • fix(doc): decode the linked-image proxy within MAX_RASTER_ALLOC (#3597) by @rahul05ranjan in #4308
  • Accept whole-number floats and reject invalid counts for polygon, star and spiral by @Silvertree2010 in #4304
  • Only treat % plus two hex digits as an escape in MCP resource URIs by @Silvertree2010 in #4288
  • G4: Optical margin menu uses shared text flag by @nrq6993-a11y in #4309
  • Brushes: New Brush makes the brush from the art its options opened with by @dotCooCoo in #4195
  • G2: Scribble effect Settings presets by @nrq6993-a11y in #4274
  • Docs: cite the public thread help for outlining a threaded frame by @dotCooCoo in #4275
  • Windows: a maximized window stays clear of a taskbar on the top or a side by @dotCooCoo in #4279
  • Windows: a maximized window stops a pixel short of an auto-hidden taskbar by @dotCooCoo in #4282
  • Appearance: a mixed selection lists the attributes its objects share (#4174) by @ham9zah in #4301
  • Dropdowns: menus grow back after a search with no matches by @aiongg in #4337
  • ci(deps): split Dependabot cargo group into lockstep families by @skylartaylor in #4223
  • Make SVG export def ids linear instead of quadratic by @Silvertree2010 in #4359
  • M2.1: allow Pen tool and path.join to continue, close, and join compound paths (#3274, #3276, #3379, #3380) by @el-j in #3283
  • Windows installation policy: VectorCraft by @Jeremy8776 in #4295
  • ci: run the printps tests under their moved path by @aiongg in #4305

New Contributors

Full Changelog: v0.17.0...v0.18.0

Don't miss a new vectorcraft release

NewReleases is sending notifications on new releases.