Commit Graph
1779 Commits
Author SHA1 Message Date
aiongg 946ecf8da8 Integration: #829 Polish table columns, grid columns and a selection's group get their own words (pl::CONTEXT) 2026-10-13 20:06:53 +00:00
aiongg 16c2ac46c6 Merge #829: Polish UI language
# Conflicts:
#	ROADMAP.md
#	crates/ui-egui/src/chrome.rs
#	crates/ui-egui/src/dialogs.rs
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/menus.rs
#	docs/localization-parity.md
#	docs/target-app-parity.md
2026-10-13 20:06:53 +00:00
aiongg 3e92657a4c Integration: #834 simple EPS: token limit counted while reading, \r line ends, gsave/grestore keep the colour, pop pops, paint budget 4x 2026-10-13 20:04:29 +00:00
aiongg 32bee3bab2 Merge #834: Images: EPS shows through its proxy at display time; simple PostScript (QR codes) is drawn
# Conflicts:
#	crates/images/src/lib.rs
2026-10-13 20:04:26 +00:00
aionggandGovinda Roy 06f2648958 Integration: from #833, paragraph rules inherit unstated settings and style names may end in a space
A paragraph style or range that sets only some of a rule's settings (such
as its colour) takes the rest from its paragraph style chain. Nested, line
and GREP style references keep a trailing space when it is part of a
character style's name. The PR's anchored-object and Western leading
changes are not taken (next has its own).

Co-authored-by: Govinda Roy <govindaroy.ofc94@gmail.com>
2026-10-13 20:02:35 +00:00
aiongg 1917f7b253 Integration: #610 a linked text file with a future time is remembered once instead of read on every poll 2026-10-13 20:00:37 +00:00
Jeffrey Thayne b8a95f357d Links: don't trust a linked text file's time while it is still changing
File times are whole seconds (as in Data Merge's fingerprint), so a
same-size change saved within the same second as the last check kept
both size and time, and the Links panel said OK. A size and time are now
only remembered (on place, update, relink, and in the session's check
cache) once the file has been unchanged for two seconds; a file changed
more recently is checked by content on each poll. Found by the Update
Link dialog test, which rewrites a file within the same second; the
polling test now also changes a file twice in one second.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 0541f36795)
2026-10-13 19:58:22 +00:00
Jeffrey Thayne d1fddc0ae8 Links: only read a linked text file when its size or time changed
The Links panel lists links about twice a second, and each listing
hashed every linked text file. A linked text file now also remembers
its modification time (as Data Merge does for its source, through the
same size-and-time fingerprint): while size and time match, it isn't
read. A different size is Modified without reading. When only the time
changed, the content hash still decides (a file saved or synced again
without changes stays OK), and the session remembers that check by
size and time, so the next poll doesn't read the file again. Update and
Relink record the size and time from before their read. Test: polls of
an unchanged file don't read it (it is made unreadable), a touched but
unchanged file is read once and stays OK, a changed file is Modified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 7b33c981dc)
2026-10-13 19:58:21 +00:00
aiongg 7f0d7f1f32 Merge t13-moppeeer: #253 #832 #753 #754 (a3b97165) #588
# Conflicts:
#	ROADMAP.md
#	crates/idml/src/tests.rs
2026-10-13 19:57:37 +00:00
aiongg a4ec5b31d6 Merge t13-gradients: gradient PRs #765 #763 #826 #823 #825 2026-10-13 19:55:40 +00:00
aiongg 72d7ea2e82 Integration: #823 a linear gradient across a straight line runs along its length, on screen and in PDF alike 2026-10-13 19:49:32 +00:00
aiongg 82c94c7270 Integration: cargo fmt 2026-10-13 19:40:32 +00:00
aiongg 430012cd62 Integration: #588's test reads pixels with as_chunks (clippy) 2026-10-13 19:40:16 +00:00
aiongg b3551e3ce6 Integration: #588 CMYK ink passes cull items to the area they cover 2026-10-13 19:37:52 +00:00
aiongg 6039be0526 Merge #588: CMYK blend space: blend modes blend in CMYK on screen
# Conflicts:
#	ROADMAP.md
#	crates/render/src/fx.rs
#	crates/render/src/lib.rs
2026-10-13 19:37:18 +00:00
aiongg 66146fd866 Integration: #754 IDML keeps Basic Feather choke and corners (FeatherSetting ChokeAmount, CornerType); zh Sharp is 锐利 2026-10-13 19:35:14 +00:00
aiongg 9b605cecd9 Integration: cargo fmt 2026-10-13 19:33:55 +00:00
moppeeer 58b9950fb6 feat(effects): Inner Glow mode and technique; Basic Feather choke and corners
InDesign's Effects dialog sets an Inner Glow's blend Mode (Screen by
default) and Technique (Softer or Precise), and a Basic Feather's Choke
and Corners (Sharp, Rounded, Diffused). LYH Studio episode 14 shows them
at 12:05–12:20 (Screen 75 %, Softer, 0.25 in; 0.0625 in, Diffused).

