Commit Graph
4827 Commits
Author SHA1 Message Date
moppeeerandClaude Opus 5.5 83e789340c PR-1141: Swatches panel shows new-shape defaults; translate the spectrum label; test the fill
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:17:13 +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 c464072ee7 #1298: craft-keymap 9aaf9df (craft-libs#164 review fixes)
Keymap::catalog(), Platform's non-exhaustive match, and the web
platform from craft_keymap::egui::platform.
2026-10-20 16:07:19 +00:00
aiongg c50321c852 Print color: X-1a written by craft-pdf at PDF 1.4 (craft-libs#194 d30598d)
Repin craft-pdf, craft-prepress, krilla and the hayro crates to d30598d.
flatten_document writes the X-1a file at PDF 1.4 with GTS_PDFXVersion
PDF/X-1:2003 in the Info dictionary and XMP, so DesignCraft's header
rewrite and incremental update are gone. check_pdfx1a refuses DeviceN
NChannel attributes and warns about an ICC v4 output intent profile in a
file of PDF 1.5 or lower; the export names the built-in Coated FOGRA39
(v4) when it is the intent. validate-pdf lists warnings apart from issues.
2026-10-20 16:00:38 +00:00
Hamza ba4b6d4089 Say which backend was chosen without claiming it was the first
Two corrections to the message, both reported by CodeRabbit on #1371.

switched_from being None only means this start did not switch from a
backend that never showed a frame. A backend that failed on an earlier
start is remembered in the record, and choose() then picks the first
candidate that is not in that list -- so calling it the "first choice"
misstates how it was arrived at. The line now says either "nothing has
failed before" or which backends had, so the log says what happened.

The comment claimed that reaching this line means WGPU_BACKEND is
unset. wgpu-types returns an empty mask for an empty or unrecognised
value and begin() only returns early for a non-empty one, so such a
value reaches here with the variable set. The comment says that instead.
2026-10-20 20:59:04 +05:00
Brandon ThomasandClaude Opus 5.5 8dff7ecdb0 Skip CodeRabbit reviews on Dependabot PRs (#1386)
Adds .coderabbit.yaml so CodeRabbit no longer reviews or comments on PRs opened by dependabot[bot].

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 11:39:20 -04:00
Dylan M. Taylor 72f8186550 docs: add SonarCloud and CodeRabbit badges to README (#1266)
* docs: add SonarCloud and CodeRabbit badges to README

* docs: put SonarCloud and CodeRabbit badges on their own line
2026-10-20 11:33:05 -04:00
aiongg 7473fcac78 Print color: drop shadows multiply over what's beneath them in X-1a 2026-10-20 15:32:10 +00:00
aiongg 691eb35a28 #1298: ui.json keeps the map form older versions read; extra keys in their own field 2026-10-20 15:30:52 +00:00
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 627971a072 Print color: PDF/X-1a in the roadmap and parity docs 2026-10-20 15:09:40 +00: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 c89faad6a3 Print color: pdf-deps expects the craft-libs#190 pin 2026-10-20 13:50:32 +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
Hamza e572a5316f Graphics: the start-up log says which backend was chosen and how to change it
`Fallback::begin` returns before the fallback runs when `WGPU_BACKEND`
is set, logging that wgpu picks the backend. So the line below it is
reached only when the variable is *not* set -- and it said
"(WGPU_BACKEND overrides)", which reads in a log as though the user's
environment had chosen the backend when nothing had.

    before: graphics: DirectX 12 (WGPU_BACKEND overrides)
    after:  graphics: DirectX 12 (first choice; set WGPU_BACKEND to choose another)

The report quotes that line as evidence of which backend a start used,
which is exactly the wrong conclusion to be led to.

Part of #1343.
2026-10-20 18:26:44 +05: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
aiongg ce5e58e63b Print color: pin craft-pdf, craft-prepress and krilla to craft-libs#190 2026-10-20 12:28:02 +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
macadminHUandcoderabbitai[bot] f3f6f721cb Update contributors/people.toml
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-10-20 12:01:12 +02:00
macadminHU d242de511b Merge branch 'main' into codex/hungarian-localization 2026-10-20 11:40:24 +02:00
FredAppsandClaude Opus 5.5 1fec005d19 CI: run cargo xtask ci on pull requests and pushes to main
Only path-filtered workflows run on pull requests today, so most PRs land
without a test run. Port of the wordcraft#800 workflow: Linux, standard
GitHub-hosted runner, read-only token, no secrets, craft-fonts pinned to
the release.yml commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 10:57:30 +02:00
Brandon ThomasandClaude Opus 5.5 15a2f3c8c8 Release 0.10.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.10.0
2026-10-19 22:18:33 -04:00
Daniel 7c3e60b6c4 fix(linux): enable font-free Wayland window controls 2026-10-20 03:24:52 +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