aiongg
703efef6cc
refactor(export): split lib.rs into layout, as_html, as_docx, as_rtf
...
New modules: layout.rs (data types and layout analysis), as_html.rs, as_docx.rs, as_rtf.rs.
2026-10-26 22:18:50 +00:00
aiongg
cc9b5057bf
refactor(redact): split interp.rs into interp/
...
New modules: interp/layers.rs (hidden-layer handling), interp/prune.rs (resource pruning and unlinking).
2026-10-26 22:18:50 +00:00
aiongg
e4abf5b5dc
refactor(engine): split lib.rs's helpers into doc_state.rs and clock.rs
...
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).
2026-10-26 22:18:50 +00:00
aiongg
6dcd93ab1d
refactor(engine): move the re-exports from reexports.rs into lib.rs
2026-10-26 22:18:50 +00:00
aiongg
09d75f7757
refactor(ui-egui): split combine_ui.rs into combine_ui/
...
New modules: files, view, table, parts, session, actions (tests.rs moved in the previous commit).
2026-10-26 22:18:50 +00:00
aiongg
d558972e78
refactor(ui-egui): move combine_ui tests to combine_ui/tests.rs
2026-10-26 22:18:50 +00:00
aiongg
58c5799e3f
refactor(organize): split import.rs into import/
...
New modules: import/copy.rs, import/fields.rs, import/combine.rs, import/carry.rs.
2026-10-26 22:18:50 +00:00
aiongg
6ab1820bae
refactor(xfdf): split lib.rs into common, xfdf, fdf
...
New modules: common.rs, xfdf.rs, fdf.rs.
2026-10-26 22:18:50 +00:00
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
vangel76 and Claude Sonnet 5.5
929d350f1d
perf(cos): write hex strings, integers and references without the formatter
...
serialize wrote every byte of a hex string, every integer and every object
number through write!. A table lookup and a small digit loop give the same
bytes in a fraction of the instructions. The octal escape in literal strings
and the #xx escape in names use the same helpers.
Fixes #4870
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-26 22:00:43 +01:00
vangel76 and Claude Sonnet 5.5
a7baf8a2af
perf(cos): write_full keeps the objects it parsed while numbering
...
write_full parsed each object once to number it and again, after the
128-object reader cache had dropped it, to write it. Keep the parsed object
from the traversal and write that, within a budget of 64 MiB of owned bytes
and 2M tree nodes; past it the object is read again as before, which keeps
the memory bound and the "read differently while saving" check.
Fixes #4869
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-26 21:59:12 +01:00
vangel76 and Claude Sonnet 5.5
be8345aa3f
perf(cos): rebuild a damaged cross-reference index without parsing every object
...
Reconstruct parsed every object to see whether it is an object stream, and
searched each object's next 1,024 bytes and the whole file byte by byte.
Only objects whose dictionary holds ObjStm or a # (a name can hide letters as
#xx) are now parsed for that check. Every /XRef position is found once, and
find() scans for the needle's rarest byte in 32-byte blocks. The index, trailer
and repair log are unchanged.
Fixes #4868
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-26 21:57:29 +01:00
vangel76 and Claude Sonnet 5.5
fe03703a3b
perf(cos): keep a running total of the scan reader's cache size
...
ObjectReader::try_get measured every parsed object in its cache (up to 128)
after each read to check the byte budget. Keep a running total instead and
measure the whole cache only when something other than one freshly parsed
object changed it. Eviction timing is unchanged, so output is identical.
Fixes #4867
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-26 21:55:16 +01: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