Jason Baldwin
38d53ccaee
Merge slideshow-composer into slideshow-overlays (origin/main: batch 32; toast clear of the slideshow controls)
2026-10-13 06:55:02 +02:00
Jason Baldwin
2faee15203
Merge slideshow-playback into slideshow-composer (origin/main: batch 32; toast clear of the slideshow controls)
2026-10-13 06:55:02 +02:00
Jason Baldwin
6246ea67a4
LRC-SS-PLAYBACK: during a slideshow the toast shows at the top, clear of the playback controls (toasts take the pointer since #7ccff3b9)
2026-10-13 06:55:01 +02:00
Jason Baldwin
5c41859778
Merge remote-tracking branch 'origin/main' into slideshow-playback
2026-10-13 06:53:37 +02:00
Brandon Thomas
a1035f1372
Merge PR #997
2026-10-13 00:13:41 -04:00
Brandon Thomas
d5b8d52e1d
Merge PR #1262
2026-10-13 00:13:41 -04:00
Brandon Thomas
6568a7ae16
Merge PR #1260
2026-10-13 00:13:40 -04:00
Brandon Thomas
f2a9888f75
Merge PR #1257
2026-10-12 23:31:21 -04:00
Brandon Thomas
1f1374fd46
Merge PR #1254
2026-10-12 23:31:17 -04:00
Brandon Thomas
ade1a86a03
Merge PR #1253
2026-10-12 23:31:09 -04:00
Vikram Bhaskaran
20ba473e85
Let the deep-zoom preview margin cover wide local filters.
2026-10-13 01:24:35 +11:00
Vikram Bhaskaran
7b6b25e6ab
Composite straight alpha onto white before develop.
2026-10-13 01:24:15 +11:00
Vikram Bhaskaran
994c820bec
Include HEIC, HEIF, and NRW when a folder is imported.
2026-10-13 01:23:57 +11:00
Vikram Bhaskaran
fb725ce33f
Scroll the filmstrip when the same photo is shown from another source.
2026-10-13 01:23:51 +11:00
Markus Friedel and Claude Opus 5.5
77ebac813a
LR-LIB-ALBUM: "Include selected photos" option in New Album ( #1249 )
...
New Album always put the selection into the new album. Like Lightroom's
Create Collection, the dialog now has an "Include selected photos"
checkbox: ticked by default (today's behaviour), shown only when
something is selected and never for a folder. dialog.newAlbum takes
includeSelected; album.create already had addSelected.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-12 16:15:08 +02:00
Gert Pellin
7ccff3b96e
fix(toast): draw the toast as widgets so the message can be selected
...
The toast was painted straight onto the layer with painter.galley(), and
painted text is never hit-tested: nothing in it could be selected or
copied. A toast often carries the path or the command the user needs
elsewhere ("Exported frame to /path"), and egui's selectable labels —
on by default — only work on real widgets.
Draw it as an Area with a Frame and a wrapping Label instead, keeping the
same centring, 6 px radius, 20/11 padding and the 0.25 s fade-out.
The new tests assert the toast has an area of its own, that the pointer
reaches the text (egui offers the text cursor over it), and that a long
message still wraps within the canvas. All three fail when the toast is
painted, which is what they are for.
2026-10-12 16:14:39 +02:00
Jason Baldwin
b2036ba50d
Merge slideshow-composer into slideshow-overlays (origin/main: batch 31; whats-new keeps main's Reliability entry)
2026-10-11 17:12:42 +02:00
Jason Baldwin
2138175826
Merge slideshow-playback into slideshow-composer (origin/main: batch 31; locales merged keeping main's values, whats-new keeps main's Reliability entry, parity summary refreshed)
2026-10-11 17:11:12 +02:00
Jason Baldwin
d14a44630d
Merge origin/main into slideshow-playback (whats-new: batch 31's Reliability entry kept, Slideshow playback after it under 2026-10-11; parity summary refreshed)
2026-10-11 17:09:28 +02:00
Alfons Hoogervorst and Claude Sonnet 5.5
2801199bea
Issue #989 : fill_box reads its buffer with as_chunks::<3>() (clippy 1.99 chunks_exact_to_as_chunks)
...
Item 4 of #989 . Same elements and the same ignored remainder as chunks_exact(3),
checked on lengths 0-9 in a scratch file; the 13 spots tests pass and clippy over
the workspace without the desktop app package is clean under -D warnings. Items
1-3 of #989 (the macOS app build, the /bin/true lock test, eleven engine tests)
are not touched here.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-11 16:56:59 +02:00
Claude
5343fd10ff
LR-EXP-TYPE: the Export dialog is 615 pt wide with JPEG XL in the format row
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 14:49:19 +00:00
Claude
9e41805a12
M-edit-in: the many-photos test uses distinct files and edits before the second copy
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 14:31:29 +00:00
Jason Baldwin
56d78344c1
Merge slideshow-composer into slideshow-overlays (origin/main: watermark draws through the shared TextLayout with main's quarter-turn rotation, separate insets and preview floor scale; overlay watermark sanitizes insetX/insetY/rotation and maps legacy inset)
2026-10-11 16:26:40 +02:00
Jason Baldwin
efaa39b8b5
Merge slideshow-playback into slideshow-composer (origin/main: geocode + slideshow crates side by side in the manifests, locale keys from both, tracker summary refreshed)
2026-10-11 16:22:50 +02:00
Jason Baldwin
7b0fc19ebb
Merge origin/main into slideshow-playback (icons: Play/Pause beside grading and appearance icons; settings: Slideshow tab beside appearance cards; render: Slide and CompareRegion slots; tracker summary and whats-new)
2026-10-11 16:19:50 +02:00
Claude
3b306259e5
M-edit-in: the copies toast is a format string (move it to the -formats catalogs)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 14:05:56 +00:00
Claude
4ebb934c56
Merge PR #677
...
On merge: the HDR histogram is applied in develop_reporting (#712 split develop), is skipped for
draft renders (a second render per drag tick), and HdrBins::bin clamps a hand-built split so it
can't underflow (test hdr_bins_with_any_split_stay_in_range).
2026-10-11 13:09:34 +00:00
Claude
9cf47c86fe
Merge batch 30 fixes
2026-10-11 13:08:50 +00:00
Claude
7fe8f8dbd1
LR-BEHAV-UNDO: each rename-provenance fixture gets its own folder ( #874 's tests shared one and failed when run in parallel)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 13:08:37 +00:00
Jason Baldwin
29203d6eec
Merge slideshow-composer into slideshow-overlays (origin/main: integration batch 26, #975 ; no conflicts)
2026-10-11 15:05:04 +02:00
Jason Baldwin
ee8b56f1db
Merge slideshow-playback into slideshow-composer (origin/main: integration batch 26, #975 ; Cargo.lock: lightcraft-slideshow 0.6.0)
2026-10-11 15:05:04 +02:00
Claude
4ff1d9761d
Batch 30: a selected slider keeps only its arrow keys, so shortcuts work after a slider click ( #884 ); tests follow the merged dialog and panel state
...
#884 focuses a develop slider on click so the wheel and arrows adjust it, but a focused widget
owned the whole keyboard, so after touching a slider no shortcut fired (O for the mask overlay,
caught by mask_adjustments_hide_overlay_without_disabling_the_mask). Now a selected slider owns
the arrow keys only. The wheel test opens the Edit panel explicitly (the demo may start on it, and
panel.edit then toggles it shut), and the Export dialog snapshot is 546 px wide since #833 's
nine watermark positions.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 12:59:15 +00:00
Jason Baldwin
8d692ed0a9
Merge origin/main into slideshow-playback (menus.rs ui_enabled: keep main's compare.set and this branch's slideshow.* arm)
2026-10-11 14:51:59 +02:00
Claude
9978dc739d
Merge PR #643
...
# Conflicts:
# crates/engine/src/export.rs
# crates/engine/src/tests_export.rs
# crates/mcp/src/headless.rs
# crates/mcp/src/tools.rs
# crates/ui-egui/locales/de-formats.json
# crates/ui-egui/locales/de.json
# crates/ui-egui/locales/es-formats.json
# crates/ui-egui/locales/es.json
# crates/ui-egui/locales/fr-formats.json
# crates/ui-egui/locales/fr.json
# crates/ui-egui/locales/ja-formats.json
# crates/ui-egui/locales/ja.json
# crates/ui-egui/locales/pt-br-formats.json
# crates/ui-egui/locales/pt-br.json
# crates/ui-egui/locales/ru-formats.json
# crates/ui-egui/locales/ru.json
# crates/ui-egui/locales/uk-formats.json
# crates/ui-egui/locales/uk.json
# crates/ui-egui/locales/zh-hans-formats.json
# crates/ui-egui/locales/zh-hans.json
# crates/ui-egui/locales/zh-hant-formats.json
# crates/ui-egui/locales/zh-hant.json
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-11 12:43:20 +00:00
Claude
6bc25940b8
Merge PR #780 (via claude/integrate-780)
2026-10-11 12:41:50 +00:00
Claude
bd3b058a8f
M-export: bump RENDER_CACHE_VERSION for the XYB JPEG XL decode fix
...
PR #780 changes how lossy (XYB) wide-gamut JPEG XL files decode (crates/codecs/src/jxl.rs), so cached renders of those photos are stale.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 12:41:12 +00:00
Claude
255b23816d
LR-EXP-PSD: Edit In makes a copy of every selected photo and opens them all ( #920 )
...
photo.editExternal takes the selection (or ids, at most 50): each photo gets its own -Edit copy
stacked on its original, the copies are selected and returned in copies (path / id / original
still name the first). Photo ▸ Edit In opens each copy in the editor.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 12:40:58 +00:00
Claude
4a0d04b994
Merge PR #780
...
JPEG XL export via the pure-Rust jixel crate (robmdunn; fixes #247 ).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 12:40:55 +00:00
Claude
4ec3494733
Merge PR #434
...
On merge: Lightroom's default profiles (Adobe Standard, Adobe Color), named by nearly every sidecar,
give no camera-profile warning; other profiles still do (test default_lightroom_profiles_are_not_reported).
The import help string keeps main's onDeleted wording and gains warnings.
2026-10-11 12:38:16 +00:00
Claude
e4a248c91f
Merge PR #755
...
On merge: the quick preview path orients like the whole-file path (preview_orientation with the
raw's header prefix, so a portrait raw whose embedded JPEG carries no orientation is not sideways),
and its doc links point at preview_window.
2026-10-11 12:37:14 +00:00
Claude
c54328b2d3
Merge PR #725
...
On merge: translations overlaid on main's zh-hans.json, so the keys main added since (docking panels and
others) stay.
2026-10-11 12:36:44 +00:00
Claude
eae1eb5ba2
Merge PR #822
...
On merge: translations overlaid on main's ru.json, so the keys main added since (docking panels and
others) stay.
2026-10-11 12:36:44 +00:00
Claude
870eaa74e6
KEY-SLIDER-WHEEL: the wheel-nudge test reads exposure as a number (follow-up to #884 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 12:34:32 +00:00
Claude
fce79feadb
LR-IMP-FORMATS: the R5 Mark II QP-map test is a test again (its #[test] was lost merging #915 next to #829 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 12:33:43 +00:00
Claude
44f86dc855
LRC-LIB-FOLDERS: drop an unused import ( #947 follow-up)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 12:33:07 +00:00
Claude
47b5e0ae1b
Batch 30: cargo fmt over the merged PRs
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 12:32:03 +00:00
Claude
37b26c56a3
Merge batch 29b ( #946 , #947 , #953 , #950 )
...
# Conflicts:
# Cargo.toml
# crates/engine/src/rename.rs
# crates/ui-egui/locales/de.json
# crates/ui-egui/locales/es.json
# crates/ui-egui/locales/fr.json
# crates/ui-egui/locales/ja.json
# crates/ui-egui/locales/pt-br.json
# crates/ui-egui/locales/ru.json
# crates/ui-egui/locales/uk.json
# crates/ui-egui/locales/zh-hans.json
# crates/ui-egui/locales/zh-hant.json
# crates/ui-egui/src/icons.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/menubar.rs
# crates/ui-egui/src/menus.rs
# crates/ui-egui/src/panels/left.rs
# docs/whats-new.md
2026-10-11 12:08:44 +00:00
Claude
d761e1b231
LR-PREF-INTERFACE: sort the test module list after merging #950 (rustfmt)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 12:07:17 +00:00
Claude
155ad70c6e
LR-PREF-INTERFACE: French and Ukrainian appearance strings (modes, themes)
...
PR #950 gave fr and uk only the three favourites strings; add the thirteen
Appearance Mode / theme strings the other locales got, translated.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01BKWB9TCnvzJHV6xMLAj2J4
2026-10-11 12:06:54 +00:00
Claude
10ebeccdc8
Merge PR #950
...
# Conflicts:
# crates/ui-egui/locales/de.json
# crates/ui-egui/locales/es.json
# crates/ui-egui/locales/fr.json
# crates/ui-egui/locales/ja.json
# crates/ui-egui/locales/pt-br.json
# crates/ui-egui/locales/ru.json
# crates/ui-egui/locales/uk.json
# crates/ui-egui/locales/zh-hans.json
# crates/ui-egui/locales/zh-hant.json
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/panels/dialogs.rs
# crates/ui-egui/src/state.rs
# docs/parity-checklist.md
2026-10-11 12:06:31 +00:00