- doc: InnerGlow.mode and .technique (GlowTechnique), Effects.
  feather_options (FeatherOptions: choke %, FeatherCorners), with
  InDesign's defaults; old documents read as before.
- render: the glow uses its mode; Precise keeps it nearer the edge; the
  feather's choke shortens the fade, Sharp and Rounded corners follow
  the shape more tightly or softly than Diffused (unchanged, so the
  goldens stay).
- render fix: an inner glow's (and a bevel's) blend mode was applied
  inside the clip layer, against its empty backdrop, so Screen and
  Multiply acted as Normal; the blend layer now wraps the finished edge
  and mixes with the object below.
- engine: choke clamped to 0–100; the params documented.
- Effects dialog: Mode and Technique on Inner Glow; Choke and Corners on
  Basic Feather; strings translated.

Builds on #643 (the Effects dialog).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit a3b971654f)
2026-10-13 19:33:40 +00:00
aiongg 14e98419ad Integration: #825 PDF table-cell and footnote text lays a gradient across its own lines, as on screen 2026-10-13 19:33:08 +00:00
aiongg 977b4b26f3 Integration: #753 Fixed Width columns resize the frame to fit them; columnWidth and firstBaselineMin are range-checked 2026-10-13 19:32:38 +00:00
aiongg 1907d14699 Merge #753: Text Frame Options laid out as InDesign's: columns type and width, inset link, Ignore Text Wrap, Baseline Options 2026-10-13 19:31:44 +00:00
aiongg 1847b8cef5 Merge #825: Gradient swatches on text, laid across the text frame
# Conflicts:
#	ROADMAP.md
#	crates/pdf/src/export.rs
#	crates/pdf/src/text.rs
#	crates/render/src/text.rs
#	docs/target-app-parity.md
2026-10-13 19:30:47 +00:00
aiongg 6db40bdbb5 Integration: #823 a radial gradient on a box with no width or height is a circle across it 2026-10-13 19:29:28 +00:00
aiongg 42f000e95a Merge #832: Window menu in InDesign's order; Window > Workspace with Essentials Classic
# Conflicts:
#	ROADMAP.md
#	crates/ui-egui/src/chrome.rs
#	crates/ui-egui/src/dock.rs
#	crates/ui-egui/src/menus.rs
2026-10-13 19:28:59 +00:00
aiongg f60eb24656 Merge #823: Gradient strokes: on screen, in PDF, in IDML and the Gradient panel
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/object.rs
#	crates/engine/src/cmd/style.rs
#	crates/idml/src/tests.rs
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/ar.rs
#	crates/ui-egui/src/i18n/it.rs
#	crates/ui-egui/src/i18n/ja.rs
#	crates/ui-egui/src/i18n/pt_br.rs
#	crates/ui-egui/src/i18n/uk.rs
#	crates/ui-egui/src/panels/swatches.rs
#	docs/target-app-parity.md
2026-10-13 19:28:11 +00:00
aiongg 7f940dc4f8 Merge #253: Integrate Windows window controls into the menu bar
# Conflicts:
#	apps/designcraft/src/main.rs
#	crates/ui-egui/src/chrome.rs
#	crates/ui-egui/src/lib.rs
#	crates/ui-egui/src/menus.rs
#	crates/ui-egui/src/theme.rs
2026-10-13 19:27:09 +00:00
aiongg ba95ae2dae Integration: #826 grey stops keep their value (model form); a stale ramp drag can't index past the stops 2026-10-13 19:26:54 +00:00
aiongg da8aaa9cdc Merge #826: Gradient panel layout; drop swatches from the Swatches panel onto its stops
# Conflicts:
#	ROADMAP.md
#	crates/ui-egui/src/panels/swatches.rs
#	docs/target-app-parity.md
2026-10-13 19:25:12 +00:00
aiongg aad9db158f Integration: #763 New Swatch with nothing selected makes a colour swatch in the engine; the panel sends the Fill/Stroke target 2026-10-13 19:24:47 +00:00
aiongg 0c45a8420f Merge t13-epub: EPUB/HTML export PRs #785 #787 #783 #789 #779 #780 #782 #791 #121 2026-10-13 19:23:54 +00:00
aiongg fce28331ec Merge #763: New Swatch names a gradient "New Gradient Swatch"; gradient swatches from colour swatches
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/style.rs
#	docs/target-app-parity.md
2026-10-13 19:23:33 +00:00
aiongg 0011cfee95 Integration: the grouped reading-order test finds its image by alt text (#785 writes no file name) 2026-10-13 19:23:22 +00:00
aiongg 9d5d341a7d Merge #765: Radial gradients stretch with the object's box (an ellipse) 2026-10-13 19:21:58 +00:00
aiongg 694878463c Integration: cargo fmt 2026-10-13 19:16:58 +00:00
aiongg a8e0af254f Integration: #816's test checks for color.sample by name (the tool also passes matchFrom) 2026-10-13 19:16:49 +00:00
aiongg a6621723b9 Merge #121: README: install on Gentoo from the ::snakebyte overlay
# Conflicts:
#	contributors/people.toml
2026-10-13 19:16:01 +00:00
aiongg 0b353c6f57 Integration: #791 points note links at the chapter file of their target 2026-10-13 19:15:53 +00:00
aiongg e12fa9ba2d Merge #791: EPUB: one content file per chapter, split before each h1
# Conflicts:
#	crates/epub/src/lib.rs
2026-10-13 19:15:22 +00:00
aiongg bc9b89fc68 Integration: #782 nests a heading under its parent when it is shallower than the heading before it 2026-10-13 19:14:29 +00:00
aiongg 1486f82212 Merge #782: EPUB: the navigation lists the headings, with a title in the book's language
# Conflicts:
#	crates/engine/src/cmd/export.rs
#	crates/epub/src/lib.rs
2026-10-13 19:14:13 +00:00
aiongg c3b3927ef2 Integration: #780 closes an open list or pre block before a footnote or a table 2026-10-13 19:12:37 +00:00
aiongg efbd516ee7 Merge #780: EPUB/HTML: list paragraphs share one ul/ol, and pre lines one block
# Conflicts:
#	crates/epub/src/lib.rs
2026-10-13 19:12:15 +00:00
aiongg d6ecd3d2b4 Merge #779: EPUB/HTML: anchored objects are exported where they are anchored
# Conflicts:
#	crates/epub/src/lib.rs
2026-10-13 19:11:12 +00:00
aiongg 033611d518 Integration: cargo fmt 2026-10-13 19:09:21 +00:00
aiongg 6477435e81 fix(transform): rotate and flip turn about the chosen reference point 2026-10-13 19:08:36 +00:00
aiongg ee2c450829 Merge #789: Styles: name the attributes in the params docs, and a wrong one in the command's error
# Conflicts:
#	crates/engine/src/cmd/style.rs
2026-10-13 19:07:52 +00:00
aiongg 258fd2d7c9 Integration: CMYK TIFFs with alpha report their pixel size (from #830) 2026-10-13 19:07:39 +00:00
aiongg 891e29ea92 Integration: #816's test (eyedropper ignores inactive states of a multi-state object) 2026-10-13 19:07:03 +00:00
aiongg 6eae3620ed Integration: #783 reads the cover image with a size cap (256 MiB), devices included 2026-10-13 19:07:02 +00:00
aiongg 3cb3f342c8 Integration: #812's test (overset preflight names the page of a frame in a moved group) 2026-10-13 19:07:02 +00:00