Commit Graph
4660 Commits
Author SHA1 Message Date
BFlat f94b97c4d5 Merge pull request #7789 from dotCooCoo/fix/an-opaque-16-bit-cmyk-tiff-s-inks-are-rounded
TIFF: an opaque 16-bit CMYK TIFF's inks are rounded to 8 bits for display
2026-11-15 15:43:49 +07:00
BFlat cbadd8c14b Merge pull request #7791 from dotCooCoo/fix/path-commands-do-not-skip-locked-or-hidden-paths
Artwork Cleanup: path commands take locked and hidden art named by ids
2026-11-15 15:43:35 +07:00
BFlat 97c3226d72 Merge pull request #7773 from dotCooCoo/feat/variables-panel-sort-columns
Variables: Variables, Objects and type columns sort the variable list
2026-11-15 14:43:04 +07:00
BFlat 871dc96f7d Merge pull request #7775 from dotCooCoo/feat/recolor-new-row
Recolor Artwork: New Row adds a row that current colors can be merged into
2026-11-15 14:42:46 +07:00
BFlat 04b91c748e Merge pull request #7648 from dotCooCoo/feat/graph-type-dialog
Graphs: Graph Type is a dialog of its own with type buttons and a page per axis
2026-11-15 14:42:05 +07:00
BFlat 4a5f07b8c3 Merge pull request #7753 from dotCooCoo/feat/info-panel-tool-readouts
Info: the panel shows the move, transform, Zoom and Paintbrush values of the tool in use
2026-11-15 13:50:30 +07:00
BFlat 0cef4fa727 Merge pull request #7743 from dotCooCoo/fix/legacy-ai-artboard
.ai import: legacy PostScript .ai files open on their own artboard
2026-11-15 13:50:00 +07:00
BFlat 35a0d5ab04 Merge pull request #7755 from dotCooCoo/fix/clip-type-paint-export
Clipping: painted type keeps its fill and stroke in a group with geometry effects
2026-11-15 13:49:52 +07:00
BFlat b43372361e Merge pull request #7746 from dotCooCoo/fix/replace-clipped-psd-keeps-transform
Place: a plain image replacing a clipped PSD keeps its scale and rotation
2026-11-15 13:49:22 +07:00
BFlat bdfd445eef Merge pull request #7662 from ruchirguitar/feat/style-neon-glow
Graphic Styles: built-in Neon & Glow graphic style library
2026-11-15 13:49:11 +07:00
dotCooCoo b2a83415d0 Merge main into fix/path-commands-do-not-skip-locked-or-hidden-paths 2026-11-14 22:44:05 -08:00
dotCooCoo b867dee0b8 Merge main into fix/an-opaque-16-bit-cmyk-tiff-s-inks-are-rounded 2026-11-14 22:30:11 -08:00
dotCooCoo c5b8754eb7 Recolor Artwork: New Row adds a row that current colors can be merged into
The Assign tab has a New Row button before Merge. With art selected it
adds a row with no current colors above the first selected row, or at
the top, with that row's new color, and selects it. Merge with the new
row first moves the other rows' current colors into it, and they take
its new color. The row shows an empty slot until then.

An empty row recolors nothing and does not count toward Colors. OK
sends it with the other rows. recolor.apply adds no library swatch for
it and gives a rewritten color group no color from it, in the dialog's
groupColors and in the command's default.
2026-11-14 22:22:55 -08:00
dotCooCoo d5ccac5646 Variables: Variables, Objects and type columns sort the variable list
The Variables panel drew each variable as one "name · object" line in
the order the variables were defined, with no headers and no sorting.

