Commit Graph
10704 Commits
Author SHA1 Message Date
dotCooCoo 83748190f6 Shape Builder: import waits_for_tool_edit and Arc after merging main
main moved session/execute.rs and cmd/buildcmds/shape_builder.rs off glob
imports, so the branch's new waits_for_tool_edit guard and Arc::ptr_eq call
needed those names added to the explicit import lists.
2026-10-28 17:15:07 -07:00
dotCooCoo a73637f4e4 Merge main into fix/outline-stroke-keeps-effects-on-outline 2026-10-28 16:56:27 -07:00
dotCooCoo f33617142c Save As .ai: carry editing data that other apps open as layers and paths
A PDF-compatible .ai now also carries, on its first page's PieceInfo, an
editing copy of the art in the form VectorCraft's own .ai reader reads:
AIPrivateData streams of 64 KiB holding the program compressed with
Zstandard after %AI24_ZStandard_Data, an AIMetaData stream of its header
comments, and the ContainerVersion, CreatorVersion, NumBlock,
RoundtripStreamType and RoundtripVersion entries.

The program holds the header comments, the color swatches and color
groups, every artboard, layers and sublayers (name, order, visibility,
lock, color, printing, dimming), groups, paths, fills and strokes (width,
caps, joins, miter limit, dashes, overprint, fill rule), process, spot and
global colors, guides, hidden and locked objects and object names. Type,
gradients, patterns, images, symbols, live objects, brushes, clipping
groups and compound paths are written as plain filled and stroked paths,
each with a warning; transparency and effects other than geometry effects
are left out.

The .ai option editingData (on by default, Include Editing Data for Other
Apps in Save As) turns it off. The legacy version 7 writer is unchanged;
the path, guide and line style operators both writers write move to
eps/src/ai_ops.rs. LoadOptions::native off opens a file from its editing
copy or pages instead of the VectorCraft document it carries.
2026-10-28 16:55:41 -07:00
dotCooCoo 72569ee6a4 Merge main into fix/shape-builder-merge-off-ui-thread 2026-10-28 16:48:55 -07:00
Dylan M. Taylor 5fd2282b79 Merge pull request #4497 from dylanmtaylor/chore/remove-windows7
Remove the experimental Windows 7 build
2026-10-28 18:46:56 -04:00
Dylan M. Taylor 49a60d9c5f Merge pull request #4299 from dylanmtaylor/sonar/enforce-clippy-standards
Enforce Rust coding standards via Clippy
2026-10-28 18:41:55 -04:00
Dylan M. Taylor 7a3b62b3b9 Docs: point the review disposition at the renumbered §8.10; drop Windows 7 from the change headers 2026-10-28 18:36:04 -04:00
Dylan M. Taylor 50bb4acf4e Update Cargo.lock: eframe no longer needs glow without the windows7 feature 2026-10-28 18:35:07 -04:00
Dylan M. Taylor cc3ca69d50 Remove the experimental Windows 7 build
Drop the unsupported Windows 7 x64 portable build and everything that existed only for it:
the windows7 workflow, packaging script and docs/windows7.md; the windows7 feature and the
win7-target cfgs (plain cfg(windows) now); the Windows 7 print transport
(printing/windows7.rs); the glow renderer path; and vendor/windows-link, the patched crate
only that build used. NOTICE, README and the living docs no longer describe it; dated
change-history rows are left as they were.
2026-10-28 17:57:17 -04:00
Dylan M. Taylor 484d25582c Merge remote-tracking branch 'origin/main' into pr-4299-ff 2026-10-28 17:20:12 -04:00
Dylan M. Taylor 86c81f21d2 Restore RTL Mojikumi condition, dropped layout comments and xtask root
- flow.rs: an opening bracket starting a wrapped line is set flush unless the paragraph is
  right to left, as before the split (it had become !vertical, so vertical text with
  LineEndHalf lost the flush and RTL paragraphs gained it). PlacementContext carries rtl.
- flow.rs, ruby.rs: put back the comments the split dropped (JLREQ, burasagari, Optical
  Margin Alignment, kashidas, ruby phases).
