chore: sync upstream (205 Commits) #10

Merged
alf merged 205 commits from chore/sync-upstream-20261027 into main 2026-10-27 20:25:26 +00:00
Owner

Upstream-Sync von upstream/main (205 Commits). Fast-Forward.

  • 9e90b2a5 refactor(ui): use craft-ui's ComboBox for every dropdown (#4988)
  • 1889690b Merge pull request #5039 from Jeremy8776/fix/ocr-model-onnx-urls
  • da8cea2b M10: reuse verified OCR model and packaging prerequisites
  • e9fc890a Merge pull request #5026 from Silvertree2010/perf/export-speed
  • 37bf4ee9 perf(engine): export page images on worker threads
  • 1dd2737b Merge pull request #4889 from aiongg/layout
  • f022ef06 style: cargo fmt on moved files
  • 323172e8 test(automation): end the file access scan at the test module, not at a cfg(test) use
  • d449f2ce docs: name the ui-egui files by their new directories
  • 064632e0 test(ui-egui): name the page modules by their new directories
  • 3dbea4e7 docs(parity): point evidence at the ui-egui files' new directories
  • cb94c8f0 refactor(ui-egui): move open_worker_tests.rs to platform/open_worker/tests.rs
  • 636656a9 refactor(ui-egui): move tab_context.rs into menus/
  • cd0fc37c refactor(ui-egui): move folders_ui.rs into home/
  • 7b3d6887 test(ui-egui): rerun the fontconfig tests by their platform:: path
