Commit Graph
585 Commits
Author SHA1 Message Date
BFlat e34fef895f Merge pull request #7732 from ruchirguitar/feat/swatches-item-context-menu
Swatches: add right-click context menu to swatch items
2026-11-16 02:30:51 +07:00
ruchirguitar 104a844da1 feat(ui): implement Check Spelling modal dialog (#4936)
# Conflicts:
#	docs/roadmap.md
2026-11-15 21:33:12 +05:30
ruchirguitar e9c57f06e4 G12: remove superseded pending validation notes 2026-11-15 14:12:39 +05:30
ruchirguitar 750c75f52f G12: integrate current main and panel view state
Resolve documentation and upstream test-helper conflicts, preserve the upstream helper fix, and adapt context-menu harness views to app state. All 13 Linux CI gates pass on this integrated source.
2026-11-15 14:09:04 +05:30
Taha-Mahmoodi a4c176a0dd Merge remote-tracking branch 'origin/main' into feat/indic-composers
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-15 12:37:49 +04:30
Taha-Mahmoodi 18095f4103 Merge remote-tracking branch 'origin/main' into feat/indic-composers
# Conflicts:
#	crates/engine/src/cmd/panelcmds.rs
#	crates/text/src/shape.rs
#	crates/ui-egui/src/i18n/bg.tsv
#	crates/ui-egui/src/i18n/bs.tsv
#	crates/ui-egui/src/i18n/ca.tsv
#	crates/ui-egui/src/i18n/da.tsv
#	crates/ui-egui/src/i18n/el.tsv
#	crates/ui-egui/src/i18n/es.tsv
#	crates/ui-egui/src/i18n/fi.tsv
#	crates/ui-egui/src/i18n/fr.tsv
#	crates/ui-egui/src/i18n/hu.tsv
#	crates/ui-egui/src/i18n/id.tsv
#	crates/ui-egui/src/i18n/ja.tsv
#	crates/ui-egui/src/i18n/ka.tsv
#	crates/ui-egui/src/i18n/ko.tsv
#	crates/ui-egui/src/i18n/nl.tsv
#	crates/ui-egui/src/i18n/ru.tsv
#	crates/ui-egui/src/i18n/tr.tsv
#	crates/ui-egui/src/i18n/vi.tsv
#	docs/gaps.md
#	docs/mcp.md
#	docs/target-app-parity.md
#	docs/type-parity.md
2026-11-15 11:13:18 +04:30
Taha-Mahmoodi 96e7078ec8 fix(text): format controls draw no ink; revision rows in Revision history (review) 2026-11-15 11:11:29 +04:30
ruchirguitar f77bbaf32e docs: record Neon & Glow library in roadmap and align G5 estimate history 2026-11-15 09:55:20 +05:30
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
ruchirguitar 45aeeeddca G12: fix upstream test helper blocking swatches CI
Give the SVG-filter defaults' square test raster its width and height. All 13 Linux CI gates pass on the integrated source; fresh deep CodeRabbit review reports zero findings.
2026-11-15 09:37:34 +05:30
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
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
ruchirguitar 39fdcd1f25 G12: merge main into swatches context menu branch
Resolve documentation conflicts while preserving both panels' evidence. Integration CI stops at the upstream SVG filter test helper compile error tracked in #7727; original feature CI and deep review passed.
2026-11-15 07:57:04 +05:30
ruchirguitar 61df62bdff Merge remote-tracking branch 'upstream/main' into feat/style-neon-glow
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-15 07:28:31 +05:30
ruchirguitar 6f4a651c00 Swatches: add right-click context menu to swatch items 2026-11-15 07:26:16 +05:30
dotCooCoo 403023f834 Effects: Rough Pastels loads its texture from an image file
The Rough Pastels dialog has a Load Texture… button, as Glass and
Texturizer have. The image's gray levels become the paper surface,
stored with the effect as `textureImage` and listed as Loaded Texture
in the Texture menu; Scaling, Relief, Light Direction and Invert act on
it as on the built-in surfaces. The dialog's Texture and Light
Direction controls are now menus instead of text fields.

effect.apply and effect.setParams read `textureImage` from a file or
take the stored string and refuse anything else, and a plug-in filter
cannot have the host read a file for it.

In the Effect Gallery's Settings, a file dialog that answers later
(the macOS sheet, the Linux dialog) now gives the texture to the values
that asked: the filter being browsed, or the stack row that asked,
found by a number each row now carries. An answer for a removed row, a
filter no longer browsed or a gallery that closed is dropped.

Params text, docs/mcp.md, docs/control-protocol.md, docs/gaps.md and
the evidence line are updated.
2026-11-14 15:45:59 -08:00
ruchirguitar 2a983caef5 G5: preserve current main alongside Tech Circuit
Keep upstream codec and Global Edit work identical to main so only the 38 Tech Circuit feature files remain in the PR diff. Resolve the G5 documentation conflict by preserving completed Global Edit behavior and the Tech Circuit estimate reduction. Fresh deep CodeRabbit review of the exact feature diff passed with zero findings; no full local rebuild repeated.
2026-11-15 02:46:09 +05:30
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
ruchirguitar af64492f1c Graphic Styles: built-in Neon & Glow graphic style library 2026-11-15 01:41:41 +05:30
ruchirguitar 2cd459fde2 G5: integrate current main for Tech Circuit
Preserve current main documentation and translations while keeping the original Tech Circuit brush library. Formatting, all 13 focused brush-library tests, translation-label validation, and a fresh deep CodeRabbit review of all 38 feature files passed. The previous full local CI passed all 13 gates at 1030b7aa7; rely on PR CI for this integration.
2026-11-15 01:34:16 +05:30
ruchirguitar 1030b7aa71 G5: merge current main for Tech Circuit
Preserve Weather Icons and the Tech Circuit library while resolving documentation and Hungarian catalog conflicts. Validated all 13 cargo xtask ci gates on Linux and a fresh deep CodeRabbit review with zero findings.
2026-11-15 00:05:27 +05:30
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
ruchirguitar 415783e926 Symbols: add right-click context menu to panel items 2026-11-14 21:59:45 +05:30
BFlat 31f6a9f15e Merge pull request #7367 from dotCooCoo/fix/ai-calligraphic-samples
.ai import: Calligraphic paths with pen samples keep their drawn look
2026-11-14 20:38:22 +07:00
ruchirguitar 9c787d2cdc Brushes: built-in Tech Circuit brush library
G5: add original procedural circuit art and pattern brushes, library regression coverage, translations, and progress documentation.
2026-11-14 19:00:49 +05:30
dotCooCoo 0397bfa47f Merge main into fix/ai-calligraphic-samples 2026-11-14 02:53:05 -08:00
ruchirguitar 140df22be3 docs: update feature status date and parity revision history for Weather Icons 2026-11-14 15:44:03 +05:30
ruchirguitar 831c477ad6 Symbols: built-in Weather Icons symbol library 2026-11-14 15:43:16 +05:30
BFlat 111ceddb9b Merge pull request #7383 from dotCooCoo/feat/ai-art-brush-options
.ai import and save: Art brushes keep None, their width, scale and flips
2026-11-14 16:54:16 +07:00
Taha-Mahmoodi a3f3805bf3 fix(text): review findings for the Standard composers
Unshaped complex scripts: no joiner boxes, no kashidas or path bending as if joined, a toggle that
keeps shared Standard shaping, a test font fix, and doc wording for the scripts left unshaped.
2026-11-14 13:59:18 +04:30
ruchirguitar f965fd6f4a Merge branch 'upstream/main' into feat/layers-row-context-menu 2026-11-14 09:58:09 +05:30
ruchirguitar 0ff98d0380 feat(layers): implement row context menu and actions
- Add right-click context menu on layer, group, and object rows:
  - Options... / Layer Options... / Options for Selection...
  - Duplicate <name> / Duplicate Selection
  - Delete <name> / Delete Selection
  - Lock Others / Unlock All Layers
  - Hide Others / Show All Layers
  - Locate Object
  - Collect for Export
- Select unselected row on right-click; preserve multiselection if already highlighted
- Dispatch actions via registered engine commands with Undo/Redo tracking
- Add headless egui tests covering selection, dispatch, and state integrity
- Update gaps and ui-parity documentation for G12
2026-11-14 09:47:46 +05:30
dotCooCoo 719e3450b2 .ai import and save: Art brushes keep None, their width, scale and flips
A .ai path with an Art brush opened with the brush on its stroke only
when the brush stretched its art at 100% in Tints, unflipped. Paths with
an Art brush in None, at another fixed width, with Stretch Between
Guides, or flipped along or across now open as the path with the brush
on its stroke too, and the brush in the Brushes panel has those options.
The guides come in as fractions of the art, from the lengths of the art
outside them. A brush with Scale Proportionately comes into the panel
with that option, and its paths keep their drawn look.

Paths keep their drawn look when their settings that change the drawing
differ from the brush's, and when the brush is in Tints and Shades or
Hue Shift, has a width that follows the pen, has guides that leave no
art between them, or has a Spacing, Adjustment or FoldAdjustment other
than 0, 1 and 1.

The .ai save writes the same options, so such brushes and the paths
that use them come back as they were; a path with a proportional brush
is written as its brush's art.
2026-11-13 18:27:54 -08:00
dotCooCoo 7b475b46b0 .ai import: Calligraphic paths with pen samples keep their drawn look
A path's own lines can be followed by samples of the pen
(`(…) Xt n XD`). The reader took them as the end of the object, so the
style marker after them was not matched: the path came in as its drawn
look plus a second, unpainted copy of the path, and no note said the
look was kept. The samples now stay with the path. They aren't read,
so a path that has them keeps its drawn look alone, with the note, when
a setting of its Calligraphic brush varies with the pen (Pressure,
Tilt, Bearing or Rotation, with a variation above 0). With any other
style, an Art brush or a Calligraphic brush that doesn't follow the
pen included, it takes the style as it would without them.

A Calligraphic brush's filter with an entry the reader doesn't know, or
with a variable width, keeps the drawn look too, as an Art brush's
filter does.

Docs: docs/file-format-parity.md, docs/gaps.md.
2026-11-13 17:59:50 -08:00
BFlat 9aa330c475 Merge pull request #7219 from dotCooCoo/fix/docs-layers-row-menu
Docs: Layers row context menu offers Collect for Export
2026-11-14 04:30:49 +07:00
BFlat cf6c666d25 Merge pull request #6980 from addibble/seam-round-joins
3D effects: every facet's seam has round joins
2026-11-14 03:21:49 +07:00
dotCooCoo ae113557be Merge main into fix/docs-layers-row-menu 2026-11-13 11:40:52 -08:00
BFlat aa6d9acc95 Merge pull request #7228 from dotCooCoo/fix/global-edit-docs-type-image-groups
Docs: Global Edit leaves out groups holding type or images
2026-11-14 02:38:55 +07:00
BFlat 38c0f3ed61 Merge pull request #7100 from dotCooCoo/fix/flatpak-clipboard-images
Clipboard: the Flatpak on GNOME copies and pastes pictures and SVG with other apps
2026-11-14 02:38:46 +07:00
Drew Dibble 09d5522785 Merge remote-tracking branch 'upstream/main' into seam-round-joins
# Conflicts:
#	docs/effects-parity.md
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-13 12:29:58 -07:00
BFlat d533018fd5 Merge pull request #7180 from ruchirguitar/feat/6740-type3-named-groups
feat(pdf): preserve Type 3 font text runs as named groups (#6740)
2026-11-14 01:53:02 +07:00
dotCooCoo db047c000e Docs: Global Edit leaves out groups holding type or images
Global Edit does not take images or text, so a group holding type or an
image is not a missing case. docs/gaps.md drops it from G5's Missing
line and states the exclusion next to the similar-groups entry, with
the help page. docs/ui-parity.md states the same exclusion and no longer
lists highlighting the matches before the start as remaining, since it
ships with a regression test. docs/target-app-parity.md gains an
Evidence line.
2026-11-13 10:29:27 -08:00
dotCooCoo 796100e388 Merge main into fix/flatpak-clipboard-images 2026-11-13 09:59:55 -08:00
dotCooCoo 8b0e905586 Docs: Layers row context menu offers Collect for Export
The gap lists and area tables said Layers rows, panels and type have
no context menu. Layer, sublayer, group and object rows offer Collect
for Export for the row or every highlighted row, and right-clicking
type opens the canvas menu. The docs now list what ships and name the
remaining gaps: other row menu commands, guide and blend spine rows,
and panels without a menu. The Layers panel menu list adds Collect for
Export, and SVG Interactivity leaves the missing list.
2026-11-13 09:57:59 -08:00
BFlat e41ef1ea62 Merge pull request #7148 from dotCooCoo/fix/blend-without-spine-widget
Blend: a blend without a spine shows the Appearance widget
2026-11-14 00:51:09 +07:00
ruchirguitar a52890ec0f fix(pdf): blend mode inheritance for Type 3 fallback, CharProcs budget via decoded_within, and docs clarification 2026-11-13 23:00:54 +05:30
Drew Dibble 0654aef75b Merge remote-tracking branch 'upstream/main' into seam-round-joins
# Conflicts:
#	crates/effects/src/solids.rs
#	docs/target-app-parity.md
2026-11-13 10:18:23 -07:00
dotCooCoo 704b5793fc Merge main into fix/flatpak-clipboard-images 2026-11-13 09:09:59 -08:00
ruchirguitar 66513d47fa feat(pdf): preserve Type 3 font text runs as named groups (#6740) 2026-11-13 21:25:10 +05:30
Drew Dibble 00c0e7a7fd Merge remote-tracking branch 'upstream/main' into seam-round-joins
# Conflicts:
#	docs/target-app-parity.md
2026-11-13 07:25:46 -07:00