Commit Graph
1454 Commits
Author SHA1 Message Date
aiongg 21903294bf Merge track r1-rawcat into next
crates/ui-egui/locales/{cs,it,pl}-formats.json: kept the translations and added the track's new keys.
docs/parity-checklist.md: newer header line; revision rows from both sides.
docs/whats-new.md: both tracks' 2026-10-15 entries.
2026-10-21 14:58:55 +00:00
aiongg 69fcc25535 Revert "Merge PR #995: LR-VIEW-CLIPPING: ⌥-drag previews for Blacks, Whites, Exposure, Sharpening and NR (#937)"
Held for the owner: #995 and #999 overlap, and #995's author offered on 10-12 to
close #995 once his commit was in #999. docs/parity-checklist.md: header keeps the
#1485 note and drops the #995 part.
2026-10-21 14:56:17 +00:00
aiongg e9e44643a5 Revert "Integration: #995 time drag drafts only while the GPU draws the view"
This reverts commit 5aa5c6681f.
2026-10-21 14:55:59 +00:00
aiongg 697d201e97 Merge PR #1987: #1508: web backup refuses to start while changes are unsaved 2026-10-21 14:55:55 +00:00
aiongg 5443225c3c Merge track r1-i18nci into next 2026-10-21 14:54:41 +00:00
aiongg 523894b00b Merge PR #1998: LR-BEHAV-BG-TASKS: Reload from Disk reads its files in the background
docs/parity-checklist.md: header names #1998's change
2026-10-21 14:54:08 +00:00
aiongg a44a2eeb1d Merge track r1-ui into next
docs/whats-new.md: kept both tracks' entries, newest first, one 2026-10-18 heading.
2026-10-21 14:54:06 +00:00
aiongg 73ac15ddaf Merge PR #2181: web: Auto language follows the browser's languages (#2085)
#2089 proposed the same fix for #2085 earlier.
2026-10-21 14:53:26 +00:00
aiongg 80a7b8bba8 Merge PR #2230: Lightroom import: skip images whose file record is missing instead of failing 2026-10-21 14:53:06 +00:00
aiongg 47be297b69 Merge PR #2258: i18n(cs): bring the Czech catalog up to date 2026-10-21 14:52:57 +00:00
aiongg 3ac7034ef5 Merge PR #2238: LR-BEHAV-LOCALIZE: translate AI Denoise progress and face-model hints into zh-hans 2026-10-21 14:52:57 +00:00
aiongg 8424779044 Merge PR #1869: i18n(pl): menu command names, the formats left in English, and Vibrance as Jaskrawość 2026-10-21 14:52:57 +00:00
aiongg aee07a0376 Merge PR #1871: i18n(it): native-speaker corrections and every interface string translated 2026-10-21 14:52:57 +00:00
aiongg 598a6ecb9b Merge PR #2004: the tests_offline bounded wait only
Its tests_export.rs and tests_folder_drop.rs hunks are covered by #1975 and #1967; resolved to the merged version.
2026-10-21 14:52:48 +00:00
aiongg 142eca0970 Merge PR #1975: Tests: fix the 11 Windows-only test failures on main 2026-10-21 14:52:38 +00:00
aiongg 6196ebb968 Merge PR #2280: #2253: crop ratios keep the orientation asked for
docs/parity-checklist.md: LR-CROP-ASPECT keeps #2253's orientation note and #991's fresh-crop lock
docs/whats-new.md: 2026-10-18 entry placed between 2026-10-19 and 2026-10-15
2026-10-21 14:51:48 +00:00
aiongg 7c3aed08fa Merge PR #2314: #2114: hidden Local locations come back one at a time 2026-10-21 14:51:12 +00:00
aiongg 0899915bdc Merge PR #1485: LR-VIEW-ZOOM: drag-scale follow-ups from #1009 review; slow verdicts expire (#330)
docs/parity-checklist.md: header keeps both changes, dated 2026-10-20
2026-10-21 14:51:12 +00:00
aiongg 5aa5c6681f Integration: #995 time drag drafts only while the GPU draws the view 2026-10-21 14:50:55 +00:00
aiongg 70e6b02569 Merge PR #995: LR-VIEW-CLIPPING: ⌥-drag previews for Blacks, Whites, Exposure, Sharpening and NR (#937) 2026-10-21 14:50:38 +00:00
aiongg 346a5be628 Integration: #2012 fit the hover preview to the drawn size; keep the zoomed whole frame canvas-sized 2026-10-21 14:50:35 +00:00
aiongg 26c1c2b1b0 Merge PR #2273: #2242: reverseGeocode maxDistance, and the 15 000-people limit is documented 2026-10-21 14:49:23 +00:00
aiongg 087a82e88a Merge PR #1966: LR-EXP-BITDEPTH: app.export refuses a bitDepth the format doesn't have 2026-10-21 14:49:23 +00:00
aiongg e13e6eb6c4 Merge PR #1892: Masks: bound the total dabs of one brush stroke (#1520) 2026-10-21 14:49:01 +00:00
aiongg a4cbdb4937 Merge PR #2012: Detail: Fit is as sharp as the photo 2026-10-21 14:48:42 +00:00
aiongg af5b7bc3c0 Merge PR #2274: Draw the Before label on a dark pill so it reads on light photos (#2247) 2026-10-21 14:48:33 +00:00
aiongg b1b9463e93 Merge PR #2285: LR-LIB-STACK: a double-click on a stack badge toggles the stack once (#2233) 2026-10-21 14:48:33 +00:00
aionggandharanishi fcbbda591c Merge PR #1864: Crop: a fresh crop starts locked to the photo's own shape (#991)
Co-authored-by: haranishi <223786623+haranishi@users.noreply.github.com>
2026-10-21 14:48:33 +00:00
aionggandharanishi 1c4b9c3c61 Integration: #1863 fill the active Pick filter too (from #1044)
Co-authored-by: haranishi <223786623+haranishi@users.noreply.github.com>
2026-10-21 14:48:33 +00:00
aionggandharanishi cf2bfa4ece Merge PR #1863: Library: a picked photo's flag is drawn filled (#1013)
Co-authored-by: haranishi <223786623+haranishi@users.noreply.github.com>
2026-10-21 14:48:21 +00:00
aiongg 31dac2db32 Merge PR #2069: Keep the profile dropdown and its submenus inside the window (#2059) 2026-10-21 14:48:21 +00:00
fabiodalez-dev b9c9a97d7a i18n(it): translate the mask overlay views 2026-10-20 16:11:56 +02:00
fabiodalez-dev fa135940e7 i18n(it): native-speaker corrections and every interface string translated
Corrections from my review of #1198: Exposure is Esposizione (not Tempo di esposizione, the shutter time), Sharpening is Nitidezza (not Contrasto), Preset stays Preset in every preset label, and blurry photos are sfocate, not mosse.