Upstream-Sync von `upstream/main` (205 Commits). Fast-Forward. - 9e90b2a5 refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) - 1889690b Merge pull request #5039 from Jeremy8776/fix/ocr-model-onnx-urls - da8cea2b M10: reuse verified OCR model and packaging prerequisites - e9fc890a Merge pull request #5026 from Silvertree2010/perf/export-speed - 37bf4ee9 perf(engine): export page images on worker threads - 1dd2737b Merge pull request #4889 from aiongg/layout - f022ef06 style: cargo fmt on moved files - 323172e8 test(automation): end the file access scan at the test module, not at a cfg(test) use - d449f2ce docs: name the ui-egui files by their new directories - 064632e0 test(ui-egui): name the page modules by their new directories - 3dbea4e7 docs(parity): point evidence at the ui-egui files' new directories - cb94c8f0 refactor(ui-egui): move open_worker_tests.rs to platform/open_worker/tests.rs - 636656a9 refactor(ui-egui): move tab_context.rs into menus/ - cd0fc37c refactor(ui-egui): move folders_ui.rs into home/ - 7b3d6887 test(ui-egui): rerun the fontconfig tests by their platform:: path
alf added 205 commits 2026-10-27 20:25:24 +00:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The doc comment for SplitPart had drifted above the LabelStyle re-export; it is back on SplitPart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
refactor(engine): split lib.rs into modules
Use the fixed release for GHSA-vc25-qg58-w57c.
New modules: app (construction, queries, eframe::App, and every impl PdfCraftApp group, split further next), state (UI state types, OpenRequest, OpenOutcome, GridFile, CopyPage, DocumentCopyJob), hooks (host-hook types). PendingOpen, GridDrop and DocumentCopy stay in lib.rs as app struct field types.
New modules: app/files, links, input, keys, clipboard, window, prefs, commands, control, frame (frame holds panel_migration_tests).
New modules: find, selection, cache, zoom, navigation, xform, organize, bars, area.
fn document_area stays in canvas.rs this round.
New modules: plugin, requests, screenshot, pending, host, transport (non-wasm).
transport_tests and screenshot_geometry_tests move with their code;
lifecycle_tests and pointer_tests stay.
New modules: state, xref, open, objects, reader.
New modules: background, layout, image.
New modules: draft, properties, tabs.
New modules: dialog, panel.
New modules: read.rs, tab_order.rs, values.rs, appearances.rs.
New modules: author/tree.rs, author/look.rs, author/edit.rs, author/lifecycle.rs.
New modules: af/script.rs, af/calc.rs, af/format.rs.
New modules: common.rs, xfdf.rs, fdf.rs.
New modules: import/copy.rs, import/fields.rs, import/combine.rs, import/carry.rs.
New modules: files, view, table, parts, session, actions (tests.rs moved in the previous commit).
New modules: clock (local_utc_offset, parse_ymd), doc_state (ImageEdit, merge_data_files, SplitPart, DocId, LOW_RESOLUTION_PRINT_DPI, render_threads, RecoverySnapshot, renderer_password, writable, guard, signatures_of, OptimizeReport).
New modules: interp/layers.rs (hidden-layer handling), interp/prune.rs (resource pruning and unlinking).
New modules: layout.rs (data types and layout analysis), as_html.rs, as_docx.rs, as_rtf.rs.
New modules: error.rs, settings.rs, sheets.rs, imposition.rs.
New modules: path, dates, values, build, merge, write, import, passwords.
New modules: items, helpers, pages, flow, measure, draw, field.
New modules: helpers, strip.
New modules: session/view.rs, session/editing.rs, session/save.rs, session/files.rs (all impl Session methods).
New modules: edit/labels.rs (labels, impl Edit, add_annotation, plural), edit/run.rs (check_permission, EditCtx, run_edit).
New modules: error, dispatch, documents, assemble, pages, paths, json.
lib.rs keeps Automation, its builders, mod lines and pub use lines.
New modules: a11y/ocr, a11y/documents, a11y/form_tools (JS and form-action tools).
New modules: options, commands, check, run, ui.
New modules: state, geometry, input, paint, composer, menu (tests.rs already existed).
New modules: tools, edit, right, bookmarks, pages.
New module: prompts (fn dialogs stays in dialogs.rs).
New modules: core, annotations, resources, navigation, model. The small test modules
(version_tests, open_action_javascript_tests, substitution_tests, open_dest_tests) moved with the code they test.
New modules: device, layout, order.
New module: pool (the render worker pool).
New modules: model.rs, host.rs, document.rs, format.rs, globals.rs, run.rs. Old crate:: paths keep working through use aliases in lib.rs.
New modules: lexer, ast, parser, value, access, eval, dates, words, builtins.
New modules: model, host, nodes, instances, globals, run.
New modules: types, lookup, create, modify, draw, info.
New module: symbols.
New modules: listing, types, validate, changes, signing.
New modules: styled (styled-block shaping and rewrite), grouping (row/block grouping).
New modules: editor, interp, blocks, lines, rewrite, fallback. The regions and session modules stay #[path]-declared.
New modules: types, layout, draw, store.
New modules: marks (header/footer, watermark, background types and expansion), place (page content placement and isolation), apply (add/remove marks).
New modules: draft (Which, Handling, PrintDraft), body (driver_options_panel, combo, body).
New modules: thumbs (thumbnail cache, Key, Look, Thumbs, texture), card (Card, preview).
New module: scan (ScanDraft, ScanRequest, ScanAnswer, ScanWorker, FrameDrag, next_photo_version, scan_tab).
New modules: save (SaveTarget, PendingOverwrite, save methods, atomic writers), close (CloseRequest, close/quit methods).
ci: require nextest 0.9.150
refactor: shared module layout (craft-contrib#20)
Export > Image spent its time in the PNG, JPEG and TIFF encoders, one
page after another: on a 55-page manual at 150 dpi, drawing every page
took about 0.34 s and encoding it 1.1 s (PNG) to 2.0 s (JPEG).

Exporter::images exports a list of pages, drawing and encoding several
at once on worker threads, each with its own PageRenderer (as
automation's extract_parallel does), and hands the files to a sink in
page order on the calling thread. Workers draw at most one page ahead
of the sink and fewer run when 1 GiB can't hold that many of the
largest page. The first page or sink error stops the export with every
earlier page handed over, as before. A page panic becomes that page's
error, and a panicking sink stops the workers. One page, one core or
wasm keeps the per-page loop. Export > Image and the doc_export_images
tool use it.

Files are byte-identical. One core is left for the interface (at most
8 workers). With examples/export_bench, on a Ryzen with 16 threads
(shared), mean of two medians of 21 runs:
  PNG 150 dpi   1874 -> 340 ms  (-82%)
  JPEG 150 dpi  2106 -> 340 ms  (-84%)
  TIFF 150 dpi  2032 -> 375 ms  (-82%)
  PNG 300 dpi   3804 -> 590 ms  (-84%)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
perf(engine): export page images on worker threads (about 80% less wall time)
Packaging: fetch OCR models from the ONNX URLs (legacy RTEN URLs return 403)
refactor(ui): use craft-ui's ComboBox for every dropdown (#4988)
Some checks failed
ci.yml / refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) (push) Failing after 0s
freebsd.yml / refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) (push) Failing after 0s
ci.yml / refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) (pull_request) Failing after 0s
freebsd.yml / refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) (pull_request) Failing after 0s
nix.yml / refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) (pull_request) Failing after 0s
packaging-lint.yml / refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) (pull_request) Failing after 0s
sonarcloud.yml / refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) (pull_request) Failing after 0s
nix.yml / refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) (push) Failing after 0s
packaging-lint.yml / refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) (push) Failing after 0s
sonarcloud.yml / refactor(ui): use craft-ui's ComboBox for every dropdown (#4988) (push) Failing after 0s
9e90b2a54d
* Use craft_ui::ComboBox so dropdown menus grow back (egui#5225)

* chore(deps): craft-libs 60d60d48 (dropdown fixes)

* chore(deps): craft-libs 6af63481 (dropdown fixes)

* chore(deps): craft-libs 4d7b82f7 (dropdown fixes)

* chore(deps): craft-libs 92d392cf (#387 merged)
alf merged commit 9e90b2a54d into main 2026-10-27 20:25:26 +00:00
alf deleted branch chore/sync-upstream-20261027 2026-10-27 20:25:27 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/pdfcraft!10
No description provided.