Commit Graph
4109 Commits
Author SHA1 Message Date
Nathaniel LedfordandClaude Opus 5.5 a5e1cee421 LR-VIEW-PHOTOGRID: the checklist's Last updated line names the selection-ring rows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 09:18:32 -04:00
Nathaniel LedfordandClaude Opus 5.5 c9c10481fd LR-VIEW-FILMSTRIP: the parity row says the selection ring needs a loaded thumbnail
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 09:18:32 -04:00
Nathaniel LedfordandClaude Opus 5.5 58b091f3d6 LR-VIEW-PHOTOGRID: the checklist names the skeleton token
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 09:18:32 -04:00
Nathaniel LedfordandClaude Opus 5.5 58fac428ce LR-VIEW-PHOTOGRID: the loading slab uses the skeleton token #2077 adds
whose picture is still being made; this PR had added `placeholder` for
the same slab. Both now add the same token, with the same name, doc and
colours, so the two merge into one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 09:18:32 -04:00
Nathaniel LedfordandClaude 4f31cc5c3c LR-VIEW-PHOTOGRID: the docs name Compare, Survey and People's rings too
- docs/whats-new.md, docs/parity-checklist.md (LR-VIEW-SURVEY row and the
  revision-history line): the active-photo ring in Compare, Reference,
  Survey and the People view.
- tests_grid.rs: the ring comment matches the paint order.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-28 09:18:31 -04:00
Nathaniel LedfordandClaude b2e6657b95 LR-VIEW-PHOTOGRID: the active ring shows in Compare, Survey and the face tiles too, with no seam at fractional scales
Review of the selection rings found the grid test never checked the active
(top-left) photo, a selected ring that fell under 3:1 on label-tinted cells,
and other places still framing the selection in fixed white.

- tests_grid.rs: the active photo is now checked (it was skipped by a leftover
  x filter): a 3 pt `ring_active` stroke over a 1 pt `ring_inner` one, and not
  white in a light theme
- theme.rs: `ring_selected` is also tested at 3:1 against the selected cell and
  its label-tinted forms; Silver and Paper's goes darker (0x4a) and Charcoal
  and Midnight's lighter (0xc0) to pass
- panels/grid.rs: the active ring is one 3 pt stroke with the 1 pt inner line
  on top, both on the same rect, so two separately snapped strokes cannot
  leave a half-pixel seam at 1.25x, 1.5x or 1.75x
- panels/compare.rs: Compare, Reference and Survey frame the active tile with
  `selection_ring` instead of a white 2 pt stroke; the placeholder uses the
  tile's own tokens
- panels/settings.rs: the theme preview's mini filmstrip rings its selected
  cell with the theme's `ring_active`
- panels/people.rs: a selected face tile uses the same ring
- tests_compare.rs, tests_filmstrip.rs: a Survey test in a light theme and the
  filmstrip test adjusted to the new widths

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-28 09:18:31 -04:00
Nathaniel LedfordandClaude ecba8045bf LR-VIEW-PHOTOGRID: the active photo's selection ring shows on light themes and differs from the others by weight
The active photo had a 2 px pure white outline and the other selected photos
grey 170, so on Silver and Paper's light grid the active ring vanished and the
two differed by lightness alone. The loading placeholder was a fixed dark grey
slab in every theme.

- theme.rs: new tokens `ring_active`, `ring_inner`, `ring_selected` and
  `placeholder`, per theme; tests that every theme's rings stand 3:1 against
  the grid and the square grid's cells, and that the placeholder follows the
  theme's family
- panels/grid.rs: `selection_ring` draws the active ring as 3 pt (1 pt inner
  line against the photo, 2 pt theme line) and the others as 1.5 pt; the grid
  uses it for loaded and unloaded thumbnails, and the placeholder token
- panels/detail.rs: the filmstrip uses the same ring and rule
- panels/compare.rs: the compare placeholder uses the token
- tests_grid.rs, tests_filmstrip.rs: painted ring widths and colours in a
  light theme, active versus selected versus unselected
