What's Changed
- Migrate CADCraft to egui 0.37 by @skylartaylor in #2119
- craft-pdf and its PDF backends back at craft-libs 6e7f285 by @aiongg in #2147
- macOS menu choices and their shortcuts run at once by @aiongg in #2140
- "Save changes?" and Drawing Recovery appear at once by @aiongg in #2144
- refactor: explicit imports instead of wildcards (S2208, batch_09) by @dylanmtaylor in #2046
- Escape literal \U+ and \M+ backslashes in the DXF writer by @Silvertree2010 in #2050
- Ignore last vertex bulge in open Polyline::centroid by @Silvertree2010 in #2053
- Reject leading '+' in hex handle and colour parsing by @Silvertree2010 in #2067
- GETVAR CECOLOR reads back as text, as in AutoCAD (follow-up to #2014) by @marcoarnulfo in #2069
- Fix format_angle zeroing radians near a full turn at low precision by @Silvertree2010 in #2073
- A Fix on a derived point (a line's midpoint, an arc's end) holds the position it had before the edit by @marcoarnulfo in #2077
- Fix wcmatch returning nil for patterns with many '*' wildcards by @Silvertree2010 in #2078
- Constraints: an ellipse solution stored with its axes swapped or mirrored must still meet every constraint (an axis end by index does not) by @marcoarnulfo in #2082
- MCP: resend once when the app refuses a token read before --launch opened it by @marcoarnulfo in #2098
- Fall back to decimal for huge engineering-unit distances by @Silvertree2010 in #2114
- i18n(sv): translate 49 new strings by @kler in #2120
- fix: omit empty outlines in complex text shaping by @skylartaylor in #1960
- fix(ui): keep layout tabs stable when toggling Tool Sets by @jonascloud in #2008
- PLOTWINDOW: pick both corners even with ORTHO on by @nicholasgower in #1893
- In-place text editing accepts IME composition and commit by @nicholasgower in #1905
- Reject negative or out-of-range minutes/seconds in D'" angles by @Silvertree2010 in #2116
- Read the drawing's WIPEOUTFRAME from its WIPEOUTVARIABLES object by @asimfali in #908
- Keep associative-array parameters when an xref is loaded (#943) by @MarekSpodBiedry in #966
- Read dynamic block element tags from the entity's own xdata (#942) by @MarekSpodBiedry in #967
- Table commands reject a malformed handle instead of using the selected table (#934) by @MarekSpodBiedry in #970
- Region: test very long segments against every segment so no crossing is missed (#929) by @MarekSpodBiedry in #975
- Geometry: circle intersection judges tangency against the smaller circle, so a small circle crossing a huge one gives two points (#926) by @MarekSpodBiedry in #976
- Cap HATCH spline edge degree at 10 like the SPLINE reader (#923) by @MarekSpodBiedry in #978
- Fix grid index span overflow with a very large view (#920) by @MarekSpodBiedry in #979
- Autosave no longer writes the old host as recovery when the Block Editor's changes can't be composed (#918) by @MarekSpodBiedry in #980
- CLI --save, convert and sample write through a staged file so a failed write keeps the previous drawing (#912) by @MarekSpodBiedry in #982
- chore(deps): bump lyon_tessellation from 1.0.22 to 1.0.23 in the cargo-dependencies group across 1 directory by @dependabot[bot] in #1992
- Every craft-libs crate at craft-libs main a0916808 by @aiongg in #2153
- feat: startup update prompt modal and direct self-updating by @dylanmtaylor in #2141
- build: pin craft-update to craft-libs main (db19c37) by @dylanmtaylor in #2161
- build: pin craft-update to craft-libs main (495e597) by @dylanmtaylor in #2163
- build: pin craft-update to craft-libs main (495e597) by @dylanmtaylor in #2168
- refactor: explicit imports instead of wildcards (S2208, batch_00) by @dylanmtaylor in #2037
- refactor: explicit imports instead of wildcards (S2208, batch_03) by @dylanmtaylor in #2040
- refactor: explicit imports instead of wildcards (S2208, batch_01) by @dylanmtaylor in #2038
- refactor: explicit imports instead of wildcards (S2208, batch_05) by @dylanmtaylor in #2042
- refactor: explicit imports instead of wildcards (S2208, batch_06) by @dylanmtaylor in #2043
- refactor: explicit imports instead of wildcards (S2208, batch_07) by @dylanmtaylor in #2044
- refactor: explicit imports instead of wildcards (S2208, batch_08) by @dylanmtaylor in #2045
- refactor: cut helper signatures to 7 parameters (S107) by @dylanmtaylor in #2047
- refactor: cut closure/test-helper params to 7 (S107) by @dylanmtaylor in #2048
- refactor: explicit imports instead of wildcards (S2208, batch_04) by @dylanmtaylor in #2041
- refactor: explicit imports instead of wildcards (S2208, batch_02) by @dylanmtaylor in #2039
- chore(deps): safe dependency refresh by @aiongg in #2179
- refactor(io): cut cognitive complexity in PDF marks and DXF readers (S3776) by @dylanmtaylor in #2185
- refactor: cut cognitive complexity in matchers, scanners and solver setup (S3776) by @dylanmtaylor in #2186
- refactor: cut cognitive complexity in area, explode, hatch, compare and options (S3776) by @dylanmtaylor in #2187
- refactor: cut cognitive complexity in fillet, model, dimstyle and rectangle (S3776, S1612) by @dylanmtaylor in #2188
- macOS Edit menu keys edit a focused text field by @aiongg in #2139
- Side panels dock in left and right dock columns by @aiongg in #2158
- ci: require nextest 0.9.150 by @skylartaylor in #2227
- refactor: shared module layout (craft-contrib#20) by @aiongg in #2220
- refactor(ui): use craft-ui's ComboBox for every dropdown by @aiongg in #2303
- Speed up PNG export: stroke runs of hairline polylines as one path by @Silvertree2010 in #2331
- Blocks: Modify > Object > Block Description..., and the Block Editor saves a changed description by @dotCooCoo in #2113
- AREA: an area, perimeter or running total past f64's range is refused by @dotCooCoo in #2162
- View: Viewports > Named Viewports... lists, restores and deletes saved viewport configurations by @dotCooCoo in #2175
- LAYOUT: SAveas saves a layout as a drawing template by @dotCooCoo in #2177
- AREA and DIST: the Arc option measures arc segments by @dotCooCoo in #2193
- fix(ui-egui): Ui::scope_id for the block description field by @aiongg in #2336
- Enforce Rust coding standards via Clippy by @dylanmtaylor in #2239
- Windows installation policy: CADCraft by @Jeremy8776 in #2230
- refactor(cli): parse
cadcraft-cliarguments with clap, following RFC-0012 by @aiongg in #2268
New Contributors
- @Jeremy8776 made their first contribution in #2230
Full Changelog: v0.13.0...v0.14.0