Commit Graph
3279 Commits
Author SHA1 Message Date
dotCooCoo abc794396b Layers: Duplicate Layer gives tables in copied cells and notes ids of their own
Tables inside a copied table cell or note kept the original table's id, so
two tables in the document shared one id. Duplicate Layer now renumbers
them at every depth, with the paragraphs that hold them.
2026-10-26 02:15:28 -07:00
dotCooCoo f5fb8e8709 Merge main into feat/duplicate-layer 2026-10-26 01:19:52 -07:00
dotCooCoo 99083a76d4 Layers: Duplicate Layer copies hyperlinks on the copied objects and text
Duplicate Layer copied a layer's objects and stories but not the
hyperlinks on them, so the copies had no links. Each hyperlink whose
source is a copied object or a copied story now gets a copy with an id
of its own, pointing at the copy and going to the same destination.
2026-10-26 01:18:05 -07:00
aiongg ed8aabd1dc Shortcut edits wait for the Keyboard Shortcuts dialog; the menu bar owns a user's Paste in Place chord (#1854) 2026-10-26 00:18:17 -04:00
aiongg f8c633033d Separations Preview: the UI thread separates one sheet per frame (#1853) 2026-10-26 00:17:38 -04:00
aiongg 48c9221137 Merge pull request #1410 from aiongg/keymap-shortcuts-dialog
Shortcuts: the shared craft-keymap Keyboard Shortcuts dialog, with shortcut sets
2026-10-25 23:47:00 -04:00
aiongg 0ef2e88d57 Merge pull request #1298 from aiongg/keymap-adoption
Keyboard shortcuts on the shared craft-keymap crate: panel shortcuts, editable tool keys
2026-10-25 23:30:48 -04:00
aiongg f6fe64981a Merge branch 'keymap-adoption' into keymap-shortcuts-dialog
# Conflicts:
#	Cargo.toml
2026-10-26 03:29:29 +00:00
aiongg ae732c3a90 Pin the export time in the page-list export test (#1850) 2026-10-25 23:20:52 -04:00
aiongg ea5a706ef8 Merge remote-tracking branch 'upstream/main' into keymap-adoption
# Conflicts:
#	Cargo.lock
2026-10-26 03:15:52 +00:00
aiongg ace557ca97 Merge pull request #1375 from aiongg/print-color-separations
Print color: Separations Preview shows the exported PDF's plates, spot plates included
2026-10-25 22:48:15 -04:00
aiongg 3b732f946a Keep ui.json when its shortcut sets can't be read 2026-10-26 02:37:19 +00:00
aiongg a138e1f010 Separations Preview keeps every visible sheet; a superseded job is no longer pending 2026-10-26 02:31:06 +00:00
aiongg 3fc0bf83fd Merge branch 'keymap-adoption' into keymap-shortcuts-dialog
# Conflicts:
#	Cargo.toml
#	xtask/src/pdf_deps.rs
2026-10-26 02:06:51 +00:00
aiongg 23173b9065 Merge remote-tracking branch 'upstream/main' into keymap-adoption
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	xtask/src/pdf_deps.rs
2026-10-26 02:06:25 +00:00
aiongg 2e6df922c8 Merge remote-tracking branch 'upstream/main' into print-color-separations
# Conflicts:
#	Cargo.lock
#	crates/engine/src/cmd/export.rs
2026-10-26 02:05:49 +00:00
aiongg 7cc4f7111c Merge pull request #1384 from aiongg/print-color-x1a
Print color: PDF/X-1a export through craft-prepress's flattener
2026-10-25 21:59:30 -04:00
aiongg 3c19a24e68 Merge pull request #1374 from aiongg/print-color
Print color: overprint, knockout, CMYK blending and spot gradients through craft-pdf
2026-10-25 21:58:20 -04:00
aiongg c74388c4f9 Merge branch 'keymap-adoption' into keymap-shortcuts-dialog 2026-10-26 01:40:57 +00:00
aiongg 4905555956 Merge remote-tracking branch 'upstream/main' into keymap-adoption
# Conflicts:
#	crates/ui-egui/src/menus.rs
#	crates/ui-egui/src/shortcut_import.rs
2026-10-26 01:40:20 +00:00
aiongg ada39e78d7 Keyboard Shortcuts: Assign takes a held shortcut in one step (craft-libs#352) 2026-10-26 01:39:22 +00:00
aiongg c6444a0471 A command's other shortcuts run while the macOS menu bar holds its first 2026-10-26 01:39:22 +00:00
Dylan M. Taylor 63a4f687fb Reduce cognitive complexity in UI dialogs, canvas, chrome, shortcut import and IDML export (#1848)
* refactor(ui): split shortcut set import into sort, apply and conflict steps

Resolves SonarCloud rust:S3776 on import (ui-egui/src/shortcut_import.rs).

* refactor(ui): split drop caps and nested styles dialog into row helpers

Resolves SonarCloud rust:S3776 on drop_caps_and_nested_styles (ui-egui/src/dialogs.rs).

* refactor(ui): split draw_guides into bleed, grid, overlay and guide helpers

Resolves SonarCloud rust:S3776 on draw_guides (ui-egui/src/canvas.rs).

* refactor(ui): split control_paragraph into alignment, indent, drop cap and shading helpers

Resolves SonarCloud rust:S3776 on control_paragraph (ui-egui/src/chrome.rs).

* refactor(idml): move graphic layer option tree out of image_el

Resolves SonarCloud rust:S3776 on image_el (idml/src/export.rs).
2026-10-25 21:25:57 -04:00
Dylan M. Taylor 42463ce99d Reduce cognitive complexity in variables, PDF graphics, compose frames and menu shortcuts (#1847)
* refactor(engine): split convert_all's per-story plan into convert_plan

Resolves SonarCloud rust:S3776 on convert_all (cmd/variables.rs).

* refactor(pdf): split graphic_unclipped into per-kind helpers

Resolves SonarCloud rust:S3776 on graphic_unclipped (pdf/src/export.rs).

* refactor(compose): extract wrap exclusions and frame text area from frame_specs_placed

Resolves SonarCloud rust:S3776 on frame_specs_placed (compose/src/lib.rs).

* refactor(ui): extract command shortcut lookup from shortcut_key

Resolves SonarCloud rust:S3776 on shortcut_key (ui-egui/src/menus.rs).
2026-10-25 21:25:52 -04:00
Dylan M. Taylor e413cdf59b Reduce cognitive complexity in find, lists, PDF font/layer scans; fix wildcard import (#1846)
* test(pdf): replace wildcard super import in registration_tests

Resolves SonarCloud rust:S2208 (new code).

* test(engine): extract child-scope rejection assertions in find tests

Resolves SonarCloud rust:S3776 on find_scope_children_error_atomically_and_parent_requests_stay_top_level.

* refactor(engine): extract per-paragraph list update from apply_list

Resolves SonarCloud rust:S3776 on apply_list.

* refactor(pdf): extract form scanning from FontScan::content

Resolves SonarCloud rust:S3776 on FontScan::content (pdfx/fonts.rs).

* refactor(pdf): extract layer helpers from optional_content::prepare

Resolves SonarCloud rust:S3776 on prepare (optional_content.rs).
2026-10-25 21:25:48 -04:00
aiongg d28271b489 Merge branch 'keymap-adoption' into keymap-shortcuts-dialog
# Conflicts:
#	Cargo.lock
#	Cargo.toml
2026-10-26 01:16:37 +00:00
aiongg 1a52593d0d Merge remote-tracking branch 'upstream/main' into keymap-adoption
# Conflicts:
#	Cargo.toml
2026-10-26 01:15:41 +00:00
aiongg 39746cbff9 Place the Separations panel in the default icon groups 2026-10-26 01:15:10 +00:00
aiongg d90881a8a9 Merge branch 'print-color' into print-color-separations
# Conflicts:
#	Cargo.toml
2026-10-26 01:11:35 +00:00
aiongg c856db68f1 Merge branch 'print-color' into print-color-x1a
# Conflicts:
#	Cargo.toml
2026-10-26 01:11:11 +00:00
aiongg 240dbcf731 Merge remote-tracking branch 'upstream/main' into print-color
# Conflicts:
#	Cargo.toml
#	crates/idml/src/export.rs
2026-10-26 01:10:39 +00:00
aiongg e91f830116 chore(deps): safe dependency refresh (#1844)
cargo update with semver-compatible updates only. Git dependencies keep their revisions (indd stays at 7f3060e5).
2026-10-25 20:54:46 -04:00
dotCooCoo 3a66ded844 Merge main into feat/duplicate-layer 2026-10-25 15:26:26 -07:00
dotCooCoo d11a050a67 Layers: Duplicate Layer numbers copies in story order and is translated
Duplicate Layer gave the copied stories' tables and anchored objects
their new ids in hash-map order, so the ids differed from run to run.
It now takes the stories in order. The Layers panel's "Duplicate Layer"
menu item has a row in every interface language.
2026-10-25 15:26:23 -07:00
Dylan M. Taylor 18246dddd2 build: pin craft-update to craft-libs main (495e597) (#1837)
Picks up the startup prompt without the glyphs a font may lack (storytold/craft-libs#343, #344): the close mark is painted and the version pill is ASCII, so apps that panic on a missing glyph no longer take the prompt down.

Part of tracking issue storytold/craft-libs#319
2026-10-25 17:55:34 -04:00
Dylan M. TaylorandClaude Sonnet 5.5 3eeab5aead refactor(engine): reduce complexity in path join and paragraph style apply (Sonar) (#1729)
* refactor(engine): split join_paths and apply_para (Sonar S3776)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(engine): use the resolved style types in apply_para_in_story

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Pass the resolved styles by reference at the call site

* Drop the range binding the call no longer uses

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 17:48:35 -04:00
Dylan M. TaylorandClaude Sonnet 5.5 cf45e33545 refactor(ui): reduce cognitive complexity in swatches, properties, canvas, lib (Sonar S3776) (#1727)
* refactor(ui): extract helpers from swatches, properties, canvas and app logic (Sonar S3776)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(ui): drop unused variable after extraction

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Use scope_id for the flex grid's interaction id

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 17:46:29 -04:00
Dylan M. TaylorandClaude Sonnet 5.5 8e77e8db2d refactor: split complex functions in swatch_refs, xlsx, render group drawing (Sonar S3776) (#1733)
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 17:33:59 -04:00
dotCooCoo 8522253d74 Merge main into feat/duplicate-layer 2026-10-25 14:24:49 -07:00
Dylan M. Taylor 5478eb655e Import the panel-docking helpers the test module uses from its parent
panel_docking_tests is a child module of panel_docking, so every helper it
calls lives in super; list them instead of the wildcard the sweep removed.
2026-10-25 17:00:59 -04:00
Dylan M. Taylor 165cbbbff1 rustfmt the added import list 2026-10-25 16:54:34 -04:00
Dylan M. Taylor 98ada498d5 Fix the imports the explicit-import refactor missed
The Sonar S2208 sweep replaced use super::* with explicit lists, but
tests_ime.rs and panel_docking_tests.rs use helpers added after it was
written, so main stopped compiling.
2026-10-25 16:49:17 -04:00
dotCooCoo 20ab8b39e7 Layers: Duplicate Layer copies a layer's settings and objects above it
layer.duplicate adds "<name> copy" above a layer, with the layer's
settings, a copy of every object on it and copies of its ruler guides,
on document and parent pages, in one undo step. Copied text frames stay
threaded to the copies of frames on the same layer and are not threaded
to frames on other layers. The anchored objects in a copied story get
new ids, and so do its tables and its text anchors outside table cells
and notes; its cross-references point at the copied anchors. A group
goes on the new layer with all its members, and a copied live caption
follows the copied object. A copied override of a parent item overrides
that item's copy, and is detached when the parent item is on another
layer. Pages hide a parent item's copy where they hide the parent item.
A layer whose objects nest more than 64 levels deep is refused.

The Layers panel runs it from a layer's context menu (Duplicate Layer
"<name>") and when a layer is dropped on Create New Layer.
2026-10-25 13:40:21 -07:00
Dylan M. Taylor 4322609d4b Merge pull request #1722 from storytold/sonar/engine-datamerge
refactor(engine): data merge complexity and parameter counts (Sonar)
2026-10-25 16:31:23 -04:00
Dylan M. Taylor 0e83233c97 Merge pull request #1737 from storytold/sonar/idml-c
refactor(idml): import graphics and table cell helpers (Sonar S3776)
2026-10-25 16:31:14 -04:00
Dylan M. Taylor 781bec49de Merge pull request #1736 from storytold/sonar/s3776-a4
refactor: reduce cognitive complexity in epub table and pdf frame text (Sonar S3776)
2026-10-25 16:30:47 -04:00
Dylan M. Taylor a4143e031a Merge pull request #1735 from storytold/sonar/engine-d
refactor(engine): reduce complexity in find.change and used_fonts (Sonar)
2026-10-25 16:30:36 -04:00
Dylan M. Taylor 6227c4f1c8 Merge pull request #1730 from storytold/sonar/idml-b
refactor(idml): graphic part and spread import helpers (Sonar)
2026-10-25 16:30:25 -04:00
Dylan M. Taylor 19bc14fe03 Merge pull request #1718 from storytold/sonar/s1612-b
chore: method paths for remaining closures (Sonar S1612)
2026-10-25 16:30:13 -04:00
Dylan M. Taylor 05e5f17913 Merge pull request #1717 from storytold/sonar/s2208-a
chore: explicit imports in test modules (Sonar S2208)
2026-10-25 16:29:55 -04:00