chore: sync upstream (401 Commits) #11
No reviewers
Labels
No labels
herkunft/alpha-feedback
status
blockiert
status
zu-testen
typ
bug
typ
docs
typ
enhancement
typ
feature
typ
idea
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
iris/designcraft!11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/sync-upstream-20261026"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Upstream-Sync von
upstream/main(401 Commits). Fast-Forward.ed8aabd1Shortcut edits wait for the Keyboard Shortcuts dialog; the menu bar owns a user's Paste in Place chord (#1854)f8c63303Separations Preview: the UI thread separates one sheet per frame (#1853)48c92211Merge pull request #1410 from aiongg/keymap-shortcuts-dialog0ef2e88dMerge pull request #1298 from aiongg/keymap-adoptionf6fe6498Merge branch 'keymap-adoption' into keymap-shortcuts-dialogae732c3aPin the export time in the page-list export test (#1850)ea5a706eMerge remote-tracking branch 'upstream/main' into keymap-adoptionace557caMerge pull request #1375 from aiongg/print-color-separations3b732f94Keep ui.json when its shortcut sets can't be reada138e1f0Separations Preview keeps every visible sheet; a superseded job is no longer pending3fc0bf83Merge branch 'keymap-adoption' into keymap-shortcuts-dialog23173b90Merge remote-tracking branch 'upstream/main' into keymap-adoption2e6df922Merge remote-tracking branch 'upstream/main' into print-color-separations7cc4f711Merge pull request #1384 from aiongg/print-color-x1a3c19a24eMerge pull request #1374 from aiongg/print-colorEdit > Keyboard Shortcuts gets Import InDesign Set..., which reads the .txt that InDesign's Show Set writes (window.importShortcuts {path|text}). Matched commands take the set's Default shortcut, or lose theirs when every occurrence says [none defined]; other commands give up keys the set takes. The report lists changes, cleared conflicts, and the items that could not be matched or read. Tool keys stay fixed.The shortcut model, dispatch and storage move onto the shared craft-keymap crate. The catalogue is built from UI_COMMANDS, the engine command specs, the panels (window.panel {panel}) and the tools (tool.select {tool}, one group per Tools-panel group), with menu paths from the menu tree. - Dispatch goes through craft_keymap::egui::Dispatcher; presentation keys, Esc-to-selection, Clear and the native-menu skip stay app-side, and the clipboard events stay with the canvas. - Panels take InDesign's default keys where DesignCraft leaves them free. - Tool keys are editable; tools sharing a key take turns. - ui.json keeps its shortcuts as craft-keymap Overrides; the map form older versions saved loads unchanged. - window.setShortcut accepts params (panels), tool ids and steal; the Keyboard Shortcuts dialog lists panels and tools and moves recorded keys.A stop can name a colour swatch (spot, process, tint, [Paper]) next to its display colour. swatch.create {gradient}, object.gradient, the Gradient panel and IDML StopColor keep the reference; renames follow it, swatch edits refresh the stop's colour and a deleted swatch leaves a plain colour. The field is optional and omitted for plain stops, so saved documents load and save as before.File › File Info… opens a dialog with Document Title, Author, Description, Keywords, Copyright Notice and Copyright Info URL, and the document saves them. The new file.info command reads them with {} and sets the fields it is given; "" or null clears a field, and keywords are a list or one line split at semicolons and commas. file.info.get returns the fields without editing the document, so opening the dialog does not end a Data Merge preview. Export PDF, PDF/X-4 and Print Booklet write the title, author, description and keywords into the PDF's document information and XMP. EPUB export takes the title and author from File Info, and HTML export takes the title. A title or author given to the export replaces File Info's, and an empty Document Title leaves the document's name as the title. Export PDF's dialog no longer sends the document's name as the PDF title, so the PDF takes its title from File Info; the file name still comes from the document's name.The importers each had their own spelling of "is this a number we can use", or only checked that it was finite. Measured before the change: <cSize:1e300> -> Some(1e300) pt tagged text <cSize:-5> -> Some(-5.0) pt <cSize:0> -> Some(0.0) pt w:spacing before=1e300 -> 5e298 pt indent DOCX DC-12 asks for a shared clamp helper used by every importer, so there are two in `doc::attrs`, beside the tab limits: * `imported_type_size` drops a size the engine cannot mean, so the text keeps the size its style gives it -- which is what RTF and DOCX already did. * `imported_measure` clamps an indent, spacing or offset to the widest page. Clamped rather than dropped on purpose: a file that says "indent everything" still indents as far as the engine goes, where dropping would quietly restore the style's own indent and hide what the file asked for. Both are now used by tagged text, DOCX runs and paragraphs, DOCX numbering levels and RTF -- the last two had the 0.1-1296 pt range as a literal, which is the duplication that let tagged text drift. Control: with the helpers back to a finite-only test, both new tests fail, the DOCX one printing the 5e298 pt spacing in full. Stale in the issue: its first location, `docx.rs` `w:sz`, is already clamped -- that came with #1574. DC-12's remaining holes are the ones fixed here.Two designcraft-engine tests fail on Windows on main. The code they test is unchanged. eps_relink_update_and_folder_relink_retain_source built the expected link as dir.join("new/replacement.eps"), which on Windows ends in new/replacement.eps, while links.relinkFolder stores the folder joined to the file name, ending in new\replacement.eps. The test now joins the folder and the file name separately. only_local_graphic_files_are_read_from_links allowed a read of the link only at the link's own text. For the link /dev/zero the import checks C:\dev\zero on Windows, because craft-docpath joins a root-relative path to the document's drive. The test now allows the path that crate::io::document_path resolves the link to. Open #1444 by AndreRese makes the same change to the relink test and a similar one to the IDML test.The new command note.split {story, id, at} splits an editorial note at byte `at` of its text. The note keeps the text before that point, and the rest moves into a new note by the same author whose anchor directly follows the first one. A split point at the start or end of the text, or inside a character, is refused. The Notes panel shows each note's text in a read-only field, and its Split Note button splits the note at the insertion point in that field.Editing one keyword in File Info re-split the whole field, so a stored keyword holding a comma or semicolon became two. A stored keyword that is still in the field whole now stays one keyword. An Export PDF title equal to the document's name was dropped, so the PDF took File Info's title. The dialog's title now starts empty, and a title given there is always the PDF's title; without one the file is named after the document. file.info refuses parameters that are not an object; null reads the fields like {}. File Info's OK stores the fields in the document the dialog was opened for, even when another document became active meanwhile, and stores nothing once that document has closed.b595f1b7) into the #1647+#1671 pair 921fcc16d0a32ad396) into the pair 07759907dc* Styles: renaming a style keeps its Export Tagging Renaming a paragraph or character style, or moving it into a style group, moves its Export Tagging to the new name. Deleting a style drops its tagging and leaves the replacement's own tagging unchanged. * Styles: a paragraph style can't be renamed onto another style's name * Styles: a refused rename says the name is taken and shows the General section Renaming a paragraph or character style onto a name another style has now says so ("a paragraph style named `Body` already exists"); empty or bracketed names keep the generic message. The Paragraph Style Options dialog switches to General, where the name field is, when the rename is refused. Paragraph style names are trimmed like character style names, and a renamed style never picks up an export tag left under its new name. * Styles: the rename test's stale tagging takes the Split Document field * ROADMAP: date the style rename line 2026-10-24