Commit Graph
831 Commits
Author SHA1 Message Date
aiongg 8241145ba7 Merge PR #3332: LR-BEHAV-TITLEBAR: a dialog leaves the macOS title bar undimmed
Conflicts: docs unioned
2026-10-31 02:09:20 +00:00
aiongg f597811c3b Merge PR #3273: LR-BEHAV-ACCESS: panels and bars are named as landmarks and toolbars
Conflicts: docs unioned, locales/ru.json and sv.json keys unioned
2026-10-31 02:09:13 +00:00
aiongg 538a77e841 Merge PR #3260: LR-BEHAV-ACCESS: a dialog is exposed to screen readers as a dialog, not a group
Conflicts: docs unioned
2026-10-31 02:09:02 +00:00
aiongg 24b817fc26 Merge PR #3253: LR-BEHAV-ACCESS: an icon button's accessible name is its label, with the shortcut as its description
Conflicts: ui-egui/tests/it/accessibility.rs (both tests kept), docs unioned
2026-10-31 02:08:57 +00:00
aiongg 9f587f69d8 Merge PR #3220: MENU-HELP-HELP: on macOS the Help menu is registered with AppKit after the menu bar is installed
Conflicts: apps/lightcraft/src/native_menu.rs (both added lines kept: RowIds and help_menu), docs unioned
2026-10-31 02:08:47 +00:00
aiongg 2933f667fd Merge PR #3214: LR-BEHAV-ACCESS: a slider's value field is named "<slider> value" and describes how to use it
Conflicts: docs/whats-new.md and docs/parity-checklist.md (both sides unioned)
2026-10-31 02:08:26 +00:00
aiongg ef3dff08bc Merge PR #3200: MENU-BAR: shortcuts list their modifiers in one order everywhere on macOS
Conflicts: docs/whats-new.md and docs/parity-checklist.md (both sides unioned), locales/ru.json (both keys kept)
2026-10-31 02:08:10 +00:00
aiongg 21a57ff79a Merge PR #3196: MENU-BAR: the macOS menu bar keeps every row when two rows run the same command
Conflicts: docs/whats-new.md (both entries kept), docs/parity-checklist.md (header change list and revision rows unioned)
2026-10-31 02:07:56 +00:00
aiongg 7c0ec706c4 Merge PR #3167: LR-BEHAV-DIALOGS: a one-line prompt that's refused stays open and says why
Conflicts: docs/whats-new.md (both entries kept), docs/parity-checklist.md (header change list and revision rows unioned; LR-BEHAV-DIALOGS row keeps main's dialog_copy text plus this PR's addition)
2026-10-31 02:07:26 +00:00
aiongg 8fb464f8f8 Merge PR #2075: LR-BEHAV-DIALOGS: dialog confirm buttons name their action 2026-10-31 02:06:57 +00:00
Brandon Thomas cfdf63c6e4 Merge PR #2917
# Conflicts:
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-30 15:24:59 -04:00
Brandon Thomas ddbc218ad1 Merge PR #3213
# Conflicts:
#	docs/parity-checklist.md
2026-10-30 15:24:40 -04:00
Nathaniel Ledford 08a70fa7c3 LR-BEHAV-ACCESS: the What's New entry and the revision row name the alert dialog's description 2026-10-29 14:02:02 -04:00
Nathaniel Ledford 62c3344d3c LR-BEHAV-TITLEBAR: a dialog leaves the integrated title bar undimmed
On macOS the window buttons are drawn by the OS above our content, so a backdrop over the
top bar left them bright on a dimmed bar. As under a sheet, the backdrop now stops below the
bar, the bar keeps its color with its controls inactive, a click on it is not a click outside
the dialog, and its empty space still moves the window.
2026-10-29 13:47:52 -04:00
Nathaniel Ledford 4860892332 LR-BEHAV-ACCESS: panels and bars are named as landmarks and toolbars for screen readers 2026-10-29 13:38:03 -04:00
Nathaniel Ledford c9aa1d3b81 LR-BEHAV-ACCESS: the dialog-role comments and docs say what is exposed, not what VoiceOver does 2026-10-29 13:36:43 -04:00
Nathaniel Ledford 443bc5ae03 LR-BEHAV-ACCESS: every dialog is announced as a modal dialog (an alert dialog for the prompts) instead of a group with the title 2026-10-29 13:36:43 -04:00
Nathaniel Ledford f1a53e29b2 MENU-BAR: the no-photos line in the grid shows the Import shortcut as bound, in the menu bar's modifier order
The line under "No photos" spelled Cmd+Shift+I on every platform and followed no rebinding. It now goes through shortcut_text like every other place the app shows a shortcut.
2026-10-29 08:43:39 -04:00
Nathaniel Ledford 17a9e97a38 LR-BEHAV-DIALOGS: a one-line prompt that's refused stays open and says why
A refused Rename Folder, New Folder on Disk or other name prompt closed without a word.
It now stays open with the typed text and toasts the engine's message. A New Folder on
Disk that works says where the folder is.
2026-10-28 11:42:23 -04:00
Nathaniel Ledford 3613a85dcb LR-BEHAV-ACCESS: icon buttons are named by their label, the shortcut is their description 2026-10-28 10:14:39 -04:00
Nathaniel LedfordandClaude e4f16fa90c LR-BEHAV-DIALOGS: own verbs for Auto-Stack and Capture Time, test the button itself
Auto-Stack and Capture Time confirms reused the translation keys of a
noun ("Stack") and a field label ("Change"), so other languages showed
"Stapel" or "変更方法" on the button. They now have their own keys,
"Create Stacks" and "Change Time", in all 13 catalogs. Rename Keyword
says "Merge Keywords" when the new name already exists, as Rename
Person does. The Polish rename help says the file name changes.