- docs/parity-checklist.md, docs/whats-new.md: rows and entry

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-28 09:18:31 -04:00
Dylan M. Taylor 59a5d00c60 Merge pull request #3111 from dylanmtaylor/sonar/enforce-clippy-standards
Enforce Rust coding standards via Clippy
2026-10-28 01:31:16 -04:00
Dylan M. Taylor 307ecb981d fix(ui-egui): keep the Export dialog's original spacing before the preset row 2026-10-28 04:06:29 +00:00
Dylan M. Taylor 6e54232557 test: factor long UI and MCP scenarios into helpers 2026-10-28 03:25:18 +00:00
Dylan M. Taylor f6489e60d8 refactor(lightcraft): import prefs and GPU crash names explicitly 2026-10-28 03:25:18 +00:00
Dylan M. Taylor ce3ce07771 refactor(ui-egui): split the top bar and slider widget 2026-10-28 03:25:18 +00:00
Dylan M. Taylor f858578f8c refactor(ui-egui): split the detail view, mask overlay and denoise panel 2026-10-28 03:25:18 +00:00
Dylan M. Taylor 4ed9a5c869 refactor(ui-egui): split the grid cell and context menu 2026-10-28 03:25:18 +00:00
Dylan M. Taylor 620826cac0 refactor(ui-egui): shorten functions that format localized messages 2026-10-28 03:25:18 +00:00
Dylan M. Taylor 7b4236bc8b refactor(ui-egui): pass related arguments as small structs 2026-10-28 03:25:18 +00:00
Dylan M. Taylor b74612513c refactor(ui-egui): split the Export dialog body into sections 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 8c3dd7ebd2 refactor(ui-egui): split dialog frame into title, buttons and confirm 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 335defee47 refactor(ui-egui): one function per dialog body 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 627804c161 refactor(ui-egui): split import finish and print settings 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 63755f8a2e refactor(ui-egui): split the global shortcut dispatcher 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 2f3002bc5c refactor(ui-egui): split preset import and find-missing commands 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 71bf82f7bb refactor(ui-egui): split run_ui_command into parts and per-command functions 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 6774d1419f refactor(ui-egui): replace wildcard imports with explicit lists 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 5b5ddc3904 fix(engine): import denoise model and gpu names explicitly 2026-10-28 03:24:18 +00:00
Dylan M. Taylor eeb63636e8 docs: clarify crate lint attribute placement 2026-10-28 03:24:18 +00:00
Dylan M. Taylor b298c79a7d docs: correct clippy indexing guidance 2026-10-28 03:24:18 +00:00
Dylan M. Taylor ca69e74b62 fix(raw): check opcode byte counts without overflow 2026-10-28 03:24:18 +00:00
Dylan M. Taylor c9d44f7804 style(engine): expand module imports explicitly 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 4d8369b091 test(engine): factor complex regression scenarios 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 47839a61db refactor(bench): dispatch specialized render modes 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 9c1ea73116 refactor(gpu): extract neural plan validation 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 9e1483388f refactor(import): separate Lightroom collection staging 2026-10-28 03:24:18 +00:00
Dylan M. Taylor e8f52cc07e refactor(print): define blit rectangles 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 33252920e3 refactor(denoise): model installation requests 2026-10-28 03:24:18 +00:00
Dylan M. Taylor de6cb3cd41 refactor(codecs): separate TIFF sample encoders 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 694b237f0a refactor(faces): model crop and plane shift inputs 2026-10-28 03:24:18 +00:00
Dylan M. Taylor a3da2d1040 refactor(denoise): model Bayer tile regions 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 2f42ff8944 refactor(pipeline): group pixel finish parameters 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 196a0c1a45 docs: require lint inheritance for new crates 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 2c7d98b5e2 refactor(raw): separate DNG metadata and opcode parsing 2026-10-28 03:24:18 +00:00
Dylan M. Taylor c1766c016b refactor(scenes): model water lighting parameters 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 38c3232214 refactor(meta): isolate descriptive metadata merging 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 32e4874569 docs: explain workspace lint inheritance 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 59083081ae fix(sysmem): inherit workspace Clippy denies 2026-10-28 03:24:18 +00:00
Dylan M. Taylor c7ef259f36 refactor(heif): isolate SPS VUI parsing 2026-10-28 03:24:18 +00:00
Dylan M. Taylor 96c3190300 chore(clippy): enforce workspace lint rules 2026-10-28 03:24:17 +00:00
Dylan M. Taylor 56b5c8b076 Scan the whole repository again in SonarCloud (#3224)
* Scan the whole repository again in SonarCloud

* Classify the repository's test files as tests in SonarCloud
2026-10-27 23:18:52 -04:00
aiongg 37b2e523ad Merge pull request #3104 from Jeremy8776/feat/install-scope-policy
Windows installation policy: LightCraft
2026-10-27 17:16:18 -04:00
Jeremy 5dea67e348 docs(installer): say that an upgrade reuses the recorded folder even if it was deleted
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.
2026-10-27 21:13:30 +00:00