Commit Graph
4115 Commits
Author SHA1 Message Date
Dylan M. Taylor e413cdf59b Reduce cognitive complexity in find, lists, PDF font/layer scans; fix wildcard import (#1846)
* test(pdf): replace wildcard super import in registration_tests

Resolves SonarCloud rust:S2208 (new code).

* test(engine): extract child-scope rejection assertions in find tests

Resolves SonarCloud rust:S3776 on find_scope_children_error_atomically_and_parent_requests_stay_top_level.

* refactor(engine): extract per-paragraph list update from apply_list

Resolves SonarCloud rust:S3776 on apply_list.

* refactor(pdf): extract form scanning from FontScan::content

Resolves SonarCloud rust:S3776 on FontScan::content (pdfx/fonts.rs).

* refactor(pdf): extract layer helpers from optional_content::prepare

Resolves SonarCloud rust:S3776 on prepare (optional_content.rs).
2026-10-25 21:25:48 -04:00
aiongg d28271b489 Merge branch 'keymap-adoption' into keymap-shortcuts-dialog
# Conflicts:
#	Cargo.lock
#	Cargo.toml
2026-10-26 01:16:37 +00:00
aiongg 1a52593d0d Merge remote-tracking branch 'upstream/main' into keymap-adoption
# Conflicts:
#	Cargo.toml
2026-10-26 01:15:41 +00:00
aiongg 39746cbff9 Place the Separations panel in the default icon groups 2026-10-26 01:15:10 +00:00
aiongg d90881a8a9 Merge branch 'print-color' into print-color-separations
# Conflicts:
#	Cargo.toml
2026-10-26 01:11:35 +00:00
aiongg c856db68f1 Merge branch 'print-color' into print-color-x1a
# Conflicts:
#	Cargo.toml
2026-10-26 01:11:11 +00:00
aiongg 240dbcf731 Merge remote-tracking branch 'upstream/main' into print-color
# Conflicts:
#	Cargo.toml
#	crates/idml/src/export.rs
2026-10-26 01:10:39 +00:00
NetterSilverandClaude Opus 5.5 b390324c1f Repaint the canvas when a placed file is relinked or updated
Fixes #1835

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 23:48:25 +00:00
dotCooCoo 134d98905b Print: the Windows print test expects the driver's default color
craft-print at a0916808 leaves the color feature out of the Windows
PrintTicket unless the job asks for grayscale, so the color chosen in the
driver's preferences applies, and its command preview ends with
color=(driver default). print_builds_the_spool_command still expected
color=color and failed on Windows. It now expects the new preview.

print_submits_the_selected_export_and_reports_refusal also checks that the
job does not ask for grayscale, so the job's color setting is checked on
CUPS too.
2026-10-25 15:35:18 -07:00
macadminHU a6f1081db8 HU1: complete the two missing Georgian menu captions
Add Georgian translations for File Info… and Check for Updates…. Keep the complete-menu assertion unchanged; interface_language_switches_and_validates now passes. The Hungarian regressions also pass. The full test stage records 3,376 passed, three previously documented missing-glyph failures and six ignored.
2026-10-25 23:22:52 +01:00
Dylan M. TaylorandClaude Sonnet 5.5 3eeab5aead refactor(engine): reduce complexity in path join and paragraph style apply (Sonar) (#1729)
* refactor(engine): split join_paths and apply_para (Sonar S3776)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(engine): use the resolved style types in apply_para_in_story

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Pass the resolved styles by reference at the call site

* Drop the range binding the call no longer uses

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 17:48:35 -04:00
Dylan M. TaylorandClaude Sonnet 5.5 cf45e33545 refactor(ui): reduce cognitive complexity in swatches, properties, canvas, lib (Sonar S3776) (#1727)
* refactor(ui): extract helpers from swatches, properties, canvas and app logic (Sonar S3776)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(ui): drop unused variable after extraction

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Use scope_id for the flex grid's interaction id

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 17:46:29 -04:00
macadminHU de8825dd7c HU1: align equivalent test imports with the upstream repair
Adopt upstream blob 73f98f61 for panel_docking_tests.rs to avoid a parallel-fix conflict. The same 31 names are imported from the same parent module; every byte after the imports is unchanged. cargo fmt --all -- --check and cargo clippy --workspace --all-targets -- -D warnings both pass. No new main-branch changes are merged.
2026-10-25 22:34:24 +01:00
Dylan M. TaylorandClaude Sonnet 5.5 8e77e8db2d refactor: split complex functions in swatch_refs, xlsx, render group drawing (Sonar S3776) (#1733)
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 17:33:59 -04:00
macadminHU 9c67851892 HU1: complete panel test imports after main integration
Restore the explicit names required by the upstream panel-docking tests and format the imports. All test bodies and assertions are byte-for-byte unchanged. fmt, pdf-deps and clippy pass; 3,375 tests pass, with four font/Georgian findings documented in the PR and six ignored. The remaining i18n-report, doctest, assets, layers and 16 WASM checks pass. One worker under a 2 GiB memory guard.
2026-10-25 22:20:54 +01:00
Dylan M. Taylor 5478eb655e Import the panel-docking helpers the test module uses from its parent
panel_docking_tests is a child module of panel_docking, so every helper it
calls lives in super; list them instead of the wildcard the sweep removed.
2026-10-25 17:00:59 -04:00
macadminHU 2937a52bab HU1: translate the Data Merge Arrangement caption
Add Arrangement → Elrendezés to the Hungarian catalog. The retained cross-locale regression and Hungarian catalog tests pass. Full local validation and the separate pre-existing font/Georgian findings are documented in the PR.
2026-10-25 22:00:29 +01:00
Dylan M. Taylor 165cbbbff1 rustfmt the added import list 2026-10-25 16:54:34 -04:00
macadminHU 85a074a65a Merge branch 'main' into codex/hungarian-localization 2026-10-25 21:53:13 +01:00
Dylan M. Taylor 98ada498d5 Fix the imports the explicit-import refactor missed
The Sonar S2208 sweep replaced use super::* with explicit lists, but
tests_ime.rs and panel_docking_tests.rs use helpers added after it was
written, so main stopped compiling.
2026-10-25 16:49:17 -04:00
Dylan M. Taylor 4322609d4b Merge pull request #1722 from storytold/sonar/engine-datamerge
refactor(engine): data merge complexity and parameter counts (Sonar)
2026-10-25 16:31:23 -04:00
Dylan M. Taylor 0e83233c97 Merge pull request #1737 from storytold/sonar/idml-c
refactor(idml): import graphics and table cell helpers (Sonar S3776)
2026-10-25 16:31:14 -04:00
Dylan M. Taylor 781bec49de Merge pull request #1736 from storytold/sonar/s3776-a4
refactor: reduce cognitive complexity in epub table and pdf frame text (Sonar S3776)
2026-10-25 16:30:47 -04:00
Dylan M. Taylor a4143e031a Merge pull request #1735 from storytold/sonar/engine-d
refactor(engine): reduce complexity in find.change and used_fonts (Sonar)
2026-10-25 16:30:36 -04:00
Dylan M. Taylor 6227c4f1c8 Merge pull request #1730 from storytold/sonar/idml-b
refactor(idml): graphic part and spread import helpers (Sonar)
2026-10-25 16:30:25 -04:00
Dylan M. Taylor 19bc14fe03 Merge pull request #1718 from storytold/sonar/s1612-b
chore: method paths for remaining closures (Sonar S1612)
2026-10-25 16:30:13 -04:00
Dylan M. Taylor 05e5f17913 Merge pull request #1717 from storytold/sonar/s2208-a
chore: explicit imports in test modules (Sonar S2208)
2026-10-25 16:29:55 -04:00
aiongg 074db00079 Merge print-color into print-color-x1a
Brings in #1374 with upstream main merged (egui 0.37, craft-libs at
storytold/craft-libs e3b9e239).

Conflicts:
- Cargo.toml: print-color's pins (storytold/craft-libs e3b9e239 for
  craft-pdf, craft-prepress, krilla and the hayro crates; winit and egui
  patches), with craft-prepress keeping the `flatten` feature.
- xtask/src/pdf_deps.rs: print-color's REPO/REV.
- Cargo.lock: print-color's, relocked with cargo metadata; adds only
  craft-prepress and linesweeper.
- crates/pdf/src/export.rs: main's optional-content registration and
  add_form_fields helper; the helper leaves form fields and media out of
  PDF/X-1a with a warning.
- crates/engine/src/cmd/export.rs: the X-1a parameter docs plus main's
  `created`; the X-1a flatten and shadow-mask path on top of main's
  PDF/A-2b-only rasterize_layered.

Also: x1a_tests builds FlattenTotals through Default, since the struct is
non_exhaustive at e3b9e239.
2026-10-25 19:55:21 +00:00
aiongg 9c977f41a6 Merge print-color (#1374 with main: egui 0.37, craft-libs e3b9e239) into print-color-separations
print_pdf, shared by Export PDF, File › Print and Separations Preview, takes main's two
changes to the inline export pipeline: rasterize_layered runs only for PDF/A-2b (other
standards keep hidden placed-PDF layers as optional content), and the report gets
GRAPHIC_LAYER_RENDERING_WARNING when the source document has graphic layer visibility
overrides and the writer did not report it. The Separations Preview command matches
craft_prepress::Conversion with a fallback arm, since the enum is non-exhaustive at
craft-libs e3b9e239.
2026-10-25 19:54:40 +00:00
aiongg 65c387732d Merge upstream/main into print-color
PDF/X and CMYK groups keep this branch's approach: krilla's serialize
settings (pdfx::print_settings) write the CMYK page and transparency
groups, the GTS_PDFX output intent and the PDF/X Info and XMP entries.
make_pdfx4 adds only the XMP dates, so main's title argument and its
output-intent, Info and pdfxid XMP edits are dropped, and both
cmyk_group_spaces calls after writer.finish() (Export PDF, Print
Booklet) stay removed. Main's new parts are kept: file_info_metadata
(also for Print Booklet, on top of the print settings), optional content
registration and layer errors, add_form_fields, and pdfx's fonts module.
Main's metadata panic test calls the two-argument make_pdfx4.

craft-libs and the krilla patch are pinned to storytold/craft-libs
e3b9e239; Cargo.lock is main's, relocked without updates.
2026-10-25 19:47:27 +00:00
aiongg 77c718aa68 Merge keymap-adoption (#1298, on main) into keymap-shortcuts-dialog
craft-keymap with the dialog comes from storytold/craft-libs main e3b9e239. egui 0.37's
shaper owns bidi, so the dialog's labels go to it in logical order: rtl::visual_text and the
dialog's visual hook are gone. ForeignSet keeps the dropped-entry count through its builder.
2026-10-25 19:39:58 +00:00
aiongg 073ac98694 Merge upstream main into keymap-adoption; pin craft-libs to main e3b9e239
Main's shortcut dispatch (shortcut_key, used for keys forwarded from floating panel windows)
becomes the keymap's: shortcuts and forwarded_shortcuts both take their presses through the
key dispatcher and run them once the input is released. craft-keymap comes from
storytold/craft-libs, ForeignSet is built through its constructor, and the panel shortcut test
asks the docking layout which panel shows.
2026-10-25 19:36:33 +00:00
Dylan M. Taylor edec344ee7 fix(updates): localize the update status messages and format the sources 2026-10-25 15:34:09 -04:00
Dylan M. Taylor 47b3f8f9b4 fix(updates): address review feedback
Wake the UI when a manual check is queued from a menu callback; the update prompt owns the keyboard while it is open (LightCraft); Download opens through the desktop URL hook (FilmCraft); the Help menu dispatches through menus::invoke (FigCraft); print jobs and comment drafts hold an install back (WordCraft); Check for Updates is a registered command (GridCraft); an install holds back while documents are unsaved.
2026-10-25 15:17:00 -04:00
moppeeerandClaude Opus 5.5 8509c39102 Color Picker test: the typed-CMYK case on its own
Typing in C switches the picker to CMYK, which the swatch test's OK at
the end then applied.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 20:04:44 +01:00
Dylan M. Taylor 2137390343 fix(updates): drop the manual window's custom id (Id::new is deprecated in egui 0.37) 2026-10-25 15:02:26 -04:00
Dylan M. Taylor c784a9db66 refactor(updates): hold the install back while documents are unsaved 2026-10-25 15:02:26 -04:00
Dylan M. Taylor d607c068b1 feat: startup update prompt modal and direct self-updating
The update flow (check at start or on request, the startup prompt, the self-update worker) is craft-update's Updater; the app only supplies the suite, its close path and its status window. The check at start is opt-in for the desktop app, and the Windows update helper runs before argument parsing.

Ref: storytold/craft-libs#319
2026-10-25 15:02:26 -04:00
moppeeerandClaude Opus 5.5 b85d119ceb Color Picker: typed C/M/Y/K are kept even when the colour shown doesn't change
At 100% K a device CMYK conversion is black whatever C, M and Y are,
so the picked RGB stayed the same and the `p != before` guard dropped
the typed percentages. They are stored (and the colour marked edited)
whenever a C/M/Y/K field was typed in; the rest still only when the
colour changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:43:30 +01:00
moppeeer d2b0234160 Merge remote-tracking branch 'origin/main' into properties-auto-fit
# Conflicts:
#	crates/ui-egui/src/widgets.rs
2026-10-25 19:21:27 +01:00
moppeeer 1bd9b2770c Merge remote-tracking branch 'origin/main' into codex/toc-right-indent-separator
# Conflicts:
#	crates/ui-egui/src/dialogs.rs
2026-10-25 19:21:26 +01:00
aiongg 5c99863f12 Merge remote-tracking branch 'upstream/main' into docking-trial
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	apps/designcraft/src/main.rs
2026-10-25 18:18:36 +00:00
moppeeerandClaude Opus 5.5 38d71ac91b Color Picker: on egui 0.37, with its fields named
main moved to egui 0.37 (#1810) and named the old picker's fields. The
picker's own layout here takes the new API (Role for WidgetType,
scope_id, Id::unique, TextEdit::align) and names its value fields by
their captions and the hex field "Hex".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:18:22 +01:00
moppeeer 15ce24f4f4 Merge remote-tracking branch 'origin/main' into color-picker-layout
# Conflicts:
#	crates/ui-egui/src/dialogs.rs
2026-10-25 19:11:47 +01:00
aiongg 02cb2876d2 Merge upstream main into docking-trial
Main's File Info PDF metadata gets craft-pdf's modified field (None, as before), and the
Notes panel ids use Id::unique (egui 0.37).
2026-10-25 17:52:22 +00:00
hslrmnp27 85321749ac T.DE1: merge current main and resolve typography documentation conflict
Preserve the German 2006 hyphenation entry alongside the newer optical margin alignment documentation. Merge upstream main at 5024d61ce6.

Validation: cargo xtask ci passed all nine steps; 3271 tests passed, 6 ignored; all four German hyphenation tests passed; WASM check passed for all 16 crates.
2026-10-25 18:39:15 +01:00
skylar taylor-barrick bd4b9dd1d2 egui-037: reconcile shared window integration with main 2026-10-25 18:34:10 +01:00
aiongg 1da1f7028b Merge designcraft#1810 (egui 0.37) into docking-trial; pin craft-libs to main a0916808 2026-10-25 17:16:25 +00:00
aiongg 32eb676f34 Docking: format panel_docking tests 2026-10-25 16:58:41 +00:00
moppeeerandClaude Opus 5.5 ec682809be rustfmt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 17:47:19 +01:00