Commit Graph
3310 Commits
Author SHA1 Message Date
Dylan M. Taylor a0598816d2 Refactor js for strict Clippy checks 2026-10-27 23:12:51 +00:00
Dylan M. Taylor 4965e23bfe Refactor forms for strict Clippy checks 2026-10-27 23:12:51 +00:00
Dylan M. Taylor 5e75b9c3e6 Refactor export for strict Clippy checks 2026-10-27 23:12:51 +00:00
Dylan M. Taylor 166f706e3e Refactor engine for strict Clippy checks 2026-10-27 23:12:51 +00:00
Dylan M. Taylor de73c35e17 Refactor edit for strict Clippy checks 2026-10-27 23:12:51 +00:00
Dylan M. Taylor 84c873d2e1 Refactor cos for strict Clippy checks 2026-10-27 23:12:51 +00:00
Dylan M. Taylor 9d97546081 Refactor automation for strict Clippy checks 2026-10-27 23:12:51 +00:00
Dylan M. Taylor 7d1ed99f51 Refactor annot for strict Clippy checks 2026-10-27 23:12:50 +00:00
aiongg 5af1027652 Merge pull request #4892 from Jeremy8776/feat/install-scope-policy
Windows installation policy: PdfCraft
2026-10-27 17:11:07 -04:00
aiongg dfb74c7990 ci: use storytold/craft-common-actions windows-arm64 workflow 2026-10-27 20:52:54 +00:00
aiongg e8955737e0 Merge storytold/pdfcraft main 2026-10-27 20:52:31 +00:00
aiongg 9e90b2a54d refactor(ui): use craft-ui's ComboBox for every dropdown (#4988)
* 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)
2026-10-27 16:22:20 -04:00
aiongg 1889690bfa Merge pull request #5039 from Jeremy8776/fix/ocr-model-onnx-urls
Packaging: fetch OCR models from the ONNX URLs (legacy RTEN URLs return 403)
2026-10-27 15:57:22 -04:00
Jeremy bf353cb0d9 fix(installer): check the exact architecture-specific machine folder
The pre-signing check matched any folder named Program Files, so it rejected
a valid MSI when Windows resolves Program Files elsewhere, accepted the 64-bit
root for an x86 package and accepted a different app name. Build the expected
folder from the package architecture's resolved root and the policy name.
2026-10-27 19:13:37 +00:00
Kyle Kassen da8cea2b0b M10: reuse verified OCR model and packaging prerequisites 2026-10-27 18:54:41 +00:00
aiongg e9fc890a86 Merge pull request #5026 from Silvertree2010/perf/export-speed
perf(engine): export page images on worker threads (about 80% less wall time)
2026-10-27 13:42:21 -04:00
NetterSilverandClaude Opus 5.5 37bf4ee986 perf(engine): export page images on worker threads
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>
2026-10-27 17:41:38 +01:00
Jeremy 4580e5c294 fix(installer): resolve the wizard scope and folder correctly
Real msiexec runs (per-user and all-users, silent and wizard) found two defects
that the metadata fixtures cannot see:

- "Only for me" published ALLUSERS=2, so FindRelatedProducts treated the run as
  per-machine and skipped the existing per-user copy. An interactive upgrade
  left two registered products and uninstall left files behind. The page now
  leaves ALLUSERS unset for a per-user choice.
- Windows Installer resolves Program Files once, for the context it started in,
  so choosing "Everyone" in the wizard installed into the user profile with a
  machine-wide registration. The wizard now sets the new-install folder itself
  after the choice (Program Files, Program Files (x86) for 32-bit, or the
  per-user Programs folder). Silent installs are unchanged.

