mirror of
https://github.com/storytold/designcraft.git
synced 2026-10-25 02:37:00 -06:00
Upstream squash-merged #142 #147 #254 #122 #224 #229 #230 #244 #247 #269 #249 #200 #276 #283 #268 #236 #272 #143 after4fbf893. next already holds every one of them except #200 (PDF/X-4 validation command: designcraft-cli validate-pdf) and #268 (GitHub Actions version bumps), which this merge brings in unchanged. Apart from those two, the merged tree equals next's. Each squash commit S equals the clean 3-way merge of S^ with the PR's current head (refs/pull/N/head). For #142 #147 #254 #236 #143 that head is newer than the one on next: the maintainer merged upstream main into the PR before squashing. Maintainer edits (all already on next, so nothing to carry over): - #142 (7dd948a): control bar keeps #112's horizontal ScrollArea with #142's horizontal_top inside it. next has the same (plus #255's object_control and integration 00cf932's tests). - #147 (fa4c605): the full-decode check at the top of lossless() kept with #128's interpolate flag. next has the check at the top of #223's lossless() with RasterMode. - #254 (80c0ada): USAGE keeps #127's export-options note. next has the same USAGE line. - #236 (504ea4a): uk entries for "Can't Open the File" and "Can't Place the File". next has both with the same translations (integration92b1a96); kept at next's position, not duplicated. - #143 (eaa76a4,d6c9762): one test_window harness with open, wheel, panel_rect and click_at. next has the same module. Conflict: ROADMAP.md: next's lines (CJK-MOJI block, Text engine line, RTL and Interface language with Italian and Ukrainian) Conflict: apps/designcraft/src/main.rs: next's `mod graphics` (#168) Conflict: crates/compose/src/lib.rs: next's paragraph start via `go` (#285 with #276's next_column), ends_para via is_break_char, in-paragraph break through break_start, Cursor without the second resume(); git auto-merged #276's band-closing block a second time, kept once Conflict: crates/compose/src/tests.rs: next's tests; #283's line_before_a_break_character_is_a_last_line, auto-merged a second time, kept once Conflict: crates/engine/src/cmd/fonts.rs: tests only; next's composite_tests (#126) kept Conflict: crates/engine/src/cmd/interchange.rs: tests only; next's INDD routing test kept Conflict: crates/fonts/src/fontdb.rs: next's plausible/typo_ascent (#81), style_traits/traits_of with exact_style_traits and canonical_family (#81, #126, #247), face() through canonical_family and find_or_load Conflict: crates/idml/src/import.rs: next's tint() helper (#83) for #230's colour tint Conflict: crates/idml/src/tests.rs: tests only; next's drop cap and anchored frame tests kept Conflict: crates/pdf/src/export.rs: next's RasterMode image path (#223 with #147's decode check) Conflict: crates/ui-egui/src/dialogs.rs: next's paragraph style dialog (new style, #144's basic_character_formats and character_color sections), Find Font FALLBACK_FAMILY default (#126) Conflict: crates/ui-egui/src/i18n.rs: next's Italian (#218) beside #236 and #272 Conflict: crates/ui-egui/src/i18n/uk.rs: next's table (see #236 above) Conflict: crates/ui-egui/src/lib.rs: next's Control bar second-row test via the object_control group (00cf932), browser import tests (#119) Conflict: crates/ui-egui/src/menus.rs: next's language lists with it; #236's ukrainian_language test, auto-merged a second time, kept once