The list now has three columns with headers: the type icon, Variables
and Objects. A click on a header sorts the list by that column, and a
second click reverses the order. The new command variable.sort {by:
name|object|type|none, descending?} sets the order, which is panel
state: not saved and not an undo step. variable.list lists the
variables in that order and reports it as sort. An unknown by, or a
descending that is not true or false, is an error.
2026-11-14 22:21:08 -08:00
BFlat 1a596c0362 Merge pull request #7653 from dotCooCoo/fix/svg-export-confined-image-links
MCP: SVG output under read roots refuses to name a linked image file outside them
2026-11-15 12:38:16 +07:00
BFlat 82b0c915a3 Merge pull request #7734 from dotCooCoo/feat/place-show-import-options
Place: Show Import Options asks for each file's import options, or uses the ones confirmed last
2026-11-15 12:38:07 +07:00
BFlat b4bd916141 Merge pull request #7737 from dotCooCoo/feat/select-similar-button
Control bar: Select Similar Objects selects by the attribute its menu keeps
2026-11-15 12:37:57 +07:00
BFlat acf04dd00f Merge pull request #7724 from dotCooCoo/fix/ai-off-artboard-art
.ai import: symbol instances in older files are read, so art outside the artboard opens
2026-11-15 12:37:39 +07:00
BFlat a1f10d4566 Merge pull request #7643 from dotCooCoo/fix/aligned-paint-rows-of-design-art
Graphs: aligned paint and stroke rows given with a design's art are rows of its stack
2026-11-15 12:37:29 +07:00
dotCooCoo 814cae044f Clipping: painted type keeps its fill and stroke in a group with geometry effects
A clip group whose clipping path is type with a fill or stroke lost that
paint when a group around it had a geometry effect. Outlining the type
for the effect replaced it with a group of glyph outlines, and a group
paints nothing as a clipping path. Distort effects lost it on the canvas
and in SVG and PDF; Transform effects that only move lost it in SVG and
PDF when other type in the group stayed type.

The type's outlines now clip, its fills become art behind the clipped
art inside the clip, and its strokes become art over it outside the
clip, as the canvas draws an unaffected clip group.
2026-11-14 21:34:17 -08:00
dotCooCoo bcadfc7ac8 Info: the panel follows the tool in use
While the Selection, Direct Selection or Group Selection tool moves the
selection, or the Gradient tool draws a vector, W and H show the change
in x and y, with the distance and the angle under them. A Scale tool
drag shows its percentages; a Rotate, Reflect or Shear tool drag shows
the center of the selection's box and its angles. The Zoom tool adds the
magnification and the Paintbrush the name of its brush.

W and H follow Use Preview Bounds. With several objects selected, the
panel shows only the fill, stroke and type values they share, and Show
Options adds a tint's swatch and percentage and a gradient's swatch name.

