Commit Graph
3155 Commits
Author SHA1 Message Date
aiongg 0bcf83d474 refactor(forms): split af.rs into af/
New modules: af/script.rs, af/calc.rs, af/format.rs.
2026-10-26 22:18:50 +00:00
aiongg 22c85d3679 refactor(forms): split author.rs into author/
New modules: author/tree.rs, author/look.rs, author/edit.rs, author/lifecycle.rs.
2026-10-26 22:18:50 +00:00
aiongg 4362d705e6 refactor(forms): split lib.rs into read, tab_order, values, appearances
New modules: read.rs, tab_order.rs, values.rs, appearances.rs.
2026-10-26 22:18:50 +00:00
aiongg 676b30d83c refactor(ui-egui): split sign_ui.rs into sign_ui/
New modules: dialog, panel.
2026-10-26 22:18:50 +00:00
aiongg ce5d36e470 refactor(ui-egui): split prepare.rs into prepare/
New modules: draft, properties, tabs.
2026-10-26 22:18:50 +00:00
aiongg eb69f95efe test(ui-egui): list edit_text_ui/image.rs among the page modules 2026-10-26 22:18:50 +00:00
aiongg c83a42144a refactor(ui-egui): split edit_text_ui.rs into edit_text_ui/
New modules: background, layout, image.
2026-10-26 21:17:18 +00:00
aiongg 36917232ba refactor(cos): split document.rs into document/
New modules: state, xref, open, objects, reader.
2026-10-26 21:17:18 +00:00
aiongg 61c9164037 refactor(ui-egui): split control.rs into control/
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.
2026-10-26 21:17:18 +00:00
aiongg 7cf7d1338b test(ui-egui): point the page-pointer source scan at canvas/*.rs 2026-10-26 21:17:18 +00:00
aiongg 41a525eee3 refactor(ui-egui): split canvas.rs into canvas/
New modules: find, selection, cache, zoom, navigation, xform, organize, bars, area.
fn document_area stays in canvas.rs this round.
2026-10-26 21:17:18 +00:00
aiongg d69b566db6 refactor(ui-egui): split app.rs into app/
New modules: app/files, links, input, keys, clipboard, window, prefs, commands, control, frame (frame holds panel_migration_tests).
2026-10-26 21:17:18 +00:00
aiongg 5e61134225 refactor(ui-egui): split lib.rs into app.rs, state.rs and hooks.rs
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.
2026-10-26 21:14:39 +00:00
aiongg e2b30ba7b5 docs: name i18n.rs and demo_pdf.rs after the mod.rs moves 2026-10-26 20:51:19 +00:00
aiongg b1a09ee08d docs(parity): point evidence at the tests' new files 2026-10-26 20:51:19 +00:00
aiongg da51747654 test(ui-egui): skip test files in the page pointer scan 2026-10-26 20:51:19 +00:00
aiongg d39b6629c8 test(pdfcraft): cut main.rs at the moved test module's declaration 2026-10-26 20:51:19 +00:00
aiongg bc69802ed9 refactor(ui-egui): move control.rs's lifecycle tests to control/lifecycle_tests.rs 2026-10-26 20:51:19 +00:00
aiongg 0457352c23 refactor(engine): move signature_scan.rs's tests to signature_scan/tests.rs 2026-10-26 20:51:19 +00:00
aiongg f281f0f18d refactor(ui-egui): move theme.rs's tests to theme/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 0dc3d45f77 refactor(ui-egui): move page_pointer.rs's tests to page_pointer/tests.rs 2026-10-26 20:51:19 +00:00
aiongg b1761d5bbf refactor(engine): move links.rs's tests to links/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 52f15202ef refactor(ui-egui): move bidi.rs's tests to bidi/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 4739740804 refactor(ui-egui): move combine_grid.rs's tests to combine_grid/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 7d54ae2be3 refactor(ui-egui): move motion.rs's tests to motion/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 0ead57f2b5 refactor(ui-egui): move comments.rs's tests to comments/tests.rs 2026-10-26 20:51:19 +00:00
aiongg f700dc3f2e refactor(export): move pptx.rs's tests to pptx/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 37fa7dca86 refactor(platform): move staging.rs's tests to staging/tests.rs 2026-10-26 20:51:19 +00:00
aiongg d823fbd77a refactor(forms): move af.rs's tests to af/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 701988ecd6 refactor(automation): move lib.rs's tests to tests.rs 2026-10-26 20:51:19 +00:00
aiongg 9d6ae81f0e refactor(ui-egui): move editing.rs's tests to editing/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 801729ed19 refactor(pdfcraft): move main.rs's tests to tests.rs 2026-10-26 20:51:19 +00:00
aiongg e0033d3989 refactor(export): move lib.rs's tests to tests.rs 2026-10-26 20:51:19 +00:00
aiongg 79d72038f1 refactor(fonts): move pdf.rs's tests to pdf/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 6d8c0bb8dd refactor(ui-egui): move i18n.rs's tests to i18n/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 38e95285d3 refactor(cos): move document.rs's tests to document/tests.rs 2026-10-26 20:51:19 +00:00
aiongg a892922237 refactor(render): move text.rs's tests to text/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 401397d2be refactor(ui-egui): move canvas.rs's tests to canvas/tests.rs 2026-10-26 20:51:19 +00:00
aiongg dd927f62cb refactor(render): move inspect.rs's tests to inspect/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 2f88c5e192 refactor(render): move raster.rs's tests to raster/tests.rs 2026-10-26 20:51:19 +00:00
aiongg 251d0a8f26 refactor(xtask): move demo_pdf/mod.rs to demo_pdf.rs 2026-10-26 20:51:19 +00:00
aiongg c3f6fa3b8c style(ui-egui): format i18n.rs after the include path update 2026-10-26 20:51:18 +00:00
aiongg d932d3bb3c refactor(ui-egui): move i18n/mod.rs to i18n.rs 2026-10-26 20:51:18 +00:00
aiongg c316328bb0 test: scan source directories recursively 2026-10-26 20:51:18 +00:00
Dylan M. Taylor f94668f1c8 fix(sonar): clear css:S9441 and S3776 in forms actions 2026-10-26 16:01:32 -04:00
Dylan M. Taylor 32a9af4d08 proposal(redact): unlink unused Type 3 glyph programs and fonts on redaction (F-011) 2026-10-26 16:01:29 -04:00
aiongg d28d047a9e Merge pull request #4730 from alehel/refactor/engine-lib-split
refactor(engine): split lib.rs into modules
2026-10-26 14:35:30 -04:00
aiongg 64e0868b84 feat(ui): menus from craft-menu, native on macOS (#4752)
* feat(ui): menus from craft-menu, native on macOS

One menu definition (crates/ui-egui/src/menus.rs) built from the command
registry drives the native macOS menu bar (craft-menu's muda backend) and
an in-window egui bar on Windows, Linux and the web, which takes the place
of the "Menu" button at the start of the top bar.

- File, Edit, View, Sign, Window and Help, with separators and submenus.
  Edit gains Cut, Paste, Delete and Select All (they act as their keys
  do) and a Pages submenu; View gains a Tools submenu built from the All
  tools groups; Sign holds Fill & Sign and the certificate commands;
  Window lists the open documents.
- Toggles are check items and the page layouts, side panels and themes
  radio items, with their state from the app.
- File > Open Recent lists the recent files (file.open_recent with an
  index).
- A menu click and its shortcut run the same dispatch, including the
  form-field deferral (#166) and macOS Cmd+W closing the window (#869).
  Dialogs and the palette grey the menus through craft-menu's gate.
- Quit goes through craft-quit, so the unsaved-changes prompt runs.
- craft-ui, craft-quit, craft-menu and craft-keymap pinned to
  storytold/craft-libs 70ade1fb.

Menu state and dispatch follow #2610 by @hajdukste; the menu tree and the
view and panel items follow #3870 by @RivanJarjes.

* test(ui): the menu model, native dispatch and the in-window bar

- Unit tests for the menu definition: every registry menu command is
  listed once with its registry shortcut; check and radio items follow
  the app; a dialog greys document commands and drops their clicks; the
  recent files and open documents are listed once each; a native menu
  click (through a fake craft-menu backend) runs its command once.
- The kittests that opened the old "Menu" button use the menu bar, and
  the ones that look up a label the bar's titles share (Edit, File,
  Sign) skip the bar.
- The in-window bar takes its titles' width, so the mode tabs, search
  and buttons keep their place in the top bar.
- Edit menu clicks that stand for keys (Copy, Cut, Delete, Select All)
  reach this frame's input from `logic`, where test hosts see them too.

* test(ui): the language switch test opens File in the menu bar

Translated titles and rows carry their mnemonic ("ファイル(F)", "開く(O)…").

* feat(ui): the menu bars run Quit themselves, the bar shrinks to its titles, and AppKit's window list stays off

craft-libs main edc41f6 (craft-libs#354): MenuBarUi runs Quit and Minimize, shrink_to_fit sizes the in-window bar, Key::parse reads the registry's arrow and minus glyphs, and mac::install_with(.., window_list(false)) keeps the Window menu to PdfCraft's own document list.

* fix(ui): the menu command filter is an if, for clippy

* test(ui): drop a needless borrow in the edit-tab helper

* test(ui): two tests follow the menu bar

The tests were wrong, not the app. The Preferences language test clicked the old Menu button; it opens Edit in the menu bar and its Preferences row. The prepare Actions test counted the Edit labels: the narrower menu bar leaves room for the Edit tab, so the rows' Edit buttons come third and fourth.
2026-10-26 00:57:46 -04:00
aiongg 01b696df2c test(ui): CJK interface tests skip without craft-fonts (#4706)
* test(ui): CJK interface tests skip without craft-fonts

* test(ui): a build that requires craft-fonts never skips the CJK interface tests
2026-10-25 23:11:45 -04:00
Dylan M. Taylor 13bfbd0761 Merge pull request #4737 from storytold/chore/deps-safe-refresh
chore(deps): bump 11 safe dependency updates
2026-10-25 19:03:52 -04:00