Commit Graph
20 Commits
Author SHA1 Message Date
aiongg 3a3e49af53 fix(ui): dropdown menus grow back after a search with no matches (#3154)
* Use craft-ui's dropdown so menus grow back after shrinking

The album picker keeps its choices and search field in a fixed header and scrolls only
the list; combo_box and the print dialog's combos use craft_ui::ComboBox. egui::ComboBox
is now disallowed by clippy.

* chore(deps): craft-libs 60d60d48 (dropdown fixes)

* chore(deps): craft-libs 6af63481 (dropdown fixes)

* chore(deps): craft-libs 4d7b82f7 (dropdown fixes)

* chore(deps): craft-libs 92d392cf (#387 merged)
2026-10-27 10:27:42 -04:00
aiongg b17f6cbe93 refactor(lightcraft-ui-egui): move progress.rs to widgets/progress.rs 2026-10-26 20:41:12 +00:00
aiongg 0d3ee604f3 refactor(lightcraft-ui-egui): move text_field.rs to widgets/text_field.rs 2026-10-26 20:41:12 +00:00
aiongg 8a9de1f616 refactor(lightcraft-ui-egui): move rating.rs to widgets/rating.rs 2026-10-26 20:41:12 +00:00
aiongg 204f8ea365 refactor(lightcraft-ui-egui): move button.rs to widgets/button.rs 2026-10-26 20:41:12 +00:00
aiongg 2a4bd99a4d refactor(lightcraft-ui-egui): move date_picker.rs to widgets/date_picker.rs 2026-10-26 20:41:12 +00:00
aiongg 6ea7f1dc55 refactor(lightcraft-ui-egui): move album_picker.rs to widgets/album_picker.rs 2026-10-26 20:41:12 +00:00
skylartaylor 50df646183 M0.37: port LightCraft UI, input and capture lifecycle to egui 0.37 2026-10-24 08:02:12 +02:00
aiongg fb316ee5ea Merge PR #1402: Fix slider wheel edits after leaving and returning to the Edit panel
crates/ui-egui/src/widgets/tests_numeric_entry.rs: keep both sides' tests.
docs/parity-checklist.md: newer header (2026-10-21); KEY-SLIDER-NUDGE from #1402, KEY-SLIDER-TYPE from #1687; both revision rows.
2026-10-22 02:37:21 +00:00
Haocheng FangandClaude Opus 5.5 977bbebcdc KEY-SLIDER-NUDGE: a drag that leaves the row disarms wheel edits
The disarm waited for the button to be released outside the row, so a
drag that went out and came back kept the wheel armed. Leaving disarms
now even mid-drag, and a drag that starts outside the row does not arm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:40:04 -05:00
Haocheng FangandClaude Opus 5.5 868de3a9fe KEY-SLIDER-NUDGE: disarm the wheel on any move out of the row (#1355)
Review follow-ups:
- Check every PointerMoved / PointerGone of the frame, not only where the
  pointer ended: a slow frame merged leaving the row and coming back, so
  the slider stayed armed (new test for both events).
- One global armed slider (`wheel_slider_key`) instead of a bool per
  slider: unarmed sliders no longer write context data every frame, and
  arming another slider disarms the previous one. The wheel remainder is
  cleared on arming and disarming, so the second focus check is gone.
- The sideways branch uses `pointer_in_row` too.
- Document that Tab focus arms the arrows only; move the whats-new entry
  to 2026-10-21; update the KEY-SLIDER-NUDGE row, header and history; fix
  a test comment that described the old remainder carry-over.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:30:32 -05:00
Haocheng Fang f8978a0b93 Fix #1355: disarm slider wheel edits after pointer leaves 2026-10-21 12:34:49 -05:00
Andrew FrahnandClaude Sonnet 5.5 52c4ec6649 Restore LF line endings
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 10:09:11 +11:00
Andrew FrahnandClaude Sonnet 5.5 e2b56367db Merge upstream/main; KEY-SLIDER-TYPE: keep the long-click fix only (scrub landed in #1604)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 10:06:35 +11:00
Brandon Thomas 88ca6ed572 Merge PR #1474 (rebased)
# Conflicts:
#	crates/ui-egui/src/widgets.rs
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-15 02:32:41 -04:00
Andrew FrahnandClaude Opus 5.5 a706798951 KEY-SLIDER-TYPE: a long click keeps the value field open; drag the value to scrub
A press on a slider's value held past egui's click time ended with no click on
release, so the field it had opened closed again (the field "flashes and
vanishes"). Any release now keeps the field open; a sideways drag of more than
a few points on the value scrubs it instead (as along the track, a tenth with
Shift, one undo step), as in Lightroom Classic.

Sources: own design.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-14 18:58:02 +11:00
good-news-everyoneandClaude Opus 5.5 ab64e9a563 KEY-SLIDER-SCRUB: drag a slider's value sideways to scrub it
As over Lightroom's values, a press on the number next to a slider's name
that moves sideways now changes the value as dragging the thumb would: the
pointer's travel over the track's width, a tenth as far with Shift, on the
control's steps and range, as one undo step. A press that moves less than
3 points sideways is still a click that opens the value for typing
(KEY-SLIDER-TYPE), and the pointer over the value is the horizontal-resize
cursor. The tooltip says both ("Click to type a value, drag to change it"),
translated in every catalog.

Tests: scrub distance and direction, Shift, clamping, steps, one interaction
per scrub, no field or draft left behind, a jittery click still types, a
disabled slider doesn't scrub. The readout test that drags away from the
value now drags straight down, so it still checks that a cancelled press
keeps neither a value nor the keyboard.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:55:17 +03:00
Atmik Shetty cb8b797cd4 KEY-SLIDER-RESET: a slider's name and thumb say a double-click resets it (fixes #1436)
A double-click on a slider's name or thumb already reset it, but nothing said so: only the value had a
tooltip. Resting the pointer on the name or on the thumb now shows "Exposure — double-click to reset
it", the wording (and translations) the curve channels already use. The rest of the track, which is
clicked and dragged, gets no tooltip, and the value keeps "Click to type a value".

The first click of a double-click on the thumb moved the value to where the pointer landed, a few
points off its centre: one history step, then the reset another. A click on the thumb now leaves the
value alone, so the reset is one undo step, as from the name. A disabled slider's name no longer
resets it.

No per-slider reset button: Lightroom has none, and the double-click it documents is now shown where
it works. Tests: tests_slider_reset.rs (name and thumb reset Exposure and Contrast in one undo step,
the hints, a click on the thumb keeps the value, typing a value still works) and
widgets/tests_slider_reset.rs (a disabled slider's name).
2026-10-13 13:16:08 +05:30
Marco Arnulfo 713d81d64b KEY-SLIDER-TYPE: a typed slider value keeps editing after the click is released (fixes #1362)
egui gives the opening release's click to the readout, so the field under it surrenders the focus. Only the field's first two frames took it back: a click held any longer ended the edit, and the value could only be typed while holding the button.
2026-10-13 00:51:05 +02:00
sanyamsingh001andCodex 5a60d94f2f KEY-SLIDER-TYPE: fix immediate numeric entry and Reset precedence
Honor Enter/Escape on the completed opening release, release focus for a
cancelled opening click, and keep a numeric Escape batch out of app shortcuts.
Defer the Edit panel's clicked Reset until after its controls so the normal
click-away commit precedes the explicit reset. Retain the original Numeric
regressions and the single active-draft Reset regression.

Co-authored-by: Codex <codex@openai.com>
2026-10-11 10:55:33 +00:00