Adds the 339 interface messages Italian lacked (print, slideshow, mask effects, faces, HDR, external editors, keywords, focus points and their dialogs) and translates the 60 format strings still in English in it-formats.json. Only the What's New lines stay in English, as before: 2,628 of 3,278 messages.
2026-10-20 16:08:27 +02:00
Claude 3a52cbe464 #2114: the headless test clicks Restore All and the single-place row
The test checked that Restore All was listed but clicked it only when the
machine already had a hidden location, so CI never exercised that path.
It now hides two places and restores them with Restore All, then hides
one and checks the row restores it directly, without a list.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AbegtYaPuwqZ81pGfELsFK
2026-10-19 13:41:05 +00:00
Claude 4b8a5317fc #1508: a refused backup from the menu says why
The menu bar turned a command's error into a toast only for exports, so
File ▸ Back Up Library… did nothing visible when the host refused (changes
still unsaved, or nothing stored in this browser); the refusal reached only
the control channel (found in a real-browser check of PR #1987). Backup and
restore refusals are toasted too. Menu items are registered for automation
as `menuitem:<command id>`, and a headless test clicks File ▸ Back Up
Library… against a refusing host and reads the toast.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AbegtYaPuwqZ81pGfELsFK
2026-10-19 12:39:25 +00:00
Claude e2ea657668 #2114: hidden Local locations come back one at a time
"Show N hidden locations" put every location removed from Local back at
once. With several hidden, the row now lists them (name, path on hover):
each comes back on its own, or all with Restore All. With one hidden, the
row restores it directly, as before. The command side already had
local.restoreHidden {path}; only the panel called it without a path.

The headless test hides a second place, opens the list from the row,
restores one, checks the other stays hidden, then restores the rest.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AbegtYaPuwqZ81pGfELsFK
2026-10-19 11:29:48 +00:00
chordpli de98d3a1ba LR-LIB-STACK: the badge double-click test checks the second click lands on the badge (#2233) 2026-10-19 09:28:31 +09:00
chordpli 266e668376 LR-LIB-STACK: a double-click on a stack badge toggles the stack once (#2233)
A click on a grid stack badge expands or collapses the stack. A double-click,
as in Lightroom, toggled it twice: the second click undid the first and the
stack stayed as it was. The badge now ignores the second click of a
double-click.
2026-10-19 09:05:04 +09:00
FrancoisandClaude d999e382ba #1949: pt-BR for Include selected photos and the mask overlay modes (#2033)
Claude-Session: https://claude.ai/code/session_01AbegtYaPuwqZ81pGfELsFK

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-18 16:59:33 -06:00
Claude 81f02a6947 #2253: crop ratios keep the orientation asked for
set_aspect always turned the ratio to the image's orientation, so a Custom
ratio taller than wide came out landscape on a landscape photo, and a
ratio picked after X (crop.rotateAspect) turned the crop back. A named
ratio now takes the crop's present orientation (landscape, or portrait
after X; a square crop follows the image), a custom [w, h] is used as
given, and crop.aspect takes orientation: "crop" | "given" to choose.
The window reapplies the remembered ratio to an untouched photo with
orientation "crop", as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AbegtYaPuwqZ81pGfELsFK
2026-10-18 22:48:56 +00:00
MarekSpodBiedry 15e9a24891 Draw the Before label on a dark pill so it reads on light photos (#2247) 2026-10-18 23:36:52 +02:00
witkowski01 f140629bfd i18n(pl): translate the mask effect import and removed keyword messages 2026-10-18 22:53:56 +02:00
Claude 55b7b47925 #2242: reverseGeocode maxDistance, and the 15 000-people limit is documented
GeoNames cities15000 holds towns of 15 000 people or more, so a photo in a
smaller town got the nearest larger one in City (Portofino → Rapallo,
5.3 km), another municipality. metadata.reverseGeocode takes maxDistance
(metres): past it, City and Sublocation stay empty, State and Country
still fill, and the reply names the town as nearestCity. Hostile values
are refused. The command help, the Fill Location tooltip and the parity
row say what the list holds. Default unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AbegtYaPuwqZ81pGfELsFK
2026-10-18 20:13:25 +00:00
witkowski01 6bb4517d77 i18n(pl): Apple Photos Imports describes adding to Photos, not importing from it 2026-10-18 22:06:21 +02:00
Matthew James SivakandClaude Opus 5.5 1ed76d851d Merge main into alt-clipping-preview
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 21:39:24 +02:00
Matthew James SivakandClaude Opus 5.5 349c27917b Merge main into fix/330-drag-scale-followups
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 21:38:09 +02:00
Carlos VillanuevaandClaude Opus 5.5 16417e2eca Lightroom import: document the functions this change touches
CodeRabbit's docstring check counted the touched functions without doc
comments (read_with_progress, apply_prepared, inspect_report, result_dialog
and a test helper). Comments only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RhZLBHaSnSko1eMByPibfh
2026-10-18 18:04:34 +00:00
Matthew James SivakandClaude Opus 5.5 5b5cdb646e LR-BEHAV-BG-TASKS: background Reload names itself in bad-ids errors; a stopped Reload doesn't say the raw still can't be decoded
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:57:32 +02:00
Carlos VillanuevaandClaude Opus 5.5 9eec26804d Lightroom import: report skipped images as data and say so in the UI language
Review of #2230: the skipped-image warnings were English text shown as is
in the result window. Skipped images are now data in the import and inspect
reports (`skipped`: image id and reason: missingFile, missingFolder,
missingRoot, incompletePath, masterSkipped) instead of warnings, and the
result window adds one line counting them through tr_format!, translated in
every UI language; the eight-warning cap is unchanged.

Reader-level tests now cover a missing folder and root record and a virtual
copy of a skipped master read from a catalog file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RhZLBHaSnSko1eMByPibfh
2026-10-18 17:21:36 +00:00
Matthew James SivakandClaude Opus 5.5 7b2d7b25ea LR-BEHAV-BG-TASKS: an older Reload can't overwrite a newer one; background Reload auto-writes sidecars
Review of #1998. Each reload plan takes a ticket; apply skips a photo a
later-started reload has already been applied to, so an older read that
finishes last no longer restores the previous dimensions and content hash.
The app's background completion now commits through Session::execute_fn,
so the XMP sidecar auto-write (and the save) happen as for the command.
Regression tests: an_older_reload_does_not_replace_a_newer_one,
a_background_reload_writes_the_sidecar_with_auto_write_on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:07:40 +02:00