lightcraft/crates
Nathaniel Ledford 94de255e74
LRC-LIB-SMARTCOLL: a standalone album picker with a tree and search
A flat dropdown doesn't scale to the hundreds of albums and smart
albums a library grows. crates/ui-egui/src/album_picker.rs is a
reusable picker:

- A button opens a popup with a search field, focused on open.
- With nothing typed it shows the sidebar's tree in the sidebar's order
  (entries_from uses Catalog::album_children_by_parent): folders with
  painted disclosure triangles and folder icons, album / smart-album
  icons. Folders are closed except those holding the current choice.
- Typing lists the albums whose "Folder / Name" path holds every word,
  in any case, names starting with the query first. ↑ / ↓ move, Enter
  picks, Esc closes just the popup.
- Albums that can't be picked stay visible but greyed, the reason on
  hover, instead of vanishing.
- Pure, unit-tested helpers: path_label, ancestors, visible_tree,
  search, set_depths. Widget ids albumPicker / albumPickerSearch /
  albumPickerFolder / albumPickerItem.

The rule editor's Album value uses it. The album being edited and
albums that would loop back are blocked with a reason ("This is the
album you're editing", "It tests this album, so testing it back would
loop"). This also removes the stray divider the old dropdown drew above
"Smart Albums" when no regular album preceded it. New strings are
translated in all seven locales, and the strict i18n test lists them;
the unused "Smart Albums" heading is dropped. Headless tests: browsing
the tree, typing with ↑ / Enter, greyed loops.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 10:54:57 -04:00
..
catalog Tests: neutral example names in file-path and long-name fixtures 2026-10-09 10:54:57 -04:00
codecs HEIC: as_chunks for 16-bit samples (clippy 1.99, caught by the new heif CI step) 2026-10-08 23:57:22 -04:00
color Issue #188: D65 reads as a small positive tint (test from #336) 2026-10-08 17:26:01 +00:00
denoise LR-EDIT-DETAIL-DENOISE: address installation and model-policy review 2026-10-08 22:07:23 -04:00
denoise-core LR-EDIT-DETAIL-DENOISE: address installation and model-policy review 2026-10-08 22:07:23 -04:00
develop LR-EDIT-DETAIL-DENOISE: non-destructive AI RAW denoise with pure-Rust CPU/GPU 2026-10-08 22:07:20 -04:00
engine LRC-LIB-SMARTCOLL: Update Rules from Current Filter refuses loops 2026-10-09 10:54:57 -04:00
faces LR-PREF-PEOPLE: update pure-Rust recognition and preserve valid model replacements 2026-10-08 22:29:31 -04:00
fetch Fetch: say where the bearer token goes (#259) 2026-10-08 17:55:31 +00:00
geom Crop: drag_crop domain operation for handle drags (#295) 2026-10-08 10:35:46 -04:00
gpu LR-BEHAV-GPU: compile DX12 shaders with FXC, never a stray dxcompiler.dll (issue #471) 2026-10-09 04:34:51 -05:00
heif LR-IMP-FORMATS: HEIC/HEIF decode behind the optional `heif` feature 2026-10-08 12:45:33 -04:00
mcp Merge the faces stack (#172/#173/#174, integrate-batch-14) into AI RAW denoise (#384) 2026-10-09 00:29:59 -04:00
merge LR-IMP-FORMATS: read DNG BaselineSharpness and keep it in DNG exports 2026-10-08 18:18:54 -07:00
meta M11.1: add CR3 decoding 2026-10-08 22:22:13 +03:00
pipeline LR-EDIT-COLOR-TEMP: camera-space white balance for raws with a colour matrix 2026-10-08 18:18:54 -07:00
preview Thumbnails: retire the replaced preview cache so its old jobs can't write 2026-10-07 20:23:17 -04:00
raster Merge pull request #56 from storytold/pr/never-crash-core 2026-10-04 14:23:22 -04:00
raw Merge PR #465 2026-10-09 08:34:42 -04:00
scenes Never crash: color, geom, raster, develop, scenes, preview, pipeline 2026-10-04 12:34:53 -04:00
segment LR-EDIT-DETAIL-DENOISE: list settings tabs from TABS; fix the SAM 3 worker's wasm check 2026-10-09 01:07:43 -04:00
sysmem Never crash: move the one unsafe FFI call into crates/sysmem 2026-10-05 02:06:08 -04:00
tiff LR-MASK-SKY: AI masks use DNG semantic mattes (iPhone ProRAW sky matte) 2026-10-08 18:18:54 -07:00
ui-egui LRC-LIB-SMARTCOLL: a standalone album picker with a tree and search 2026-10-09 10:54:57 -04:00