Commit Graph
4115 Commits
Author SHA1 Message Date
moppeeerandClaude Opus 5.5 fefeb2b5b6 PR-1287: the keyboard and screen readers open a section marker's options too
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:21:43 +02:00
NetterSilverandClaude Haiku 5.5 c35dd44f82 Remember the Preview checkbox in Paragraph/Character Style Options
Fixes #1340

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 15:17:27 +00:00
moppeeerandClaude Opus 5.5 31e4c346f1 PR-1285: the TOC title field narrows in a small dialog so its style selector stays in view
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:17:07 +02:00
aiongg 75c6084a69 Print color: PDF/X-1a export through craft-prepress's flattener
standard x1a writes the PDF/X-4 print file, flattens it with
craft_prepress::flatten::flatten_document at the flattener preset's
resolution (high 300, medium 150, low 72 ppi; default 300), then makes it
PDF/X-1a:2003: the PDF 1.4 header, GTS_PDFXVersion and GTS_PDFXConformance
in the Info dictionary and XMP. check_pdfx1a refuses transparency (soft
masks, transparency groups, CA/ca below 1, blend modes) and color outside
DeviceCMYK, DeviceGray, Separation and DeviceN; export fails when the
flattened file still has either.

The X-1a path skips DesignCraft's RGB transparency flattener. Soft drop
shadows are drawn in their swatch's inks through a coverage mask, so
craft-prepress flattens them per ink instead of an RGB image of the
object. validate-pdf takes --standard x4|x1a; the Export PDF dialog gains
the PDF/X-1a:2003 preset and standard and a Transparency Flattener preset.
2026-10-20 15:04:58 +00:00
moppeeerandClaude Opus 5.5 0c5dd0ede8 PR-1255: TOC style references in indented properties resolve; the picker keeps a trailing caret
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:03:46 +02:00
moppeeerandClaude Opus 5.5 13576c365d PR-1125: Direct Selection selects pasted-in content too; test in a private temp dir
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:57:48 +02:00
aiongg 12e80a7a70 Print color: pin craft-libs#194 (craft-prepress flatten) and its hayro crates 2026-10-20 14:53:52 +00:00
moppeeerandClaude Opus 5.5 2a14be0dfa PR-1080: Add CMYK Swatch takes the C/M/Y/K the dialog shows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:41:09 +02:00
NetterSilverandClaude Haiku 5.5 d271298362 Refuse PDF page ranges in the Place PDF dialog instead of using page 1
Fixes #1337

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 14:34:47 +00:00
NetterSilverandClaude Haiku 5.5 7aba0e15af Saturate table alternating-fill and index paragraph counts
Found while testing crates/engine/src/cmd/table.rs:1396-1403

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 14:10:59 +00:00
moppeeerandClaude Opus 5.5 7200e90615 PR-892: spread labels read on a light panel and are buttons for screen readers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 15:55:23 +02: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 ab568de0de Print color: the sample's Dusk Gradient stops name their swatches 2026-10-20 13:47:50 +00:00
aiongg 905e33d546 Print color: one spelling for the color swatch error 2026-10-20 13:36:33 +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 717079fa0d Print color: spot gradients export as Separation and DeviceN shadings 2026-10-20 13:12:30 +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
NetterSilverandClaude Haiku 5.5 0e7e5c3f04 Clamp polygon side count before narrowing to u32
Found while testing crates/engine/src/cmd/object.rs:710-711 (also :975)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 15:07:40 +02:00
aiongg c6d980b25f Print color: inks on craft-prepress's InkSet
The Ink Manager settings stay saved by swatch name; PDF export and the
ink commands build a craft_prepress::InkSet from the document's spot
swatches and those settings, and ink.options refuses alias loops. The
hayro crates come from craft-libs at the craft-pdf revision, which
craft-prepress's plate mode needs.
2026-10-20 12:53:54 +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
NetterSilverandClaude Haiku 5.5 9887272efb Fix "-0p0" for tiny negative pica/cicero values
Found while testing crates/geom/src/units.rs:276

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 12:39:05 +00:00
con3codeandClaude Opus 5.5 d8b31de862 Type fields read the unit typed (13Q, 5mm), as InDesign's do (#1359)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013phQ3ekq6uGBEWD6FjFYG2
2026-10-20 21:31:24 +09:00
con3codeandClaude Opus 5.5 92bcf7c1ae IDML: Q ruler units are Q, as InDesign writes them (#1360)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013phQ3ekq6uGBEWD6FjFYG2
2026-10-20 21:31:22 +09: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 b677ed7500 #1298: reserve system shortcuts
The keymap reserves craft-keymap's system chords for its platform (window switching and closing, the virtual consoles). Binding one is refused with "<chord> is reserved by the system"; an imported set's key on one is left out and the import summary counts it. No default shortcut sits on a reserved chord on any platform (test).
2026-10-19 21:13:02 +00:00
aiongg a8ca532c4e #1298: browser OS for the web keymap
The keymap, shortcut text and recorded key presses follow keys::platform(): the build's platform, and on the web the operating system egui reads from the browser's user agent, so Control stays Control in a browser on a Mac. The keymap is rebuilt on the first frame once the browser's OS is known.
2026-10-19 21:11:14 +00: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
Claude 987c8bbeed Merge remote-tracking branch 'upstream/main' into xref-edited-text
# Conflicts:
#	ROADMAP.md
#	crates/idml/src/tests.rs
2026-10-19 20:21:38 +00:00
Claude a542d3b725 Merge remote-tracking branch 'upstream/main' into inline-objects-under-text
# Conflicts:
#	ROADMAP.md
2026-10-19 20:21:25 +00:00
Claude e6c60740f0 Merge remote-tracking branch 'upstream/main' into parent-page-display
# Conflicts:
#	ROADMAP.md
2026-10-19 20:21:24 +00:00
Claude 35f8e964a5 Merge remote-tracking branch 'upstream/main' into running-header-order
# Conflicts:
#	ROADMAP.md
2026-10-19 20:21:24 +00:00
Claude 2d97905189 Test: anchored objects share their frame's transparency in PDF
Review request (#1238): a host frame at reduced opacity. The anchored box is
painted inside the frame's transparency group, after its fill and before its
text and stroke, as the screen renderer already paints it on main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CgGsJkVe5GYG9qK6VFdECa
2026-10-19 18:01:55 +00:00
Claude 7388c42d51 Running headers: place each story by its first hit on the page
Review fix (CodeRabbit): a story was placed on the page by its highest
hit, so a heading at the top of its later column put the whole story ahead
of another story whose heading sits higher than the first one's. Each story
is now placed by its first hit there in text order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CgGsJkVe5GYG9qK6VFdECa
2026-10-19 17:48:02 +00:00
NetterSilverandClaude Haiku 5.5 177ac86741 Keep CDATA text in the DOCX/XLSX XML parser
Found while testing crates/textimport/src/docx.rs:134-135

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:41:15 +00:00
aiongg f90e24a6b1 Docking trial: panel bodies take their content height 2026-10-19 14:20:10 +00:00
aiongg 67cba4b364 Docking trial: craft-ui 13be52f, clear stale opened panel 2026-10-19 14:16:53 +00:00
aiongg 37e80a4ae2 Docking trial: craft-ui bfda13d, accept MovePanel 2026-10-19 13:34:57 +00:00
aiongg 8be489eaec Docking trial: craft-ui c715d3f, seeded float space 2026-10-19 13:25:02 +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