- Tool::readout and Readout (crates/tools/src/readout.rs).
- info.readout returns the selection's size and the tool's readout.
- Docs: docs/mcp.md, docs/ui-parity.md.
2026-11-14 21:31:28 -08:00
dotCooCoo 3c0dc77cef Merge main into fix/path-commands-do-not-skip-locked-or-hidden-paths 2026-11-14 20:46:33 -08:00
dotCooCoo 0a95045f8f Merge main into fix/an-opaque-16-bit-cmyk-tiff-s-inks-are-rounded 2026-11-14 20:46:26 -08:00
dotCooCoo bee46530d8 Place: a plain image replacing a clipped PSD keeps its scale and rotation
Replace measured the image inside a PSD or PSB file's clip group only
when the new file brought its own clipping path. A plain image placed
with `replace` over such a clip group took only the group's center and
came in at 100%, losing the image's scale and rotation. The image in
the group is now measured whenever the new art is an image, clipped or
not.
2026-11-14 20:40:45 -08:00
BFlat 6b3ae1c2f8 Merge pull request #7705 from dotCooCoo/fix/installed-script-runs-checked-text
Scripts: File › Scripts runs the text its check read, with includes from the checked folder
2026-11-15 11:38:16 +07:00
BFlat 2607a98c1f Merge pull request #7726 from dotCooCoo/feat/eraser-tip-variations
Eraser: Angle, Roundness and Size vary with Random, Pressure, Tilt, Bearing or Rotation
2026-11-15 11:37:51 +07:00
BFlat f3c093b6cd Merge pull request #7740 from dotCooCoo/feat/assign-profile-choices
Color management: Assign Profile offers Don't Color Manage, the working space or a profile
2026-11-15 11:37:43 +07:00
BFlat 511f36ed4c Merge pull request #7721 from dotCooCoo/fix/glyph-forms-review
Type: glyph forms and width forms follow the OpenType rules
2026-11-15 11:37:33 +07:00
BFlat dc8149cdf1 Merge pull request #7723 from dotCooCoo/fix/pdf-page-links-review
Import PDF: linked pages refuse placeholder .ai files, read the file once and keep blank pages
2026-11-15 11:37:26 +07:00
BFlat 3a2a8772f5 Merge pull request #7730 from dotCooCoo/fix/hpgl-9slice-art-bounds
Export: the HP-GL plot of the art's bounds places 9-slice and filtered symbol art before measuring
2026-11-15 11:37:09 +07:00
BFlat c7ed93dc31 Merge pull request #7736 from dotCooCoo/feat/pattern-move-tile-with-art
Pattern Options: Move Tile with Art moves the tile with the pattern's art
2026-11-15 11:36:50 +07:00
BFlat 94432bf2d0 Merge pull request #7729 from dotCooCoo/fix/pdf-image-profile-to-destination
PDF export: CMYK and other RGB destinations convert tagged images from their profile
2026-11-15 11:36:32 +07:00
ruchirguitar 44acce4a27 Merge remote-tracking branch 'upstream/main' into feat/style-neon-glow
# Conflicts:
#	ROADMAP.md
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-15 09:46:14 +05:30
dotCooCoo a5d643b253 TIFF: an opaque 16-bit CMYK TIFF's inks are rounded to 8 bits for display
Each 16-bit ink sample of an opaque CMYK TIFF, chunky or planar, is
reduced to the display's 8 bits as round(s * 255 / 65535), the rescaling
the PNG specification gives (section 13.12), where it was cut to its high
byte. An ink of 200 out of 65535 showed as none, and 0x8100 showed one
level too dark. The alpha path already rounds this way. The stored image
keeps its 16-bit samples.
2026-11-14 20:05:39 -08:00
dotCooCoo 39a4de61cb Merge main into fix/aligned-paint-rows-of-design-art 2026-11-14 20:00:33 -08:00
dotCooCoo d34e9a1c67 Merge main into fix/path-commands-do-not-skip-locked-or-hidden-paths 2026-11-14 19:50:41 -08:00
BFlat 26878d3d0e Merge pull request #7715 from dotCooCoo/fix/svg-open-path-type-before-start
Type on a path: type on an open path can start before the path
2026-11-15 10:46:42 +07:00
BFlat 98b5d31f77 Merge pull request #7568 from dotCooCoo/fix/graph-design-art-aligned-rows
Graphs: aligned rows given with a design's art stay rows of its stack
2026-11-15 10:46:33 +07:00
BFlat d094a3c449 Merge pull request #7601 from ruchirguitar/feat/brush-tech-circuit
Brushes: built-in Tech Circuit brush library
2026-11-15 10:45:11 +07:00
dotCooCoo 85063b4108 Merge main into feat/place-show-import-options 2026-11-14 19:29:13 -08:00
dotCooCoo e9cd607aae Merge main into fix/glyph-forms-review 2026-11-14 19:20:09 -08:00
dotCooCoo 2169ddedd6 Merge main into fix/svg-export-confined-image-links 2026-11-14 19:16:58 -08:00
dotCooCoo ea3397b35d Merge main into feat/graph-type-dialog 2026-11-14 19:13:24 -08:00
dotCooCoo b1acfaf5d4 Merge main into fix/aligned-paint-rows-of-design-art 2026-11-14 19:10:09 -08:00
dotCooCoo b61674f2ab .ai import: legacy PostScript .ai files open on their own artboard
A .ai in the legacy PostScript format opened with the box around all of
its art as the artboard, so art placed off the artboard came in on it.
Files opened as .eps keep their page.

- A .ai file read through its layers used the EPS rule from #1102, which
  makes the art's bounding box the artboard. It now keeps the artboard
  its header gives (%AI5_ArtSize around the center of %AI3_TemplateBox),
  with its art outside it. The engine opens a PostScript .ai or .ait
  through the new vectorcraft_eps::import_ai; an EPS's private data is
  still read as an EPS.
- A .ai of versions 3 and 4 (no %AI5_FileFormat) does not record its
  artboard's size. When it has a template box, its artboard is now
  VectorCraft's own default, a US Letter page, centered on the template
  box's center, which the version 7 specification (section 2.2) places
  at the artboard's center. Before, it was the art's box. This also
  applies to .ai files other apps write with a template box and no art
  size (#1027).
- The center of a template box with a size (a file with a template
  image) is now the middle of the box, not its lower-left corner.

A .ai with neither an art size nor a template box keeps its art's box
as the artboard.
2026-11-14 19:02:25 -08:00
ruchirguitar d84483ecdc Merge remote-tracking branch 'upstream/main' into feat/style-neon-glow
# Conflicts:
#	crates/effects/src/svg_filter/defaults.rs
2026-11-15 08:31:44 +05:30
dotCooCoo f80c97ec14 Merge main into feat/pattern-move-tile-with-art 2026-11-14 19:00:56 -08:00
dotCooCoo 106133133b Merge main into fix/hpgl-9slice-art-bounds 2026-11-14 19:00:44 -08:00
dotCooCoo 397adce4c8 Merge main into feat/eraser-tip-variations 2026-11-14 18:55:44 -08:00
dotCooCoo 6efa53f562 Merge main into fix/ai-off-artboard-art 2026-11-14 18:55:35 -08:00