Commit Graph
2373 Commits
Author SHA1 Message Date
aiongg ca768d0ae4 Merge PR #1024: New Workspace: Capture Panel Locations and Menu Customization, as InDesign's
Conflicts:
- crates/ui-egui/src/dialogs.rs: kept the branch's dialog code and added #1024's New Workspace width, Capture checkboxes and confirm params at the branch's indentation.
- crates/ui-egui/src/i18n.rs, i18n/{ar,de,it,ja,ka,pt_br,uk}.rs: kept both sides.
2026-10-16 04:03:12 +00:00
aiongg 27ac9472f7 Integration: #1083 rename comments name the slow double-click that starts an object's rename 2026-10-16 04:02:40 +00:00
aiongg b1b3d086f7 Merge PR #1083: Layers: a slow double-click renames an object, a quick one only selects, as InDesign's
Conflicts:
- crates/ui-egui/src/panels/layers.rs: kept #378's object_rows and its command list; #1083's slow-click check sits in its click branch (start the rename, or push selection.set), with the sole-selection test on the listing's selected or shown objects; added #1083's accessibility info to the object row.
2026-10-16 04:02:39 +00:00
aiongg b61c7cbcc3 Merge PR #1045: UI: Tab, Shift+Tab and Presentation hide the flyout and floating panels too 2026-10-16 04:01:51 +00:00
aiongg 37bc88d5ed Merge PR #1056: Canvas: pages show their paper while their render is on its way, not black 2026-10-16 04:01:44 +00:00
aiongg 65cee09c5c Merge PR #1065: Styles: show captured color and spacing in Paragraph Style Settings
Conflicts:
- docs/ui-parity.md: kept both paragraphs.
2026-10-16 04:01:40 +00:00
aiongg 141c048289 Integration: #1062 style Preview runs the Justification spacing check OK runs, and shows its reason 2026-10-16 04:01:22 +00:00
aiongg 5857f2d31e Merge PR #1062: Styles: preview paragraph and character style edits before applying them
Conflicts:
- crates/ui-egui/src/dialogs.rs: footer row keeps the branch's labels and #683's New Document Preview and adds #1062's style Preview checkbox at its start; kept style_options_preview() next to the branch's paragraph style dialog; kept both sets of tests.
- docs/ui-parity.md: kept both paragraphs; style-dialog Preview is no longer listed as a gap.
2026-10-16 04:00:32 +00:00
aiongg f6b74fbcd4 Integration: #1060 the Alt-click hint and Apply "name", Clear Overrides are translated in every UI language 2026-10-16 04:00:03 +00:00
aiongg 75875b2e96 Merge PR #1060: Styles: show paragraph overrides and clear them from the row menu
Conflicts:
- crates/engine/src/cmd/text.rs: kept #531's paraMixed report and used #1060's override counts (paraOverrides, charOverrides, characterStyleOverrides) in it.
- crates/ui-egui/src/panels/styles.rs: kept both row-menu items and both sets of tests; #1064's test passes #1060's new `overridden` argument.
- docs/ui-parity.md: kept both paragraphs and both change notes; Redefine Style is no longer listed as a gap (#1064).
2026-10-16 03:59:57 +00:00
aiongg 3896bd2982 Integration: #1064 Redefine Style is translated in every UI language 2026-10-16 03:59:02 +00:00
aiongg 67d597c416 Merge PR #1064: Styles: redefine paragraph and character styles from local formatting
Conflicts:
- crates/engine/src/cmd/style.rs: both add a test module at the top of the file; kept #1061's application_inheritance_tests and #1064's redefine_tests, one after the other.
- docs/ui-parity.md: kept both paragraphs.
2026-10-16 03:58:09 +00:00
aiongg 6f38f5a7b0 Merge PR #1061: Styles: captured text follows later style edits 2026-10-16 03:57:03 +00:00
aiongg ddac0751ff Integration: #1058 delete_pages keeps its doc comment, page_has_items has its own 2026-10-16 03:56:59 +00:00
aiongg f1406df005 Merge PR #1058: Pages: deleting pages that contain objects asks first, with Don't show again
Conflicts:
- crates/ui-egui/src/dialogs.rs: kept the branch's dialog code (wider New Document, Crop Amount, Cell Options) and added #1058's deletePages title, width, body, confirm arm and delete_pages() at the branch's indentation.
- crates/ui-egui/src/i18n.rs, i18n/{ar,de,it,ja,ka,pt_br,uk}.rs: kept both sides.
2026-10-16 03:56:53 +00:00
aiongg 378fe81011 Merge PR #1059: Properties: Edit Page takes the Page tool to the page and sets that page's size, as InDesign's
Conflicts:
- crates/ui-egui/src/i18n.rs, i18n/{ar,de,it,ja,ka,pt_br,uk}.rs: kept both sides.
2026-10-16 03:55:59 +00:00
aiongg 506fe86464 Merge PR #1074: Rulers: the corner where they meet sets both rulers' units; ruler menus as InDesign's
Conflicts:
- crates/ui-egui/src/canvas.rs: #358's separate corner popup (Lock Zero Point) and #1074's corner units menu are one menu: Lock Zero Point heads the RulerMenu::Both menu; #358's test clicks the item by its menu label, #1074's test checks the corner menu lists it.
- crates/ui-egui/src/i18n/{ar,it,ja,pt_br,uk}.rs: kept both sides.
2026-10-16 03:55:32 +00:00
aiongg 6d24b64dd5 Integration: #1073 the Effects dialog test reads the shadow distance with four inch decimals 2026-10-16 03:53:30 +00:00
aiongg 7747b0d396 Merge PR #1073: Units: inches show four decimals, as InDesign's fields (0.1667 in, 8.2677 in) 2026-10-16 03:53:24 +00:00
aiongg 2f017d0826 Merge upstream main a7f3239cf (#1103, #1101) into next
Cargo.lock: next's lock plus main's same-file dependency (regenerated by cargo).
2026-10-16 03:52:20 +00:00
aiongg a7f3239cfb Merge pull request #1103 from skylartaylor/codex/windows-installer-latest-20261014-01
feat(installer): unify Windows setup and completion screens
2026-10-15 23:51:07 -04:00
aiongg 1061c44763 Integration: #325 New Document: mobile presets don't turn on the primary text frame
Primary Text Frame autoflow is still an open gap, and file.new {preset} goes through the same
builder. The TABS doc comment goes back onto TABS; the de and ja rows of the removed
"No saved presets yet" text go.
2026-10-16 03:48:21 +00:00
aiongg a59edb861a Merge PR #325 (new head c96d3e1fa): New Document window
Next keeps its tree (the PR's earlier commits, with #683's Preview on top) plus the PR's two new commits, 3d91e6460 (a tab selects its first preset; Saved starts with [Default]) and c96d3e1fa (the eight-unit Units list; mobile presets turn on the primary text frame).
crates/engine/src/cmd/file.rs, crates/ui-egui/src/dialogs.rs, crates/ui-egui/src/lib.rs: keep next's side (Preview, new_document::create).
crates/ui-egui/src/new_document.rs: next's side plus the two new commits.
crates/ui-egui/src/i18n.rs, i18n/it.rs: next's rows minus the removed "No saved presets yet" text.
docs/target-app-parity.md: keep next's New Document line (with Preview).
ROADMAP.md: the New Document line was already there; keep one.
2026-10-16 03:48:01 +00:00
aiongg b8d3bd57c9 Merge PR #469 (new head 12a41f69d): Document Setup
The PR's commits are next's merged ones rebased onto main; next keeps its tree.
crates/engine/src/cmd/layout.rs: keep c99dbd7d (margins vs parent pages) and next's chapter numbering and tests.
crates/ui-egui/src/dialogs.rs: keep next's side.
crates/ui-egui/src/i18n.rs, i18n/it.rs: keep next's rows; the PR's Document Setup rows are already there.
docs/target-app-parity.md: keep next's side; the Gradients line is already there.
ROADMAP.md: the Document Setup line was already there; keep one.
2026-10-16 03:47:14 +00:00
aiongg f3c65416e3 Merge PR #580 (new head eb4e811b5): portable mode
The PR's commits are next's merged ones rebased onto main; next keeps its tree.
apps/designcraft/src/main.rs: keep next's startup block (status_line, catch_unwind app creator); portable_note set after load_prefs.
README.md: keep next's Portable mode section, then Graphics backend and processor.
2026-10-16 03:47:00 +00:00
aiongg d4e4b9ad13 Merge PR #591 (new head 183feade3): double-click a handle to fit the frame
crates/engine/src/cmd/object.rs: next's side with 069fe47b's auto-size guard, plus the PR's object.fit locked-objects note and the bottom-on-the-last-baseline fit; the reapplied fit_text_frame_tests module dropped, its baseline assertion added to next's copy.
crates/tools/src/select.rs, crates/tools/src/tests.rs: keep next's side.
crates/ui-egui/src/canvas.rs: drop the reapplied duplicate of the handle double-click test.
ROADMAP.md: next's line with the locked-objects note; no second copy.
2026-10-16 03:46:49 +00:00
aiongg 03f3b21f95 Merge PR #342 (new head 0d89d8699): Numbering & Section Options, chapter numbering
The PR's commits are next's merged ones rebased onto main; next keeps its tree.
crates/doc/src/lib.rs: keep next's saturating page_number and MAX_PAGE_NUMBER in page.rs.
crates/engine/src/cmd/layout.rs: keep next's start_number() check, section_start_numbers_are_bounded and Document Setup's refusal.
crates/engine/src/cmd/mod.rs: keep next's side.
crates/ui-egui/src/dialogs.rs: keep next's popup Enter/Escape guard (4e5e040a7).
crates/ui-egui/src/i18n.rs, i18n/it.rs: keep next's rows; the PR's are already there.
docs/target-app-parity.md: the Numbering & Section Options line was already there; keep one.
2026-10-16 03:45:57 +00:00
aiongg 1d35fc92de Merge PR #466 (new head dba8774a1): font menu laid out like the reference
The PR's commits are next's merged ones rebased onto main; next keeps its tree.
ROADMAP.md: the font menu line was already there; keep one.
crates/ui-egui/src/i18n.rs: keep next's New Document rows next to the font menu rows.
crates/ui-egui/src/lib.rs: keep next's UiState fields (recent documents, preview) with the font sample ones.
crates/ui-egui/src/panels/mod.rs: keep next's swatch_picker return value.
docs/ui-parity.md: keep next's IME row.
2026-10-16 03:45:39 +00:00
aiongg faa882503a Merge PR #315 (new head c314ec31d): font fallback retry
crates/fonts/src/tests_sysfonts.rs: the postscript-name test sat at two positions; keep next's.
2026-10-16 03:45:22 +00:00
aiongg c9d8c859ad Merge PR #388 (new head 16e3469f7): rebased onto main; content already in next 2026-10-16 03:45:11 +00:00
aiongg a65bbeacb7 Merge PR #525 (new head a14acea3a): rebased onto main; content already in next 2026-10-16 03:45:11 +00:00
aiongg 344bc4f1e6 Merge PR #618 (new head bfe7ba75b): rebased onto main; content already in next 2026-10-16 03:45:10 +00:00
aiongg c50444926b Merge PR #550 (new head e9d3effe6): rebased onto main; content already in next 2026-10-16 03:45:10 +00:00
aiongg 21c481bf1f Merge PR #255 (new head da7a457c9): rebased onto main; content already in next 2026-10-16 03:45:10 +00:00
aiongg 0cb8baa02c Merge PR #341 (new head a6814bc61): rebased onto main; content already in next 2026-10-16 03:45:10 +00:00
aiongg a9bf4573b2 Integration: cargo fmt 2026-10-16 03:42:21 +00:00
aiongg c119c809e1 Integration: MCP tool schemas list every key their tools forward
The server refuses arguments a tool's schema doesn't list (#803), so keys a
tool passes on must be in its schema. new_document lacked intent, units,
startPage, slug and primaryTextFrame (and bleed's edge array); ui_set lacked
status, documentGrid, controlBar, closePanel and dockExpanded; drag lacked
button and ctrl, and click and drag forwarded each other's keys. A test checks
forwarded keys against the schemas, file.new's params and ui.set's handler.
2026-10-16 03:40:17 +00:00
aiongg 27d7cc87bd Integration: --pdf-options null means no options
main (#731) and next fixed the same panic separately; main reads null as no
options and tests that the export succeeds, next's test listed null among the
errors. The CLI keeps main's reading.
2026-10-16 03:37:53 +00:00
aiongg f419fa2a7a Integration: exported ruler guides are measured from the exported ruler origin
next writes the document's ruler origin (Spread, Page or Spine) to IDML; main
measured guide locations from the spread's left edge, as for SpreadOrigin only.
A page-origin document's guides came back one page width to the right. The
round-trip test covers all three origins.
2026-10-16 03:37:26 +00:00
aiongg 02a0023edc Integration: next's file reads go through the checked readers
main's file guard requires reads to pass the automation roots. Loading styles
from a path, the recent-files check and sniffing a dropped file without an
extension read with std::fs directly; they use the engine's io module.
2026-10-16 03:34:57 +00:00
aiongg 67401dae97 Integration: MCP roots test expects file.save to add the document extension
next's file.save names the file with the .designcraft extension; main's test
looked for the path as given.
2026-10-16 03:33:48 +00:00
aiongg 13d64351fc Integration: book roots test calls paginate and syncStyles without params
next refuses unknown parameters; main's test passed an unused `path` to
commands that take none. Their write-root refusal comes from the chapters.
2026-10-16 03:33:09 +00:00
aiongg ba260c8e39 Integration: duplicateSpread's params doc parses as parameters
next's params parser splits on commas; main's wording put a comma inside the
`to` description. next's wording has none.
2026-10-16 03:32:38 +00:00
aiongg 1caf53f40b Integration: keep-lines IDML tests expect the split main's frame gives
The merge took main's 236 pt test frame (19 lines whatever the last line's
descent) with next's 7/3 expectations, which belong to next's 240 pt frame.
With main's frame the paragraph splits 6/4, as main's tests said.
2026-10-16 03:32:00 +00:00
aiongg fa3d13ae5a Integration: a failed script rolls back instead of leaving an undo step
main rolls a half-run script back (#709); next's #406 test expected the
successful prefix to stay as an undo step. Both keep a partial edit from being
stranded; the script keeps main's rollback, and the test checks that. The
generic partial-failure undo step stays covered by the fillWithPlaceholder test.
2026-10-16 03:31:05 +00:00
aiongg 0209b6781b Integration: .indd and .indt files open through the converter
next converts InDesign files (#808); main's #21 check refused them by extension
before the converter ran. The check goes, and a converter error carries #21's
advice to export IDML.
2026-10-16 03:30:00 +00:00
aiongg a546e371c8 Integration: find.find and find.next accept find.change's keys
The Find/Change dialog and main's find-scope tests send one parameter set
(with change, first, attrs) to Find, Find Next and Change. next's strict
parameter check refused those keys on find.find and find.next, so Find
failed in the dialog. The two commands now name the keys as ignored.
2026-10-16 03:28:53 +00:00
aiongg b1421d53e4 Integration: slices give every endnote and editorial marker a payload
next's extract fills missing payloads with empty notes so the slice is a valid
story; main's test expected the slice to hold only the payloads the source had.
The pasted result is the same either way.
2026-10-16 03:28:14 +00:00
aiongg af086dc145 Integration: the Gradient panel and Swatch Options send CMYK in model form
Main reads bare CMYK as 0..100 (#910), so the fractions both UIs sent turned M 100 % into M 1 %. The {model: cmyk} form takes fractions.
2026-10-16 03:25:55 +00:00
aiongg f7e6ba8f1a Integration: the Text Wrap panel test expects next's Wrap To row after the offsets
Next added Wrap To / Contour Type to the panel on purpose; main's test listed only the offsets.
2026-10-16 03:25:54 +00:00