Commit Graph
2 Commits
Author SHA1 Message Date
dotCooCoo 5750843d73 Links: placed images in stored brush art get Links rows
Linked images and placed documents in the art of the stored brushes (a
scatter or art brush's art, a pattern brush's tiles) are listed in the
Links panel after the other stored art, one row per linked or placed
object in each brush tile, with the brush as owner
(`{kind: brush, name, index, tile?}`). Check Links, the missing and
modified files reported on open, the link watch, Find in Folder, Relink
(including Relink All Instances), Update, Embed, Placement Options, Link
Info and Go To act on them, and their tooltip names the brush.

- vectorcraft-doc: `Document::mounted_art` holds art kept outside the
  document's trees while a command looks it up by id; the stored-art
  lookups, link visitors and `art_roots` include it, and
  `number_mounted_art` gives its objects ids of their own.
- vectorcraft-brush: `stored_art::StoredArt` mounts the art of the
  brushes that hold images or placed documents and writes back only the
  entries whose art changed. Entries that do not read as a brush are left
  as stored. `brush::store` keeps ids of their own in that art, so a row
  keeps its id between commands.
- vectorcraft-engine: the links commands, opening a document, saving a
  placed document's source, output of linked files and placed documents,
  color masks after Update or Relink, and Package relinking go through
  the mounted art.

Brush art rows follow the general Links rule as VectorCraft's own
application of it.
2026-11-13 20:51:54 -08:00
dotCooCoo 21dbcf6307 Links: list and manage linked art in symbols, graph designs, patterns and masks by id
Linked images and placed documents kept only in symbols, graph designs,
pattern swatches or opacity masks now have ids of their own. links.list
lists them after the layers' own, one row per stored object, with an
owner naming what holds them; links.check, the missing, modified and
updated files reported on open, the link watch and links.findFiles
report them by id; relink (All Instances included), update, embed,
placementOptions, info and image.info act on them. links.goTo on one
clears the selection and returns onCanvas: false with its owner, and the
Links panel says the link has no place on the canvas.

- Document::visit_stored, stored_node and stored_node_mut find objects
  in every stored art. fix_next_id counts their ids and gives an object
  there whose id is 0, past the id range or already used a new one,
  updating Objects on Path references to renamed children.
- Copies of masked objects give the mask art new ids, and symbols and
  patterns that placed art brings from another document take ids of the
  document they join.
- The Links panel picks such rows in the panel itself, drops the pick
  when the canvas selection changes, and draws their thumbnails from a
  lookup made once per list refresh. Select by Link Status leaves them
  out, as it cannot select them.
2026-11-12 20:16:54 -08:00