check-install-policy.ps1 now fails if either regresses.
2026-10-27 15:32:34 +00:00
Jeremy c56a4b3399 docs(installer): note that the 32-bit all-users folder is Program Files (x86); tidy wording 2026-10-27 12:25:20 +00:00
Jeremy 315e7fad66 docs(installer): describe the per-user default install location and scope 2026-10-27 12:09:03 +00:00
Jeremy c1670d0aa5 fix(installer): keep the desktop shortcut on a machine-wide update; harden install-policy checks 2026-10-27 12:01:39 +00:00
Jeremy c39a0f3658 fix(installer): address scope and ARM64 review feedback 2026-10-27 12:01:39 +00:00
Jeremy 32df17722c feat(installer): default to a per-user ArtCraft folder 2026-10-27 12:01:39 +00:00
aiongg 1dd2737b47 Merge pull request #4889 from aiongg/layout
refactor: shared module layout (craft-contrib#20)
2026-10-26 21:31:30 -04:00
aiongg f022ef0671 style: cargo fmt on moved files 2026-10-27 00:34:32 +00:00
aiongg 323172e860 test(automation): end the file access scan at the test module, not at a cfg(test) use 2026-10-27 00:34:32 +00:00
aiongg d449f2ce63 docs: name the ui-egui files by their new directories 2026-10-27 00:34:32 +00:00
aiongg 064632e0e8 test(ui-egui): name the page modules by their new directories 2026-10-27 00:34:32 +00:00
aiongg 3dbea4e7a0 docs(parity): point evidence at the ui-egui files' new directories 2026-10-27 00:34:32 +00:00
aiongg cb94c8f047 refactor(ui-egui): move open_worker_tests.rs to platform/open_worker/tests.rs 2026-10-27 00:34:32 +00:00
aiongg 636656a9ea refactor(ui-egui): move tab_context.rs into menus/ 2026-10-27 00:34:32 +00:00
aiongg cd0fc37c8d refactor(ui-egui): move folders_ui.rs into home/ 2026-10-27 00:34:32 +00:00
aiongg 7b3d688754 test(ui-egui): rerun the fontconfig tests by their platform:: path 2026-10-27 00:34:32 +00:00
aiongg 80c4572cfa refactor(ui-egui): move system_fonts.rs into platform/ 2026-10-27 00:34:32 +00:00
aiongg ed09547ecf refactor(ui-egui): move window_state.rs into persist/ 2026-10-27 00:34:32 +00:00
aiongg d25378c336 refactor(ui-egui): move units.rs into persist/ 2026-10-27 00:34:32 +00:00
aiongg dc25a6e341 refactor(ui-egui): move recovery.rs into persist/ 2026-10-27 00:34:32 +00:00
aiongg 615232d0e5 refactor(ui-egui): move last_view.rs into persist/ 2026-10-27 00:34:32 +00:00
aiongg 5527f931c9 refactor(ui-egui): move last_session.rs into persist/ 2026-10-27 00:34:32 +00:00
aiongg 687f6f6187 refactor(ui-egui): move window_controls.rs into platform/ 2026-10-27 00:34:32 +00:00
aiongg 90a1880aee refactor(ui-egui): move updates.rs into platform/ 2026-10-27 00:34:32 +00:00
aiongg dc97e74e57 refactor(ui-egui): move ui_scale.rs into platform/ 2026-10-27 00:34:32 +00:00
aiongg 2b4f7694dc refactor(ui-egui): move portable.rs into platform/ 2026-10-27 00:34:32 +00:00
aiongg b37c3a934c refactor(ui-egui): move pickers.rs into platform/ 2026-10-27 00:34:32 +00:00
aiongg 16b49776de refactor(ui-egui): move open_worker.rs into platform/ 2026-10-27 00:34:32 +00:00
aiongg d3cfadd9e2 refactor(ui-egui): move motion.rs into platform/ 2026-10-27 00:34:32 +00:00
aiongg 6638646314 refactor(ui-egui): move macos_association.rs into platform/ 2026-10-27 00:34:23 +00:00
skylar taylor-barrick 9a9813bf7d Merge pull request #4880 from storytold/fix/nextest-0.9.150
ci: require nextest 0.9.150
2026-10-26 17:39:25 -06:00
aiongg d15c5a2e21 refactor(ui-egui): move file_watch.rs into platform/ 2026-10-26 22:46:12 +00:00
aiongg 3e7cc6e5cb refactor(ui-egui): move drag_pointer.rs into platform/ 2026-10-26 22:46:12 +00:00