Commit Graph
1825 Commits
Author SHA1 Message Date
aiongg cd317a235a Merge #553: docs: add user docs in docs/user 2026-10-13 22:36:18 +00:00
aiongg 0c965691b6 Merge #858: macOS DMG: hdiutil create -srcfolder, so the installed app passes codesign --strict 2026-10-13 22:36:17 +00:00
aiongg 283d04e14f Integration: #859 drop the control-channel safety note from the editing gap, which lists missing features 2026-10-13 22:36:08 +00:00
aiongg 450bee203a Merge #859: Control: bound click and drag input before queuing events 2026-10-13 22:36:03 +00:00
aiongg b98d1521df Merge #855: fix: repaint canvas when entering and leaving parent editing 2026-10-13 22:35:26 +00:00
aiongg 7f8eb704c8 Merge #853: Compose: cross-reference index no longer rebuilds itself 2026-10-13 22:34:26 +00:00
aiongg 4989cc6e27 Merge #849: Canvas: baseline grid draws only the lines on the page 2026-10-13 22:34:13 +00:00
aiongg e94e04fb6e Merge #837: Preferences: Story Editor size stays finite and in range 2026-10-13 22:31:39 +00:00
Tomasz Lewandowski bac3841e35 i18n(pl): translate Story as "wątek", keep "artykuł" for Article
Story and Article both read "artykuł", so the Story Editor and the
Articles panel looked the same. Story is now "wątek" (Edytor wątków),
the usual Polish DTP term; Article stays "artykuł".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DukHNvUY45rjRnvtz91x33
(cherry picked from commit 951496c4f1)
2026-10-13 22:31:06 +00:00
aiongg 896929c5c0 Integration: remove a stray merge backup of dialogs.rs 2026-10-13 22:30:57 +00:00
Andreas Haraminac 5024ed8870 #732: bound control-channel click and drag event queues 2026-10-13 21:55:44 +00:00
Daniel van LithandClaude Opus 5.5 1e153c5c45 macOS DMG: hdiutil create -srcfolder, so the app inside passes codesign --strict
makehybrid -hfs gave every file in the image a com.apple.FinderInfo, so the app in the
DMG, and a copy installed from it, failed codesign --verify --strict --deep ("resource
fork, Finder information, or similar detritus not allowed"), though Gatekeeper accepts
it. Build the image as VectorCraft (#1085) and PdfCraft (#823) do now: hdiutil create
-srcfolder with a few tries for CI's "Resource busy", and verify the mounted app with
--strict --deep so the regression can't ship again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:36:52 +13:00
harrisonoconnorhover 2d07bc5295 fix: refresh canvas when switching parent editing 2026-10-13 17:28:38 -04:00
noah1400 1bddba0e75 Compose: cross-reference index no longer rebuilds itself (#851)
The cross-reference index composed its destination stories through
the cache. One with a running header asked for the running-header
index, which composed the story holding the cross-reference, which
asked for the cross-reference index again: the stack overflowed and
the app aborted. Destination stories with a running header are now
composed without it, like those with cross-references already were.
2026-10-13 23:07:21 +02:00
aiongg b141bc335f Integration: renaming or deleting a paragraph style also updates the table of contents' entry and title styles (#755) 2026-10-13 20:46:27 +00:00
aiongg e19b6b1fd9 Merge toc-dialog: Table of Contents dialog, entry options and IDML TOC styles (#755)
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/tests_idml.rs
#	crates/idml/src/import.rs
#	crates/ui-egui/src/dialogs.rs
2026-10-13 20:44:30 +00:00
aiongg 129adfa429 Layout: Table of Contents dialog with entry styles, page number position and IDML TOC styles (#755) 2026-10-13 20:41:56 +00:00
Fabio LussiandClaude Opus 5.5 a134dbb056 Drop the root AGENTS.md docs rule; keep the PR to docs/user/
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:37:33 +02:00
aiongg d5c26cc781 Merge t13-commands: #764 #757 #802 #803
# Conflicts:
#	crates/engine/src/cmd/object.rs
2026-10-13 20:28:49 +00:00
aiongg da8a3daa8c Integration: #803 layout.marginsAndColumns' parent note in parentheses, so its description parses 2026-10-13 20:26:51 +00:00
noah1400 3539a72b2f Canvas: baseline grid draws only the lines on the page (#844)
The grid was walked from its start, one line per step, with no
bound. A start far above the page (from document.preferences, a
saved file or an IDML package) made the next frame draw lines until
the app ran out of memory. The lines are now the ones inside the
page, found without walking those above it, and never more than one
per point of the tallest page.
2026-10-13 22:23:48 +02:00
aiongg 3911c60a24 Integration: #610 the web build doesn't import the file fingerprint it never uses 2026-10-13 20:21:24 +00:00
aiongg 0278f6bbea Integration: cargo fmt 2026-10-13 20:16:12 +00:00
aiongg d03b17ef56 Integration: #803 guide.add, layout.marginsAndColumns, layout.numberingOptions and file.savePreset describe every param they take 2026-10-13 20:15:59 +00:00
aiongg b9060d0350 Merge #803: Refuse command params the description doesn't name
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/file.rs
#	crates/engine/src/cmd/mod.rs
#	crates/engine/src/cmd/object.rs
#	crates/engine/src/cmd/prefs.rs
#	crates/engine/src/cmd/table.rs
#	crates/engine/src/lib.rs
2026-10-13 20:13:51 +00:00
aiongg acb63fe198 Integration: #802 the start screen and Open Recent menu look recent files up on disk at most every 3 s, not every frame 2026-10-13 20:12:43 +00:00
aiongg 548d700b9f Integration: #802 a document that can't be serialized fails Save and Save a Copy instead of writing an empty file; Open Recent's alert names the file without an undocumented param 2026-10-13 20:08:28 +00:00
aiongg 65f0310fbe Integration: cargo fmt 2026-10-13 20:08:19 +00:00
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 c6921a77cb Merge #802: File › Open Recent: recent documents in the menu and on the start screen
# Conflicts:
#	ROADMAP.md
#	apps/designcraft/src/native_menu.rs
#	crates/engine/src/cmd/file.rs
#	crates/engine/src/cmd/mod.rs
#	crates/engine/src/cmd/prefs.rs
#	crates/engine/src/lib.rs
#	crates/format/src/lib.rs
#	crates/ui-egui/src/dialogs.rs
#	crates/ui-egui/src/menus.rs
#	docs/target-app-parity.md
2026-10-13 20:06:29 +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
aiongg 06cbcc0058 Integration: #757 the Plus key standing in for = zooms the canvas under a native menu too (#781) 2026-10-13 20:03:39 +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
aiongg 477b8b27f8 Merge #757: Cmd/Ctrl + the + key zooms the canvas, not the whole window
# Conflicts:
#	crates/ui-egui/src/lib.rs
#	crates/ui-egui/src/menus.rs
2026-10-13 19:58:26 +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 6ec31fde95 Merge #764: Swatches: dropping an .ase file on the window loads its swatches
# Conflicts:
#	ROADMAP.md
#	crates/ui-egui/src/lib.rs
2026-10-13 19:56:32 +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