Commit Graph
3053 Commits
Author SHA1 Message Date
aiongg 0fc055ee37 Docking: pin craft-libs to 4dc543cb4 (craft-libs#312, owner test round) 2026-10-25 06:00:48 +00:00
aiongg e4341d29a2 Docking: pin craft-libs to 8a503cfe7 (main) 2026-10-25 04:11:51 +00:00
aiongg 3ed45a7e3f Docking: a modal focuses the main window only when a floating panel window has the keyboard 2026-10-25 01:36:14 +00:00
aiongg 3b5d85d664 Docking: a modal opened from a floating panel window focuses the main window 2026-10-25 01:13:52 +00:00
aiongg d0317e6018 Merge remote-tracking branch 'upstream/main' into docking-trial 2026-10-25 00:38:08 +00:00
aiongg 43c4f7e8a2 Docking: pin craft-libs to 869928d2a (main) 2026-10-25 00:38:07 +00:00
aiongg befc2e0346 Styles: renaming a style keeps its Export Tagging (#1790)
* 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
2026-10-24 20:37:21 -04:00
aiongg 280ad8eb65 Search: one list of the UI commands it leaves out, with the docking ones; Show Panel needs a panel 2026-10-25 00:29:13 +00:00
aiongg c987cbd8e8 Merge remote-tracking branch 'upstream/main' into docking-trial 2026-10-25 00:26:21 +00:00
aiongg a59880394d Search: Delete Workspace is left out of Quick Apply and command search (#1791)
* Search: Delete Workspace is left out of Quick Apply and command search

It needs a saved workspace's name, which a search entry can't supply,
so choosing it there failed. The application bar's workspace menu lists
the saved workspaces to delete.

* Search: leave out the interface commands that fail or reset a setting there

Quick Apply and the application bar's search ran their entries without
parameters. Commands that need a workspace, a command and shortcut, a
menu item, a panel, a window edge, an app page, a recent file, or a
swatch or color group failed when chosen there. Interface Color Theme
and UI Scaling switched to the dark theme and 100%, Workspace switched
to Essentials, and Reset Shortcuts cleared every custom shortcut without
asking. Search leaves all of them out; each stays in the menu, panel or
dialog that gives it the value.

* Search: the flattener preset, Screen Mode, Zoom To and the Task Bar pin stay out of Quick Apply
2026-10-24 20:23:48 -04:00
aiongg 44aa2702f3 Docking: files dropped on a floating panel window open or place
craft-ui reports drops on native floating windows in DockOutput::window_files;
they go through the main window's drop handling in the same frame.
2026-10-24 23:08:02 +00:00
aiongg aad814b05e Docking: modals block native floating panel windows
While a dialog, About or Quick Apply is open, floating panels in their own OS
windows take no input and are drawn under a dim from the panel token.
2026-10-24 22:58:56 +00:00
aiongg 6053b099bc Docking: pin craft-libs to 6e7f28518dd1 (main)
Every craft-libs crate and the Krilla/Hayro patches use one revision, which
also vendors hayro-postscript. Clipping text paints nothing in the PDF bounds
device; its clip arrives through push_clip_path.
2026-10-24 22:58:49 +00:00
aiongg b595f1b7d3 EPUB: Split Document (export option and per-style Export Tagging) (#1787)
* EPUB: Split Document in a paragraph style's Export Tagging

* EPUB: Split Document as a document setting (off, one style, or export tags)

The document stores EPUB Export Options › Split Document (DocSettings.epub_split):
off (one content file, the default), a single paragraph style, or the
paragraph styles' Export Tagging › Split Document flags. document.epubSplit sets
it as one undo step; file.exportEpub takes a split that overrides it for one
export. A Style setting follows a renamed style and a deleted style's
replacement. IDML reads and writes EPubExportPreference BreakDocument and
ParagraphStyleName. A split before a list item or preformatted line closes the
open list or block first, so each content file is balanced.

* EPUB Export Options dialog with Split Document before Export EPUB

File › Export EPUB… opens EPUB Export Options, seeded from the document's
Split Document setting: a Split Document checkbox with Single Paragraph Style
(and its style) or Based on Paragraph Style Export Tags. OK stores a changed
setting through document.epubSplit, then continues to the save dialog; Cancel
does nothing. app.exportEpub with a path skips the dialog. Docs and the
progress log describe the setting.

* EPUB: the navigation test exports one content file with Split Document off

* EPUB export from the menu passes its options (cover, split) to the engine

* EPUB: Split Document on a style's EPUB tag map counts when the style says false; a caller's cover: false stays
2026-10-24 17:56:49 -04:00
aiongg 2576b758e5 Merge remote-tracking branch 'upstream/main' into docking-trial 2026-10-24 21:42:42 +00:00
aiongg 8a0dceb0d1 Docking: Quick Apply leaves out Workspace, which needs a workspace name 2026-10-24 21:41:32 +00:00
aiongg 79bd774679 Docking: Dock Panel returns a floated group to its place in the dock as one group 2026-10-24 21:07:56 +00:00
skylar taylor-barrick 21a3f8bbb1 PDF: preserve placed optional-content visibility in vector exports (#1241)
Preserve contributor commits and integrate current main. Plain/PDF-X4 exports retain placed PDF optional-content defaults and hidden-name choices; prepared variants are cached, trailer history is parsed structurally, null OCProperties is treated as absent, and unreadable non-null Prev refuses safely. Preserve the recent form/table exporter refactors.

Verified exact integration tree with all nine cargo xtask ci gates (3,209 tests passed, 6 skipped; 16 WASM-safe crates), 118 original-head PDF tests, independent flat/null and Prev export matrices, and 12 qpdf checks. GitHub CI passed; fresh CodeRabbit review covers the exact head with no new actionable comments. Sonar workflow succeeded but its scan was skipped because the fork lacks SONAR_TOKEN.

This landing does not include or release the format-v4 pair #1647/#1671, held separately pending parent-placement IDML layer-choice preservation.
2026-10-24 14:59:07 -06:00
aiongg 796ddec0e1 docs: craft-ui and craft-print have their own pins 2026-10-24 20:57:30 +00:00
aiongg 1d9ba473b6 Docking: drop unused panel-window translations; docs say floating panels have their own windows on the desktop 2026-10-24 20:50:53 +00:00
aiongg 32a0454436 Docking: Table Panel closes an open Table flyout and leaves Table in its icon group 2026-10-24 20:48:45 +00:00
aiongg aa442c9495 Docking: a Properties panel link keeps that panel's open flyout 2026-10-24 20:46:59 +00:00
aiongg 753f3ba04a Docking: a flyout saved as openPanel at quit is not docked below Properties after the upgrade 2026-10-24 20:45:36 +00:00
aiongg b264b44de3 Docking: Paragraph Styles and Character Styles are an icon group of the default dock; Window › Styles floats them out of it 2026-10-24 20:43:21 +00:00
skylar taylor-barrick 0e0ed78125 M6: integrate placed-PDF vector layer export with current main (#1241)
Preserve contributor commits and adapt optional-content registration and table-cell graphic calls to the current PDF exporter refactors. Keep current-main roadmap corrections.

All nine cargo xtask ci gates passed on tree d0c21f347e: 3209 tests passed, 6 skipped, 16 WASM-safe crates. The exact PR head also passed 118 PDF unit/integration tests. Independent production-export controls: 8 flat/null cases succeeded; 7 unreadable Prev values refused, 4 compatibility controls succeeded; all 12 emitted PDFs pass qpdf.

This PR is independent of the format-v4 pair (#1647/#1671), which remains held for a reproduced parent-placement IDML issue.
2026-10-24 14:38:11 -06:00
aiongg fb6a4bc3b5 Docking: search keeps Collapse to Icons and leaves out docking commands that need a panel or name 2026-10-24 20:34:46 +00:00
aiongg 67bfdde682 build: pin only craft-ui to craft-libs 16fb3d46e; other craft-libs crates stay at main's revs 2026-10-24 20:29:28 +00:00
aiongg 70d5149ba6 Docking: Preflight Panel… keeps an open Preflight flyout; search leaves out unavailable and alias docking commands 2026-10-24 19:54:13 +00:00
aiongg c4a16d1da8 ROADMAP: progress line for shared docking 2026-10-24 19:25:13 +00:00
aiongg 4aa799b81c Docking: craft-libs shared docking with native floating windows
- Panels dock through craft-ui's shared docking. On desktop, a floating
  panel opens in its own OS window (feature native-windows); the web
  build keeps floats in the page.
- Keys pressed in a floating window run the main window's shortcuts,
  clipboard and tool keys in the same frame.
- A default layout's floating windows keep their ids.
- The canvas paints no tool cursor while another of the app's windows
  has the pointer, and a pointer beside a float stays the canvas's.
- Story joins Glyphs in the default icon column.
2026-10-24 19:24:58 +00:00
aiongg f6bca1d85b build: craft-libs 16fb3d46e (shared docking and native windows); PDF clip text draws nothing 2026-10-24 19:24:58 +00:00
aiongg b3be40ed08 Merge remote-tracking branch 'upstream/main' into docking-trial
# Conflicts:
#	Cargo.toml
2026-10-24 18:46:43 +00:00
aiongg a16f29a669 Optical margin alignment: lines with a tab hang their edge glyphs, as both line breakers measure them (#1760)
layout_line set a line with a tab or a right indent tab without the optical
margin or CJK edge hangs, while the greedy breaker and the paragraph composer
counted them. A line that fit only because its period hangs was then squeezed
into the measure or set past it.

layout_line now hangs the edge glyphs of every line. Tabs are measured from the
hung start, so tab stops stay where they are, and a right indent tab fills to
the hung end. A tab at a line edge hangs nothing. Lines without tabs lay out as
before.
2026-10-24 14:45:04 -04:00
Brandon Thomas 45ed6cfce0 Merge pull request #1678 from marcoarnulfo/feat/multi-automation-roots
MCP: --automation-read-root and --automation-write-root may each be given more than once (#1552)
2026-10-24 10:24:24 -04:00
Brandon Thomas 610792ed34 Merge storytold/main into feat/multi-automation-roots 2026-10-24 10:24:14 -04:00
Brandon Thomas ee8a3397a3 Merge pull request #1639 from marcoarnulfo/feat/convert-variable-to-text
Type › Text Variables › Convert Variable to Text: the selected instances, or every instance of one variable, become the text they show on their page
2026-10-24 10:24:10 -04:00
Brandon Thomas 4b9b0a96f1 Merge storytold/main into feat/convert-variable-to-text
# Conflicts:
#	docs/gaps.md
2026-10-24 10:24:00 -04:00
Brandon Thomas 057d76be3c Merge pull request #1638 from marcoarnulfo/feat/layout-go-back-forward
Layout: Go Back and Go Forward through the pages viewed, with InDesign's shortcuts
2026-10-24 10:23:55 -04:00
Brandon Thomas 3ea6459651 Merge storytold/main into feat/layout-go-back-forward 2026-10-24 10:23:44 -04:00
Brandon Thomas 3f637ae093 Merge pull request #1762 from dotCooCoo/feat/previous-next-note
Type › Notes › Previous Note and Next Note: the insertion point moves from note to note, as in InDesign
2026-10-24 10:23:40 -04:00
Brandon Thomas 0f3ce4dca6 Merge storytold/main into feat/previous-next-note 2026-10-24 10:23:30 -04:00
Brandon Thomas 2b93db2cff Merge pull request #1756 from dotCooCoo/feat/convert-to-note
Type › Notes › Convert to Note: the selected text becomes a note, as in InDesign
2026-10-24 10:23:26 -04:00
Brandon Thomas 073287500f Merge storytold/main into feat/convert-to-note 2026-10-24 10:23:16 -04:00
Brandon Thomas 12c6c721e7 Merge pull request #1753 from Hamza0101/fix/grep-scan-bounds
GREP styles: a scan and the pattern cache are bounded (#1598)
2026-10-24 10:23:12 -04:00
Brandon Thomas c0e2c608cd Merge pull request #1751 from Hamza0101/fix/linked-file-read-cap
links: a linked file is read under a cap, not whole (#1596)
2026-10-24 10:23:09 -04:00
Brandon Thomas a57d4cea1b Merge pull request #1752 from Hamza0101/fix/import-value-ranges
import: a value a file gives is one the engine can mean (#1593)
2026-10-24 10:23:05 -04:00
Brandon Thomas 6649125539 Merge pull request #1744 from PiMinusMax/effects-dialog-global-light-angle
Effects dialog: the Angle with Use Global Light stays editable and sets the global light
2026-10-24 10:23:02 -04:00
Brandon Thomas a67cf73d83 Merge storytold/main into effects-dialog-global-light-angle 2026-10-24 10:22:52 -04:00
Brandon Thomas 520a810640 Merge pull request #1742 from dotCooCoo/fix/package-redirect-test-junction
Package: the Windows redirect test falls back to a directory junction
2026-10-24 10:22:47 -04:00
Brandon Thomas 8d6989c508 Merge pull request #1740 from Silvertree2010/fix/h1918-footnote-numbering-overflows-u32
Saturate footnote and endnote numbering at u32::MAX
2026-10-24 10:22:43 -04:00