- xtask root(): the parent directory, not .../xtask/..
2026-10-28 17:20:12 -04:00
Dylan M. Taylor 12414aa9f6 Make PDF export comparison deterministic 2026-10-28 19:53:43 +00:00
Dylan M. Taylor 56804f6d7e packaging: honor CARGO_BUILD_TARGET in FreeBSD package.sh (#4487)
The shared release workflow cross-compiles FreeBSD aarch64 from an x86_64 VM by
setting CARGO_BUILD_TARGET. package.sh ignored it: it took the arch from uname -m
(the host, x86_64), read binaries from target/release, and ran the cross-built
binary to print its version. Pass --target, read from target/<triple>/release,
take the arch from the target, and skip the version run when cross-built.
2026-10-28 15:48:05 -04:00
Dylan M. Taylor f07afc992b Scope platform-specific imports 2026-10-28 18:18:29 +00:00
Dylan M. Taylor ed960ef1f1 Grant network access so update checks can reach GitHub (#4482) 2026-10-28 13:07:32 -04:00
Dylan M. Taylor e6da628e56 Simplify application integration tests 2026-10-28 16:44:19 +00:00
Dylan M. Taylor 55dddf6adf Extract UI event and rendering helpers 2026-10-28 16:44:17 +00:00
Dylan M. Taylor 0b821b3c54 Extract engine command and state helpers 2026-10-28 16:44:14 +00:00
Dylan M. Taylor 7043ef6f3d Extract geometry command helpers 2026-10-28 16:44:11 +00:00
Dylan M. Taylor 90ef99cb2c Simplify file import and export checks 2026-10-28 16:44:05 +00:00
Brandon ThomasandClaude Opus 5.5 68b68a30ac Release 0.18.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.18.0
2026-10-28 12:09:18 -04:00
dotCooCoo 3c0c010522 Merge main into feat/trace-keep-colors 2026-10-28 02:58:05 -07:00
dotCooCoo d0cb4e3cc7 Merge main into fix/issue-3748 2026-10-28 01:22:42 -07:00
dotCooCoo eb65e64882 Docs: name VECTORCRAFT_TITLEBAR=desktop and qualify the Linux app bar line 2026-10-28 01:07:48 -07:00
dotCooCoo 33ea3f5300 Merge main into fix/batch-override-export-for-screens-folder 2026-10-27 23:06:19 -07:00
dotCooCoo 8b1ff5f32b Merge main into feat/character-anti-aliasing-method 2026-10-27 22:12:22 -07:00
Dylan M. Taylor 62588fd080 Separate selection tool pointer phases and clarify imports 2026-10-28 05:03:13 +00:00
Dylan M. Taylor 7e44df55a9 Make renderer and SVG module dependencies explicit 2026-10-28 05:03:00 +00:00
Dylan M. Taylor 317d270823 Clarify PDF import stages and module dependencies 2026-10-28 05:02:46 +00:00
Dylan M. Taylor 89d538e40c Separate metafile record parsing into focused handlers 2026-10-28 05:02:26 +00:00
Dylan M. Taylor a9e82efcf0 Clarify EPS import and interpreter stages for strict Clippy 2026-10-28 04:52:26 +00:00
Dylan M. Taylor e1bc6b235c Clarify effects dependencies and split parameter checks 2026-10-28 04:52:07 +00:00
dotCooCoo f3104b154c Undo: the budget test allows unreadable memory; docs name the 32-bit cap
the_default_budget_follows_the_installed_memory_read compares the default
budget with the 1 GiB fallback when the installed memory can't be read,
as default_history_budget does, instead of failing. The reader itself is
still checked by vectorcraft-render's installed_memory_is_read.

The undo history line in docs/target-app-parity.md says the budget is at
most a quarter of the address space in a 32-bit build.
2026-10-27 20:47:51 -07:00
dotCooCoo 5d5b775e27 Merge main into feat/native-save-precision 2026-10-27 20:34:51 -07:00
dotCooCoo 8dcffb3bd3 Merge main into feat/visibility-variables-drive-locked-art 2026-10-27 20:19:07 -07:00
dotCooCoo 29e1e73940 Merge main into fix/linux-title-bar 2026-10-27 19:40:53 -07:00
dotCooCoo 86e1d1c2d1 Merge main into fix/undo-history-follows-memory 2026-10-27 18:56:49 -07:00
aiongg 9997ff0215 ci: run the printps tests under their moved path and fail when none run (#4305)
The module layout moved tests_printps to tests::printps, so the print
workflow's filter matched nothing and the step passed with 0 tests.
2026-10-27 21:09:33 -04:00
dotCooCoo 93677c26ec Shape Builder: a large selection merges on another thread
A Shape Builder click or drag over a selection of more than 128
segments merged on the UI thread, so the app stopped drawing and
answering until the merge was done. The tool now computes such a
merge on another thread from the map it built for the hover.
Meanwhile the canvas keeps drawing, the touched regions stay
highlighted and the pointer is the busy pointer. When the merge is
done, the tool runs shapeBuilder.merge with the gesture's params as
one undo step, and the command takes the computed shapes when it
would compute the same ones. The web build merges in the command, as
before.

A press while the map is still being built no longer waits for it on
the UI thread: the tool records the gesture and makes it once the map
is there.

Clicks, drags and the Shape Builder's arrow keys made during the
merge, and commands, menu items, the app's own dialogs, saves and tool
or document switches, run after it on the merged art; engine queries
that only read run at once. A change to the selected paths made
outside a command drops the merge. The headless host and ui.pointer
reply once the merge is applied.

The Shape Builder and the Live Paint Bucket keep their map of the
selection over a new revision of the document when the selected paths
and their outlines are unchanged, instead of building it again.
2026-10-27 17:26:38 -07:00
dotCooCoo d50ac14da2 Outline Stroke: a stroke whose geometry effects leave no path is outlined to nothing
A stroke-only path whose Offset Path or other geometry effect leaves no path
paints nothing on the canvas. Outline Stroke reported "no stroked paths
selected" for it, and Expand and Flatten Transparency kept the live stroke.
An empty group now takes the path's place.
2026-10-27 14:31:17 -07:00
aiongg 54c4f82638 Merge pull request #4295 from Jeremy8776/feat/install-scope-policy
Windows installation policy: VectorCraft
2026-10-27 17:16:50 -04:00
Jeremy ddf9845a27 test(installer): cover the compiled folder searches, resolver chains and wizard folder replay
The policy check now reads the compiled AppSearch and RegLocator rows for the
remembered-folder properties (registry root, key, value name and type for both
scopes) and runs the DIR, FOLDER, PATH and legacy exe actions in sequence order
against seeded values, so their precedence and the preset-folder guard cannot
regress. It also replays the wizard folder actions in sequence order (a
remembered folder beats the new-install default, a typed folder beats both) and
requires the machine restore action between the scope page and costing.
2026-10-27 21:13:29 +00:00
skylar taylor-barrick 0051b8af76 Merge pull request #3283 from el-j/fix/compound-path-pen-join
M2.1: allow Pen tool and path.join to continue, close, and join compound paths (#3274, #3276, #3379, #3380)
2026-10-27 15:13:15 -06:00
aiongg 28b5b9249c ci: use storytold/craft-common-actions at the merged installer-policy commit 2026-10-27 20:52:02 +00:00
dotCooCoo c273227cf8 Merge main into fix/outline-stroke-keeps-effects-on-outline 2026-10-27 13:51:06 -07:00
vangel76andClaude Sonnet 5.5 896e5c6e2b Format import re-exports
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 20:27:53 +01:00
vangel76andClaude Sonnet 5.5 bc19e29c61 Merge upstream/main into fix/2414-svg-classes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 20:26:05 +01:00
Jeremy 1440538ab6 fix(installer): check the exact architecture-specific machine folder
The pre-signing check matched any folder named Program Files, so it rejected
a valid MSI when Windows resolves Program Files elsewhere, accepted the 64-bit
root for an x86 package and accepted a different app name. Build the expected
folder from the package architecture's resolved root and the policy name.
2026-10-27 19:08:52 +00:00
skylar 9952b4950c Merge main (8622d0c7) into fix/explicit-join-ends-3283 2026-10-27 12:20:09 -06:00
skylar be49005d5f Merge main (e6d84c9d) into fix/explicit-join-ends-3283 2026-10-27 12:12:21 -06:00