chore: sync upstream (28 Commits) #19
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!19
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/sync-upstream-20261105"
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(28 Commits). Fast-Forward.4b63d26aA hyperlink can point at a text anchor (#1446) (#1555)59501a26An item a parent overrode and deleted is gone from the pages that use it (#1469) (#1558)e16785eaFix CLI build warnings on Windows (#2356)0e85e9e5Esperanto as a text language (#1142) (#1204)8aceec1fMerge pull request #2348 from Hamza0101/fix/copy-keeps-anchored-frame-text97e75f8fApply review fixes3c8a3230Copy: the anchored-frame scan skips a copy that keeps no story, and reads each anchored item once9083bd5aCopy: a text frame anchored in a copied frame keeps its text4f3bb534Pages: parents and alternate layouts; export and print layouts and versions (#1342)a7940377About: credits tables fit without side-scrolling and their columns resize (#2264)019a89d9Pass the Linux signing key to the release workflow (#2328)b98687c3M5: keep out-and-back cubic segments in striped strokes (#2323)ef6c3686Linux: let the shared makepkg job build the Arch package (#2322)f3bcc886Linux packages: require libxkbcommon-x11, which winit dlopens on X11 (#2320)fb630909Merge pull request #2304 from texjer/feat/finder-drop-pointer* Pages: more parents and alternate layouts as columns in the Pages panel Parents - layout.parents.duplicate copies a parent spread (pages and items) under the next free prefix. - layout.parents.options also renames the prefix (1-4 characters, no "-") and the name; basedOn is now optional. - layout.parents.new validates prefix and name and takes basedOn. - Pages panel: a "+ New Parent" row adds B, C… in one click. The parents' context menu and the panel menu have New Parent…, Duplicate Parent Spread, Parent Options… and Delete Parent, named after the selected parent, or a submenu of the parents when none is selected. A new Parent Options dialog has Prefix, Name and Based on Parent. Alternate layouts - Section.layout marks the section that starts a layout; Document::layouts() lists them. - layout.createAlternate copies one layout (from), not every page; new layout.alternate.duplicate, .delete and .options (rename, resize). - Each layout starts a spread of its own; sections now follow their pages when pages are inserted or deleted. - Pages panel: with more than one layout, each is a column side by side with a header (name, size, ▾ menu: create, duplicate, options, delete) and a + column to add one. Tests cover the commands' happy and error paths, undo, serde, and the panel's menus and columns. * Pages: address review of parents and alternate layouts - Deleting a layout's first page keeps the layout's name when another section lands on the same page. - A parent's full label (prefix-name) must be unique; parents may still share a prefix. - Alternate layout names round-trip through IDML (Section AlternateLayout / AlternateLayoutLength). - The Pages panel's selected parent is per document and no longer saved in ui.json. - Layout ▸ Parent Options… and Alternate Layout Options… open the Pages panel's dialogs. - The Pages panel computes the layouts once per frame. * Export: layouts and versions in one export, with presets; print chosen layouts - file.exportBatch writes the chosen alternate layouts (a file per layout, or all in one PDF) in several versions at once: PDF with any marks, bleed and standard, PNG or JPEG at a resolution. Each version goes in a folder of its own, and file names come from a template ({document}, {layout}, {version}, {date}). Names are made safe and unique. dryRun lists the files; without a dir the files come back as base64 (web). - Export presets: file.exportPresets, file.saveExportPreset, file.deleteExportPreset, kept in prefs.json. Built-ins: Print + Screen, Press PDF per Layout, Images per Layout, All Layouts in One PDF. - file.print takes layouts and separateJobs (a job per layout, titled after it). - File ▸ Export Layouts and Versions… dialog: preset, layouts, versions (add from templates, duplicate, remove, quick PDF choices or custom marks), name template, and a live list of the files it will write. It opens from a layout column's ▾ menu as "Export Layout…". The desktop asks for a folder; the web downloads each file. - The Print dialog prints chosen layouts, together or separately; the Export PDF dialog fills the page range from a layout. - crate::io::create_dir_all keeps folder creation inside the automation write root. * Export: address review of layouts and versions - An exported image is capped at 80 million pixels, the limit EPUB page images already use. - The Print dialog stays open and says why when no layout is chosen. - Clicking a layout column's header leaves Edit Parents before going to the layout's first page. * Pages, Export: address maintainer review of layouts and versions - Sections (and the layouts they start) follow a moved page, as they do inserted and deleted ones: moving a page across a layout boundary no longer moves the other pages between layouts. Delete and move share `settle_sections`. - Alternate Layout Options resizes only pages whose size changes: renaming a layout no longer forces every page to the first page's size. - Export file and folder names that are Windows device names (CON, NUL, COM1…) get a leading `_`. - An export without `dir` refuses past 512 MB of files instead of building them all in memory. - A file that fails partway through an export to a folder says how many were already written. - Parent Options and Print keep the dialog open, with what was typed and why, when the engine refuses. - A duplicated layout's default name stays within the 100-character limit. - rustfmt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Pages: Alternate Layout Options sends the size only when it changed The dialog starts at the layout's first page's size, so the engine couldn't tell a rename from a resize to that size. The dialog now leaves out a width or height still at its starting value, and `layout.alternate.options` resizes every page of the layout when a size is given, as before. The test moves to the UI, where the size was coming from. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: FredApps <153173854+FredApps@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>