The confirm label match is exhaustive now (no unreachable "OK" arm).
User guides, the Apple Photos note and the parity rows no longer tell
people to press OK in Export.

Tests read the text painted inside button:dialogOk, reach the plural
Export label, cover Auto-Stack and Slideshow Export plurals, Rename
Person, smart album Save, and check the German translation of the
verbs.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-28 08:53:55 -04:00
Nathaniel LedfordandClaude 023ee0ef5b LR-BEHAV-DIALOGS: dialog confirm buttons name their action
The confirm button was "OK" in every dialog that had no special case:
New Album, Rename Photos, Auto-Stack, Capture Time, Export and more.
It now says what it does: Create, Rename, Stack, Change, Cull, Copy,
Paste, Export N Photos, and a verb per one-field prompt command.
"OK" stays only for a prompt opened with a command that has no verb.
The automation id button:dialogOk is unchanged.

Rename Photos' help text pointed at the Tags button without saying
what it does; it now says it lists template placeholders, and that
each file is renamed on disk with its XMP sidecar. Contact Sheet,
Auto-Stack and Slideshow Export said "1 photos" / "1 stacks"; their
nouns now agree with the count. All 13 catalogs updated.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-28 08:53:55 -04:00
Nathaniel Ledford e60b7d1787 MENU-EDIT-SELECTNONE: Edit lists Select Only Active Photo and Paste Settings from Previous with their kin, and the native Edit menu keeps single separators 2026-10-27 22:50:05 -04:00
Nathaniel Ledford 9fabf58cf3 MENU-HELP-HELP: on macOS the Help menu is registered with AppKit after the menu bar is installed 2026-10-27 21:17:14 -04:00
Nathaniel Ledford cb710b8146 LR-BEHAV-ACCESS: a slider's value field is named "<slider> value" and describes how to use it 2026-10-27 18:53:02 -04:00
Nathaniel Ledford e472ffd6a4 MENU-FILE-CLOSE: document that closing the window quits the app 2026-10-27 18:29:56 -04:00
Nathaniel Ledford ebfd198ea0 MENU-BAR: give each native menu row its own id so repeated commands keep their rows and labels 2026-10-27 16:57:12 -04:00
Nathaniel Ledford e2ccefa1cc MENU-BAR: shortcut hints on macOS list modifiers in the menu bar's order (⌃⌥⇧⌘) 2026-10-27 16:30:18 -04:00
aiongg 69048937d0 docs: update source paths after the layout moves 2026-10-26 21:39:56 +00:00
softwaregames1andClaude Opus 5.5 22b963f262 Merge storytold/lightcraft main into LR-FILT-SEARCH-META
Conflict only in the docs/parity-checklist.md "Last updated" line: upstream's
line kept, with the LR-FILT-SEARCH-META entry added in front.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SqKgSkHi5MfTQFrZvDKBjm
Co-authored-by: softwaregames1 <167585946+softwaregames1@users.noreply.github.com>
2026-10-26 12:25:52 +00:00
aiongg d4cfd2e6d5 LR-BEHAV-TITLEBAR: the checklist row follows craft-window's title_bar 2026-10-25 17:07:16 +00:00
Claude 8fe7198dbd LR-FILT-SEARCH-META: >= and <= in fielded search tokens
`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
2026-10-25 08:47:10 +00:00
aiongg 31ec62cd03 Info panel Target Photo edits, Add Keywords cursor request and Fixed keys follow-ups (#2889)
* 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
2026-10-25 00:58:10 -04:00
aiongg c3feda15c0 LR-META-INFO: the Info panel shows Selected Photos by default; gaps.md lists its change notes once 2026-10-25 03:36:14 +00:00
aiongg e339afc263 Merge PR #2810: LR-META-INFO: the Info panel can show metadata for the selected photos 2026-10-25 02:25:16 +00:00
aiongg 6e5e958639 Merge PR #2792: LRC-DEV-VIEWOPTIONS: View Options can turn off the loupe's "Rendering…" message 2026-10-25 02:24:50 +00:00
aiongg 17a3b80702 Merge PR #2790: LRC-DEV-VIEWOPTIONS: the info overlay can show briefly when the photo changes 2026-10-25 02:24:29 +00:00
aiongg 77196373a9 Merge PR #2870: KEYC-METADATA: Cmd+K / Ctrl+K puts the cursor in the Add keyword box 2026-10-25 02:24:29 +00:00
aiongg 122859d269 Merge PR #2846: KEYC-METADATA: Alt+0 / Alt+Shift+0 go to the next / previous keyword set 2026-10-25 02:24:03 +00:00
aiongg 387ad02b79 Merge PR #2832: LR-PREF-SHORTCUTS: a declared shortcut yields to a key the saved keymap gives another command 2026-10-25 02:23:22 +00:00
aiongg eb9ef0a40e Merge PR #2824: KEYC-METADATA: Cmd+Alt+Shift+C / V copy and paste metadata 2026-10-25 02:23:21 +00:00
aiongg 5c46163e66 Merge PR #2778: LRC-PRINT-TEMPLATES: print templates export to a file and import from one 2026-10-25 02:23:20 +00:00
aiongg f923967c63 Merge PR #2786: LRC-SS-PLAYBACK: a manual slideshow waits for the arrow keys 2026-10-25 02:23:20 +00:00
dotCooCoo beb42abb25 KEYC-METADATA: Cmd+K / Ctrl+K puts the cursor in the Add keyword box
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".
2026-10-24 16:48:57 -07:00
dotCooCoo b572dee19f KEYC-METADATA: Alt+0 / Alt+Shift+0 go to the next / previous keyword set
Lightroom Classic's keyboard shortcut page lists Option+0 / Option+Shift+0
(Alt+0 / Alt+Shift+0 on Windows) for cycling forward and backward through
the keyword sets; LightCraft had no key or command for it. Next Keyword
Set (keyword.nextSet, Alt+0) and Previous Keyword Set
(keyword.previousSet, Alt+Shift+0) make the set after or before the
current one current, in the Keyword Set menu's order: Recent Keywords,
then the saved sets. The keys wrap around at either end, and Alt+1 to
Alt+9 then apply the new set's keywords.

The two command labels have rows in every catalog. The KEYC-METADATA and
LRC-LIB-KEYWORDS rows, docs/ui-parity.md and docs/library-shortcuts.md
list the keys.
2026-10-24 12:55:46 -07:00
dotCooCoo 8d67b834e4 LR-PREF-SHORTCUTS: a declared shortcut yields to a key the saved keymap gives another command
When a saved keymap gave a key to one command and a later build declared
the same key as another command's default, one press ran both commands,
and menus and Help > Keyboard Shortcuts listed the key on both.

binding() now drops a declared shortcut while the keymap gives its key to
another known command, other than its contextual partner. handle(),
conflicts(), shortcut_of(), the menus and the shortcut editor read it.
In the editor such a row counts as changed, so its restore button takes
the key back.

handle() also let every saved entry stop the fixed keys on its key
(Enter in the grid, secondary keys such as Shift+X, the rating and
label digits, Home, End and Shift+arrows), including entries for
commands the build does not know. It now reads only the entries of
known commands, as binding() does, so a stale entry in ui.json no
longer silences Shift+X, a rating digit or a label digit.
2026-10-24 11:20:04 -07:00
dotCooCoo 2d5ce5382b Merge branch 'main' into feat/loupe-info-briefly 2026-10-24 10:32:28 -07:00
dotCooCoo cc557e189d KEYC-METADATA: Cmd+Alt+Shift+C / V copy and paste metadata
Copy Metadata and Paste Metadata had no shortcut. They now use
Cmd+Option+Shift+C and Cmd+Option+Shift+V on macOS and
Ctrl+Alt+Shift+C and Ctrl+Alt+Shift+V on Windows and Linux, the keys
Lightroom Classic's keyboard shortcut page lists for copying and
pasting metadata in the Library module. Both keys also work when
Windows and Linux deliver them as clipboard events. The KEYC-METADATA
row now lists the keys LightCraft binds (Cmd+S, the two new keys and
Alt+1 to Alt+9 for keyword sets) and every other key of that table
that is still missing. Gap 28 in docs/gaps.md and the Library keys in
docs/ui-parity.md list the two new keys.
2026-10-24 09:13:54 -07:00
Brandon Thomas 5f8593a074 Merge PR #673 2026-10-24 10:20:14 -04:00
Brandon Thomas f7d11bf750 Merge PR #1956 (with maintainer follow-up)
# Conflicts:
#	docs/whats-new.md
2026-10-24 10:20:14 -04:00