Commit Graph
19 Commits
Author SHA1 Message Date
BFlat 6fa41d4f76 Merge pull request #7304 from dotCooCoo/fix/graph-series-object-opacity-other-commands
Graphs: Global Edit, Randomize Opacity and Sort Objects keep what they give a series
2026-11-14 06:26:22 +07:00
dotCooCoo 6e308c4e54 Graphs: Global Edit, Randomize Opacity and Sort Objects keep what they give a series
A path directly in a graph series lost what these commands gave it when
the graph was drawn again, for example after graph.setData:

- While Global Edit is on in an isolated graph, a match that is a series
  path, or a series group whose paths take the edit, now has what
  changed on its paths stored for their series: the paint, weight,
  opacity and blend mode of the topmost visible fill and stroke, and the
  object's opacity and blend mode. The edited match is stored by its own
  command as before.
- addon.arrange.randomizeOpacity and addon.arrange.sort with apply
  "opacity" now store the object opacity, with the blend mode, of the
  series paths whose opacity they change. When they change several
  paths of one series, the frontmost of them sets what the graph
  stores, as for the other commands.

The graph stores them in the same undo step as the edit. The params
text of addon.arrange.randomizeOpacity and addon.arrange.sort,
docs/mcp.md and docs/target-app-parity.md describe the new behavior.
2026-11-13 13:53:55 -08:00
dotCooCoo 58cb261d7c Global Edit: Start Global Edit is offered only for a group it can start on
Select > Start Global Edit was enabled for any plain group, so a group
holding type, an image or nothing was offered in the Select menu and the
Properties panel's Quick Actions, the Control bar showed its Global Edit
Options, and starting then refused it. The enabled check now applies the
same support check as starting to every selected object, a group's
contents included.

The answer is kept per document revision and selected object, so the
Control bar, which asks every frame, walks a group once per change.

Docs: docs/mcp.md, docs/target-app-parity.md (a new line; the existing
Global Edit line no longer says the menu item checks only for a group).
2026-11-13 13:28:13 -08:00
dotCooCoo 8a6361b45f Global Edit: selecting one object highlights the similar objects before the start
With one object that Start Global Edit accepts selected with the Selection
tool, the canvas now highlights the other objects a start would take with the
current Global Edit Options, before Global Edit starts. The outlines are kept
per document revision and options, and none are shown during a drag.

Docs: docs/mcp.md (Global Edit), docs/gaps.md (G5).
2026-11-12 07:04:06 -08:00
dotCooCoo 581ced3213 Transform: Align to Pixel Grid keeps an object's horizontal and vertical edges on the pixel grid
Squashed from #6169 onto main.
2026-11-09 00:29:28 +07:00
dotCooCoo 434c032f9e Symbols: Direct Selection sets the solid fill and stroke of one object in a dynamic instance
Squashed from #5962 onto main.
2026-11-09 00:26:11 +07:00
dotCooCoo 30a2d85658 Global Edit: the enabled check decides without normalizing every anchor
The Control bar asks whether Select > Start Global Edit can run every
frame it shows a one-object selection. For a path, compound path or
symbol instance that check built the object's form: a copy of every
anchor and handle, normalized into a unit box. On a 200,000-anchor path
it took about 2.2 to 3.0 ms a frame.

The check now walks the object the same way and measures only the box
of those points, then applies the same size test, so it gives the same
answer for every object without allocating. Starting Global Edit still
builds the forms it compares.
2026-11-05 12:36:41 +07:00
dotCooCoo c5bfa08663 Merge branch 'main' into feat/global-edit-shift-exclude 2026-11-02 02:17:18 -08:00
dotCooCoo 1cd5bc4016 Global Edit: a Shift-click on a match inside a selected group deselects the group
A match that sits inside a selected object is no longer highlighted, and a
Shift-click on it with the Selection tool deselects that object as before
instead of leaving the match out of the Global Edit.
2026-11-02 01:28:57 -08:00
dotCooCoo 205e5b3e8b Global Edit: a Shift-click on a highlighted match leaves it out of the edit
While Global Edit is on, a Shift-click (not a Shift-drag) with the
Selection tool on a highlighted match, or on an object inside a matched
group, leaves that match out: it is no longer highlighted and later
edits leave it as it is. The object the edit started from stays in, and
Global Edit ends when fewer than two matches are left. Leaving a match
out is not an undo step.

- New command `select.globalEditExclude {id}` returns `{active, count,
  ids}`; the Selection tool calls it on the release of a Shift-click.
- `ToolContext::global_edit` gives the tools the Global Edit's objects.
- Label and messages in the i18n catalogs; docs/mcp.md,
  docs/ui-parity.md and docs/target-app-parity.md updated.

Source: https://helpx.adobe.com/ph_fil/illustrator/how-to/global-editing-sensei.html
2026-11-02 01:06:40 -08:00
dotCooCoo e8e09af782 Brushes: Calligraphic and Scatter values follow pen tilt, bearing and rotation
Squashed from #5031 onto main.
2026-11-02 14:33:02 +07:00
dotCooCoo 54436b0aa2 i18n: open, save and recovery messages name their counts in the singular or the plural
The status bar said "Opened with 1 note(s)", "Saved <path> with 1 note(s)",
"Discarded 1 recovered document(s)" and "Restored 1 recovered document(s)",
and the Global Edit options showed "Result(s): 1". They now use the singular
for 1 and the plural otherwise, in English through i18n::msg_n and in every
catalog through @msgplural rows (the Results line through an @plural row).

The engine's warnings for linked images and placed documents output as their
previews, and its errors for a page past a placed file's last page or
artboard, also name their counts in the singular or the plural.

The catalogs drop the rows no message reads any more: the plain "(s)" rows
of the changed messages and the @msg row for "Packaged {n} file(s){note}".

Follows #5002.
2026-11-02 12:04:04 +07:00
bflatastic 8c35bacfb3 Global Edit: the menu checks a selected group's kind only; its contents are checked on start 2026-11-01 03:36:43 +07:00
bflatastic 3146ca513b Fix #4939: Global Edit finds and edits groups like the selected one 2026-11-01 03:36:43 +07:00
Dylan M. Taylor 0b821b3c54 Extract engine command and state helpers 2026-10-28 16:44:14 +00:00
bflatastic a54251a18a Revert "Merge pull request #4200 from storytold/fix/sonar-s2208-engine-tests"
This reverts commit d7a2591dc0, reversing
changes made to e63c26ff15.
2026-10-26 09:56:24 +07:00
Dylan M. Taylor 2b72794251 lint(engine): explicit imports in engine modules and tests (S2208)
Replace glob `use super::*` with the names each module uses, so the
module's imports are visible at the top of the file (Sonar rust:S2208).
No code changes.
2026-10-26 09:52:47 +07:00
bflatastic 0066447eac Global Edit: cache the highlight outlines per document revision 2026-10-24 03:09:12 +07:00
bflatastic 6e3ecc3adf Select: Start Global Edit edits the objects of the same shape together, each in proportion
Squashed from #3781 onto main.
2026-10-24 03:09:12 +07:00