Commit Graph
5459 Commits
Author SHA1 Message Date
BFlat 2c6c88ebc5 Merge pull request #7604 from dotCooCoo/fix/pdf-art-bounds-printing-layers
Export: a page of the art's bounds is measured on the art the file draws
2026-11-15 03:21:52 +07:00
BFlat 6970c4efec Merge pull request #7609 from dotCooCoo/fix/transform-copies-raster-effects
Effects: each copy of a Transform effect draws the raster effects listed before it
2026-11-15 03:21:43 +07:00
BFlat 6ee761e327 Merge pull request #7639 from dotCooCoo/feat/global-edit-rotated-copies
Global Edit: rotated copies are matched and take each edit turned by their angle
2026-11-15 03:21:03 +07:00
BFlat bac95f9902 Merge pull request #7631 from dotCooCoo/fix/composite-font-lent-document-only
Type: a document draws only its own composite font definitions
2026-11-15 03:20:55 +07:00
BFlat 3a76cd89ac Merge pull request #7620 from dotCooCoo/fix/live-paint-info-every-row
MCP: livePaint.info lists every appearance row of a face or edge
2026-11-15 03:20:38 +07:00
BFlat 2d9793d6f1 Merge pull request #7637 from dotCooCoo/perf/remove-breaks-thread-frames-once
Remove Breaks: a partly selected story's frames are gone through once
2026-11-15 03:20:29 +07:00
BFlat 2eb5894748 Merge pull request #7619 from dotCooCoo/fix/learn-reset-progress-doc
Docs: only learn.markStep checks a tutorial id, not learn.resetProgress
2026-11-15 03:20:03 +07:00
BFlat 013ee019e3 Merge pull request #7607 from dotCooCoo/fix/paste-copied-file-size-limit
Paste: a copied file over 64 MiB is skipped before it is read
2026-11-15 03:19:47 +07:00
BFlat c6c06b2c68 Merge pull request #7442 from dotCooCoo/fix/eps-ryumin-light-h
EPS import: Ryumin-Light-H and GothicBBB-Medium-V read as Japanese type without their CIDFont
2026-11-15 03:19:37 +07:00
BFlat a33a296ccc Merge pull request #7530 from dotCooCoo/fix/vi-missing-message-rows
i18n: Vietnamese translates 115 status and error messages it lacked
2026-11-15 03:19:06 +07:00
BFlat 8b351d475b Merge pull request #7613 from dotCooCoo/docs/localization-indonesian-bosnian
Docs: the localization page lists Indonesian once and marks Bosnian by what it translates
2026-11-15 03:18:47 +07:00
datatimp 8d3f8d1ce5 Merge branch 'main' of https://github.com/storytold/vectorcraft into fix/7340-guide-row-clicks 2026-11-14 13:36:34 -05:00
BFlat 0adbdce6cb Merge pull request #7621 from ruchirguitar/feat/symbols-item-context-menu 2026-11-15 01:14:51 +07:00
dotCooCoo 7cbbf97b74 Merge main into fix/pdf-art-bounds-printing-layers 2026-11-14 10:03:22 -08:00
dotCooCoo 951f689e8f Export: an HP-GL plot of the art's bounds measures images by the art their effects add
An image or a gradient mesh with a visible Crop Marks effect, or with a
Vector Halftone effect that makes dots, is measured in a plot of the art's
bounds. A halftone that makes no dots, such as one past the effect's cell
limit, leaves the image out as before.
2026-11-14 09:59:27 -08:00
dotCooCoo f43d16268a Global Edit: rotated copies are matched and take each edit turned by their angle
Select > Start Global Edit now also takes rotated copies of the selected
object or group, in the highlights before the start, in the Global Edit
Options' Results count and in the started edit. An edit reaches each copy
turned by that copy's angle, so an anchor moved to the right on the
selected object moves downward on a copy turned a quarter turn clockwise.

The copy's angle is the one that lays the selected object's anchors and
handles on the copy's in order (a least-squares fit in the unit box),
and the copy is the same shape when each point then lies within a
millionth of the larger side of the copy's box. Reflected copies and
copies stretched along one direction stay unmatched. With Size, a rotated
copy matches when it is the object rotated without scaling. The no-match
message now names only reflected copies, in every catalog that has it.

