Commit Graph
923 Commits
Author SHA1 Message Date
skylar taylor-barrick 1420d8c79b refactor(pdf): share placed-PDF rendering (PDFR) (#876) 2026-10-20 19:52:28 -06:00
moppeeerandClaude Opus 5.5 5e1fd65dfc Properties: Anchor Point(s) with Convert Points and Delete Point(s)
Points selected with Direct Selection title Properties "Anchor Point(s)"
and show Transform, Appearance, Convert Points and the Delete Point(s)
quick action, as InDesign does. path.deletePoints removes the selected (or
given) points of several paths in one undo step. The Convert Point glyphs
are redrawn after InDesign's: the anchor on a corner or a curve with its
handles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 01:57:23 +02:00
aiongg 238ca0d2a0 Shortcuts: the shared craft-keymap dialog (craft-libs#186)
Edit > Keyboard Shortcuts is craft_keymap::ui::ShortcutsDialog over the
keymap and named shortcut sets. ui.json stores the sets as shortcutSets
and still writes the active set as shortcuts plus shortcutsMore. The
InDesign importer is the dialog's second import format, with a review,
and window.importShortcuts imports as a new set. window.shortcutSets
lists and selects sets. The native macOS menu drops its key equivalents
while the dialog records.
2026-10-20 20:41:24 +00:00
aiongg 9e633b06b8 #1311: window.panel.dock rejects an edge zone without anchor or side
A zone is a side of the anchor. Without anchor or side, craft-ui would
make a frame on the outer edge of DesignCraft's root, which splits the
canvas; the error names anchor and side instead.
2026-10-20 18:01:17 +00:00
aiongg c75ff9d32c #1311: Dock Panel in a floating panel's menu
A floating panel's tab menu and three-line menu have Dock Panel, which
runs window.panel.dock and so returns the panel to where it floated
from.
2026-10-20 18:01:17 +00:00
macadminHU 8e93096070 HU1: address Hungarian localization review feedback
Distinguish numbers from counts and text columns from grid columns, use formal Hungarian address consistently, and align menu paths with the visible labels. Add context and menu-path regression coverage and correct the localization language count and revision history.

Set my chosen real name and display name to Veress Róbert and disable GitHub profile-name synchronization. Preserve all other contributor entries.
2026-10-20 18:41:55 +02:00
moppeeerandClaude Opus 5.5 54c369418a PR-1257: document TOC bookmark ownership across IDML and the createBookmarks default
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:16:30 +02:00
aiongg 627971a072 Print color: PDF/X-1a in the roadmap and parity docs 2026-10-20 15:09:40 +00:00
aiongg 9c2aa1333a Merge branch 'print-color' into print-color-separations 2026-10-20 13:53:02 +00:00
aiongg 1284bf400d Merge print-color-preview into print-color-separations
Export PDF, File > Print and Separations Preview share one print
pipeline: print_pdf builds the print PDF of a set of pages (flattener,
rasterized layers and effects, PDF boxes, the writer, the blend space
outside print color), pdf_export adds Export PDF's view options for
file.exportPdf and file.print, and the preview separates print_pdf's
page per spread. Gradient stops on spot swatches resolve through the
same InkSet as fills (inks::spot_output). The hayro patches move to
craft-libs 8fbfea8 with craft-pdf, craft-prepress and krilla.
2026-10-20 13:50:13 +00:00
aiongg 99cb64a779 Print color: US spelling in the new code and docs 2026-10-20 13:36:14 +00:00
aiongg dd1f4b02ed Print color: Separations Preview shows the exported PDF's plates
Each visible spread is exported in memory as Export PDF writes it (its
print settings, the document bleed) and separated with
craft_prepress::plates off the UI thread, at a resolution matched to the
zoom. The canvas draws all inks composited, one plate as film or the ink
limit over gray; Window > Output > Separations Preview lists the plates,
spot plates by name, with each ink's percentage under the pointer.
view.separations takes spot ink names and reports the plates, ui.inspect
shows the preview's sheets, and ink.separations gives coverage and the
areas over an ink limit to automation. The renderer's GCR separation view
is gone; its plate passes stay for the CMYK blend space.
2026-10-20 13:30:14 +00:00
aiongg 8de7bc8ed7 Print color: plain print exports blend in CMYK without an output intent
Repin craft-pdf, craft-prepress and krilla to craft-libs#190 at 8fbfea8.
Plain exports with a CMYK blend space use print::cmyk_blending (CMYK page
and transparency groups, no output intent, no /Trapped); PDF/X-4 keeps
print::settings with the working space as GTS_PDFX output intent, as
InDesign writes an output intent only for PDF/X.
2026-10-20 13:23:27 +00:00
aiongg fa4edee57b Merge branch 'print-color-gradients' into print-color
# Conflicts:
#	crates/pdf/src/lib.rs
2026-10-20 13:16:40 +00:00
aiongg 6c9709e11f Print color: gradient stops keep the swatch they were given
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.
2026-10-20 13:12:29 +00:00
aiongg 30c0664142 Print color: File > Print prints the PDF Export PDF writes
file.print builds its PDF with the same pipeline as file.exportPdf
(flattener, placed PDFs with hidden layers and soft effects as images,
print color, view options), accepts Export PDF's settings and returns its
warnings, instead of calling designcraft_pdf::export_pdf with the
hard-edged vector drop shadow.
2026-10-20 13:12:15 +00:00
aiongg c51ff78d2b Print color: Knockout Group and Isolate Blending as group attributes
Groups are pushed with Surface::push_group, so Knockout Group writes
/K true and Isolate Blending /I true, each on its own. File > Export PDF
no longer rasterizes knockout groups.
2026-10-20 13:12:15 +00:00
aiongg 2b6ed2ccf0 Print color: export overprint as /op, /OP and /OPM
Overprint Fill, Overprint Stroke, Overprint Gap, overprinting text (ruby,
kenten) and 100% [Black] under Appearance of Black are pushed through
Surface::push_overprint with OPM 1, around the paint they apply to.
PDF/A exports are RGB and leave overprint out with a warning.
2026-10-20 13:12:15 +00:00
aiongg 6a04039f5f Print color: CMYK print output through craft-pdf's print settings
CMYK print exports (a CMYK blend space, and PDF/X-4) take their blending
groups, output intent and /Trapped from write::print::settings instead of
rewriting krilla's bytes. The output intent is the CMYK working space,
Coated FOGRA39 when it has none or its profile can't be written. PDF/X-4
still adds the XMP metadata date and version ID krilla doesn't write.
RGB and PDF/A exports are written as before.
2026-10-20 12:48:50 +00:00
con3codeandClaude Opus 5.5 5248ad683c Mojikumi: a middle dot beside a bracket keeps only its quarter em (JLREQ 3.1.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013phQ3ekq6uGBEWD6FjFYG2
2026-10-20 19:33:13 +09:00
macadminHU d242de511b Merge branch 'main' into codex/hungarian-localization 2026-10-20 11:40:24 +02:00
aiongg 4b4503d92a Merge branch '1180-import-shortcuts' into keymap-adoption
# Conflicts:
#	Cargo.lock
2026-10-19 21:03:34 +00:00
aiongg 0d6fe6bff7 Merge remote-tracking branch 'upstream/main' into docking-trial
# Conflicts:
#	crates/ui-egui/src/dock.rs
2026-10-19 20:49:04 +00:00
aiongg adcb8ee067 Merge remote-tracking branch 'upstream/main' into 1180-import-shortcuts 2026-10-19 20:47:24 +00:00
aiongg e6f125437a Docking trial: craft-ui 6261d9d, paint_icon, float space, flyout event 2026-10-19 13:18:20 +00:00
aiongg b66c3223f1 Docking trial: craft-ui f4f9e5b, DockCommand, hit rects, iconic column 2026-10-19 12:57:34 +00:00
moppeeer b23422b34d PR-1255: refresh against main and resolve review findings 2026-10-19 14:44:46 +02:00
moppeeer a712c49a7c PR-1285: refresh against main and resolve review findings 2026-10-19 14:44:42 +02:00
moppeeer 3f85c1a474 PR-1286: refresh against main and resolve review findings 2026-10-19 14:44:37 +02:00
moppeeer 9112080c30 PR-1287: refresh against main and resolve review findings 2026-10-19 14:44:32 +02:00
aiongg 84e4032c11 Docking trial: migrate ui.json, delete the classic dock 2026-10-19 12:24:39 +00:00
aiongg 5f5b6164c2 Docking trial: one dock path, ui.docking, localized dock labels 2026-10-19 12:09:25 +00:00
Brandon Thomas affce22f4f Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	docs/gaps.md
2026-10-19 02:52:49 -04:00
Brandon Thomas f78bf721e8 Merge storytold/main into codex/delete-parent-pages 2026-10-19 02:52:27 -04:00
Brandon Thomas 0e4d1cef7e Merge storytold/main into fonts/reload-changed-fonts 2026-10-19 02:51:28 -04:00
Brandon Thomas fcb83fd12d Merge storytold/main into codex/delete-parent-pages 2026-10-19 02:51:25 -04:00
Brandon Thomas 0ac836d6cb Merge storytold/main into fix/340-package-relative-links 2026-10-19 02:51:22 -04:00
Brandon Thomas 8ce4c31bac Merge pull request #1078 from marcoarnulfo/feat/vt-forced-break
Text parameters: a vertical tab is a forced line break
2026-10-19 02:50:31 -04:00
Brandon Thomas 24549f6f19 Merge pull request #1217 from MarekSpodBiedry/issue-1207
PDF/X-4 export: add xmp:MetadataDate and xmpMM:VersionID to the XMP (#1207)
2026-10-19 02:49:51 -04:00
Brandon Thomas 9872cec044 Merge pull request #1291 from MarekSpodBiedry/issue-1265
Show text stroke options in the Stroke panel when text is selected (#1265)
2026-10-19 02:49:08 -04:00
Brandon Thomas e537f6065f Merge pull request #1292 from MarekSpodBiedry/issue-1267
Reject invalid story.replaceRange offsets with an error (#1267)
2026-10-19 02:49:04 -04:00
KnottyDyes 07b4956e0f Docs: install the CLI and register it with MCP clients 2026-10-18 23:03:26 -06:00
aiongg e50d5983e1 keymap: parity row lists what the importer still can't apply 2026-10-19 04:41:50 +00:00
aiongg 8bb887a188 keymap: the InDesign set import runs on craft_keymap::import
shortcut_import.rs keeps the Show Set reader (decoding, the 8 MB cap,
header and item lines, entry splitting that keeps the comma key) and maps
each item to a craft_keymap::ForeignSet entry: `<menu> Menu` areas become
menus, the Tools area marks `... Tool` items as tool entries, and keys are
read with ForeignKey::read in the set's Windows or Mac flavour. Matching,
conflicts and apply are craft_keymap::plan + ImportPlan::apply with
Default as the home context and Text used when an item has no Default
keys; the keymap's overrides are stored afterwards.

- Window menu panel items and Tools items set panel and tool shortcuts.
- An item's Default keys all apply, not only the first readable one.
- The window.importShortcuts result keeps its field names and adds
  failed, approximated, suggestions and truncated; rows carry line and
  reason, ids are command keys.
- An engine command's own menu path is left out of the catalogue where a
  menu row of another command already stands, so the importer can pick
  the menu row's command.
- The dialog summary counts unmatched items without the rows for keys in
  contexts DesignCraft lacks.
2026-10-19 04:26:41 +00:00
aiongg 8383d828ad keymap: DesignCraft shortcuts on craft-keymap
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.
2026-10-19 04:14:59 +00:00
moppeeer 42903d7bd3 TOC-5: open numbering options from section markers 2026-10-18 23:43:17 +02:00
MarekSpodBiedry 551886c133 Show text stroke options in the Stroke panel when text is selected (#1265) 2026-10-18 23:38:00 +02:00
MarekSpodBiedry 251ceda1e0 Reject invalid story.replaceRange offsets with an error (#1267) 2026-10-18 23:37:25 +02:00
moppeeer 8cc92a50b6 TOC-6: toggle advanced table of contents options 2026-10-18 23:36:38 +02:00
moppeeer 7308800623 TOC-3: keep the table of contents title readable 2026-10-18 23:29:40 +02:00