crates/engine/src/export.rs: main moved the code to export/; the 16-bit ZIP size test ported to export/tests.rs
crates/ui-egui/src/panels/dialogs.rs: main moved the dialog to dialogs.rs and dialogs/export.rs; the LZW note helpers, preset hover hint and tests ported there
crates/ui-egui/src/panels/grid.rs: calls crate::dialogs::preset_lzw_note
The doc comment of export_dialog_params stays directly above that function (review fix)
crates/engine/src/export.rs: main moved the code to export/prepare.rs; hunk ported there by hand
docs/gaps.md, docs/parity-checklist.md: header keeps the newer line, revision rows are the union
The pixel fields of Export > Image Sizing had a step of 16, and a typed
value is snapped to the step, so 1080 became 1088 and 3000 became 3008.
Use whole pixels; keyboard nudges stay about 100 px (range / 200).
The restore actions use the recorded folder without checking that it still
exists, so an upgrade creates it again rather than using the default folder.
`rating:>=3`, `iso:<=400`, `f:>=2.8` read the `=` as part of the number, the
parse failed, and the token silently matched no photo. Parse the two-character
operators first and compare inclusively; `>`, `<`, `=` and bare numbers are
unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SqKgSkHi5MfTQFrZvDKBjm
* LR-PREF-SHORTCUTS: the shortcuts panel's Fixed keys ignore keys saved for unknown commands
* KEYC-METADATA: an Add Keywords request the Keywords panel can't take in time expires
* LR-META-INFO: Target Photo saves an Info edit to the photo it shows
16-bit LZW TIFFs come out larger than uncompressed ones and slower than
ZIP. The export keeps LZW exactly as picked (some software reads only
LZW), and says what it costs where it is chosen:
- Export dialog: a note under Compression when LZW is selected, worded
more strongly at 16 bit, a milder one at 8 bit and 32-bit float.
- Export presets that write LZW TIFFs carry the same hint on hover, in
the dialog's Preset list and the grid's Export with Preset menu.
- tiffCompression docs: MCP schema and headless params, the user export
guide and the parity checklist.
Tests: the note shows for LZW only and under the Compression choice
(headless), presets get the same hint, the dialog keeps LZW; 16-bit ZIP
is never larger than uncompressed on a noisy synthetic render (noise
0 to 0.1) and on the demo photo's export.
Fixes#2882
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014ti8KemZbjE2ZgHgV1q1BM
Preserve current main, adapt frame/input and IME handling, and keep library
check results stable across layout passes. Include the matching Nix font lock
and reviewed attribution changes.
Lightroom Classic's keyboard shortcut page lists Command+K (Ctrl+K on
Windows) for Add keywords. LightCraft had no key for it.
Add Keywords (panel.addKeywords, Cmd+K) shows the Keywords panel,
opens its Keywording section when it is folded shut, and puts the
cursor in the Add keyword box, so the next keywords typed go to the
selected photos. Pressed again, it leaves the panel open. With no photo
selected the panel shows its note, and selecting photos later does not
move the cursor into the box.
The command label has a row in every catalog. The KEYC-METADATA row,
docs/ui-parity.md and docs/library-shortcuts.md list the key. The
KEYC-METADATA row also lists the existing Alt+1 to Alt+9 keyword set
keys in place of "no keyword sets".