Docs: docs/mcp.md, docs/gaps.md, docs/ui-parity.md and the evidence list
in docs/target-app-parity.md.
2026-11-14 09:43:51 -08:00
dotCooCoo c51d14262f Merge main into fix/composite-font-lent-document-only 2026-11-14 09:42:51 -08:00
BFlat 78131ae11c Merge pull request #7419 from dotCooCoo/fix/type-dialogs-story-wide
Type: Justification, OpenType, text styles and Convert to Text change every frame of a selected story
2026-11-15 00:42:04 +07:00
BFlat fcfad959ff Merge pull request #7588 from dotCooCoo/fix/mesh-point-color-panel
Color: the panels show the color and opacity of picked gradient mesh points
2026-11-15 00:41:54 +07:00
BFlat e76f8d2c88 Merge pull request #7501 from dotCooCoo/fix/export-bakes-symbol-art-effects
Export: live effects in symbol art apply in PDF, EPS, print and DXF
2026-11-15 00:41:46 +07:00
BFlat 53cc597fbd Merge pull request #7554 from dotCooCoo/fix/place-text-utf16-no-bom
Place: text files in UTF-16 without a byte-order mark place as UTF-16
2026-11-15 00:41:11 +07:00
BFlat 12b09b921c Merge pull request #7439 from dotCooCoo/fix/single-line-composer-remeasure
Type: the Single-line Composer measures a line's room across its tallest character
2026-11-15 00:41:01 +07:00
BFlat 8c5494bccc Merge pull request #7342 from dotCooCoo/feat/live-paint-selection-double-click
Live Paint: a Live Paint Selection double-click selects the connected faces or edges
2026-11-15 00:40:41 +07:00
BFlat 7ee5f499f4 Merge pull request #7547 from dotCooCoo/fix/ai-large-canvas-symbol-art
.ai and EPS import: large canvas symbols come in at the file's size
2026-11-15 00:40:30 +07:00
BFlat d0b37826c0 Merge pull request #7338 from dotCooCoo/fix/colored-light-seams
3D: colored-light facets close their shared edges over an underlay
2026-11-15 00:40:19 +07:00
BFlat 3d895d9ac7 Merge pull request #7448 from dotCooCoo/fix/reverse-path-profiles
Paths: Reverse Path Direction turns the stroke's width profile and pen records with the path
2026-11-15 00:40:08 +07:00
BFlat e5a99a5284 Merge pull request #7561 from dotCooCoo/fix/invert-wrap-offset-band-exact
Text wrap: Invert Wrap with an offset lets a line use all the room the grown shape holds
2026-11-15 00:39:39 +07:00
BFlat 01e66f0a19 Merge pull request #7477 from dotCooCoo/fix/dimension-second-point-guides
Dimension tool: no construction guides through a first point off the anchors
2026-11-15 00:39:29 +07:00
BFlat 23accce757 Merge pull request #7467 from dotCooCoo/fix/inflate-lazy-puffs
3D: Inflate with no volume solves each puff only when its solid is taken
2026-11-15 00:39:20 +07:00
BFlat b6b7dda2fd Merge pull request #7603 from dotCooCoo/docs/menu-stub-list
Docs: the menu-stub list names only menus that are not wired up
2026-11-15 00:39:02 +07:00
BFlat 15c054ff2a Merge pull request #7426 from dotCooCoo/fix/it-missing-message-rows
i18n: Italian translates the messages no catalog had a row for
2026-11-15 00:38:53 +07:00
BFlat 8c17633967 Merge pull request #7314 from dotCooCoo/fix/ja-message-rows
i18n: Japanese has a row for 1,804 of the messages the untranslated report lists
2026-11-15 00:38:41 +07:00
BFlat 7a808e2378 Merge pull request #7536 from dotCooCoo/fix/svg-rtl-absolute-chunks
SVG import: absolutely placed characters in right-to-left text land on their x
2026-11-15 00:38:32 +07:00
BFlat 4b5d62ee9e Merge pull request #7605 from dotCooCoo/docs/localization-hi-report-section
Docs: Hindi pages state the untranslated report's Hindi gaps
2026-11-15 00:38:19 +07:00
BFlat 40d6a2bc3e Merge pull request #7354 from dotCooCoo/fix/hu-message-rows
i18n: Hungarian has a row for 1,813 of the messages the untranslated report lists
2026-11-15 00:38:11 +07:00
BFlat d89f593bfa Merge pull request #7380 from ncic/pencil-cursors
Pencil: shows where a stroke continues, connects and closes
2026-11-15 00:38:01 +07:00
dotCooCoo ae39914b9f Remove Breaks: a partly selected story's frames are gone through once
When only some frames of a threaded story are selected, Remove Line
Breaks and Remove Paragraph Breaks built the story's frame list again
for every selected frame of it, so the work grew with the square of the
frame count. The command now notes a thread once its story is found not
to be selected in full, and reads that thread's other selected frames
on their own without going through the thread again. Each selected
frame still loses its own breaks, in the order selected, as one undo
step.

A test-only counter in threads.rs counts story_in calls, and
remove_breaks_goes_through_a_partly_named_story_once checks both break
kinds with frames named out of order and twice.
2026-11-14 08:58:57 -08:00
dotCooCoo 10225d82e5 Export: an HP-GL plot of the art's bounds leaves out images in symbol art
The bounds of a plot of the art's bounds no longer count the objects a
plot leaves out (placed images, objects at 0% opacity, unpainted paths)
when they sit in the art of a symbol. An instance whose symbol holds
nothing else is left out, so a document with only such instances is
refused with "nothing to export". The art of a dynamic symbol, and of a
group with effects, fills or strokes of its own, is measured whole.
2026-11-14 08:50:21 -08:00
ruchirguitar 415783e926 Symbols: add right-click context menu to panel items 2026-11-14 21:59:45 +05:30
dotCooCoo 46c9f922c2 Type: a document draws only its own composite font definitions
While a document's composite fonts are lent, type naming a composite font
the document does not define is set as in a missing font, even when the
front document or the document a placed document sits in defines one of
that name. A document that defines no composite font gets an empty scope
too, so a document in the back, a tiled window, a thumbnail or an export
made while another document is in front no longer borrows the front
document's definitions. A temporary document drawn while a document draws
keeps that document's fonts, and type laid out with nothing lent still uses
the registered ones.

- FontDb::composite_font looks only in the latest loan of the database.
- lend_composite_fonts lends an empty set at the top level when the
  database holds composite fonts; lend_document_composite_fonts also lends
  one inside another loan, for placed documents, back-document measuring
  and threaded reflow on open.
- A loan that leaves out a registered font gets its own generation, so
  layouts made with that font are not reused under it.
2026-11-14 08:16:02 -08:00
dotCooCoo 93f9ec0346 Docs: only learn.markStep checks a tutorial id, not learn.resetProgress
docs/mcp.md said that for both learn.markStep and learn.resetProgress a
missing, non-string or unknown `tutorial` is an error. learn.resetProgress
takes no params and clears the progress without reading `tutorial`
(crates/ui-egui/src/panels/learn.rs), so the sentence now names the
tutorial errors under learn.markStep alone, and the rule that an error
changes nothing stays with them.
2026-11-14 07:59:21 -08:00
dotCooCoo 10f94b544d MCP: livePaint.info lists every appearance row of a face or edge
livePaint.info reported only the top fill of each face and the top
stroke and weight of each edge, so a lower row that draws under an
unpainted top row was not visible to a client. Each face and edge now
also carries `appearance`: every fill and stroke row, bottom first, as
{index, kind, paint, opacity, visible, width (strokes only), drawn}.
`drawn` follows Expand's rule row by row: the part is shown with an
opacity above 0, and the row is shown, has paint and an opacity above
0, and a stroke has a weight above 0. The existing `fill`, `stroke`,
`width`, `bounds`, `sources`, `gapOptions` and `gaps` fields are
unchanged.

The params text no longer says the group defaults to the selection:
the command takes `group`, or `id` when `group` is left out, and
returns an error without either.
2026-11-14 07:57:56 -08:00
dotCooCoo 978b94cef1 i18n: localization doc marks Vietnamese messages as partial
The Vietnamese row's message column said "all" while the same cell counts messages without a Vietnamese row. It now says dialogs and tooltips are complete and messages are partial, as the Indonesian row does. The row and the evidence line in docs/target-app-parity.md give the catalog's current counts: 1,750 @msg and 49 @msgplural rows, with 1,875 messages in the untranslated report.
2026-11-14 07:45:06 -08:00
dotCooCoo e2cdedc6d0 Docs: recount Indonesian and Bosnian on current main
The Indonesian and Bosnian rows now give the catalog counts and the
untranslated-report gaps measured on main at 676f0524cc: Indonesian has
6,825 rows (1,036 @msg) and lacks 60 menu strings and 2,508 scanned
messages; Bosnian has 6,887 rows (1,144 @msg) and lacks 97 menu strings
and 2,416 scanned messages.
2026-11-14 07:36:08 -08:00
dotCooCoo 15e64f4057 Merge main into docs/localization-indonesian-bosnian 2026-11-14 07:25:48 -08:00
dotCooCoo 32e90d5e2c Merge main into fix/paste-copied-file-size-limit 2026-11-14 07:18:49 -08:00
dotCooCoo 17fcbe9950 Merge main into fix/vi-missing-message-rows 2026-11-14 07:16:52 -08:00
dotCooCoo fbb6546621 Merge main into fix/pdf-art-bounds-printing-layers 2026-11-14 07:15:53 -08:00
BFlat 16d5710e8e Merge pull request #7430 from dotCooCoo/fix/es-missing-message-rows
i18n: Spanish translates 114 messages that no catalog had a row for
2026-11-14 21:55:57 +07:00
BFlat 2ebf037bc5 Merge pull request #7360 from dotCooCoo/feat/learn-progress-rings
Learn: steps get check boxes, and skill rings fill as tutorials are finished
2026-11-14 21:55:49 +07:00