feat(grid+viewer): WASD nav, Ctrl+wheel zoom, configurable scroll, bounce-to-last (#55, #58, #72, #87) #126

Merged
ValleyGeek merged 2 commits from 0.1.44/issue-55-58-72-87-grid-nav-zoom into main 2026-06-22 01:50:52 +00:00
Member

Summary

  • #58GridWasdNavFilter remaps bare W/A/S/D to arrow-key grid navigation, only when no other modifier is held (so e.g. Ctrl+A still selects all).
  • #55GridWheelZoomFilter: Ctrl+wheel adjusts thumbnail size instead of scrolling, in both the grid and the viewer filmstrip.
  • #87 — new Settings → Advanced controls for configurable rows-per-scroll with optional eased scroll animation (GridScrollFilter).
  • #72 — new "B" viewer hotkey jumps to the previously displayed image and back again on repeat press, tracked via ImageViewerSub._last_session_index.

Test plan

  • ruff check / ruff format --check
  • pytest
  • PR-prep version bump 0.1.44 → 0.1.45

Refs #55, #58, #72, #87. (#58 had a real-world shortcut-collision regression — W/S also defaulted to duplicate-group navigation — fixed in the final PR of this chain.)

Stacked on #125 — part of the 11-PR sequential chain into main.

## Summary - **#58** — `GridWasdNavFilter` remaps bare W/A/S/D to arrow-key grid navigation, only when no other modifier is held (so e.g. Ctrl+A still selects all). - **#55** — `GridWheelZoomFilter`: Ctrl+wheel adjusts thumbnail size instead of scrolling, in both the grid and the viewer filmstrip. - **#87** — new Settings → Advanced controls for configurable rows-per-scroll with optional eased scroll animation (`GridScrollFilter`). - **#72** — new "B" viewer hotkey jumps to the previously displayed image and back again on repeat press, tracked via `ImageViewerSub._last_session_index`. ## Test plan - [x] `ruff check` / `ruff format --check` - [x] `pytest` - [x] PR-prep version bump 0.1.44 → 0.1.45 Refs #55, #58, #72, #87. (#58 had a real-world shortcut-collision regression — W/S also defaulted to duplicate-group navigation — fixed in the final PR of this chain.) Stacked on #125 — part of the 11-PR sequential chain into `main`.
Adds GridWasdNavFilter (remaps bare WASD to arrow-key grid navigation),
GridWheelZoomFilter (Ctrl+wheel adjusts thumbnail size instead of
scrolling, also wired into the viewer filmstrip), and GridScrollFilter
(configurable rows-per-scroll with optional eased animation, exposed as
new Settings -> Advanced controls). Also adds a "B" viewer hotkey that
jumps to the previously displayed image and back again on repeat press
(tracked via ImageViewerSub._last_session_index, updated in the single
_go_to_session_index() chokepoint all viewer navigation already funnels
through).

Threading notes: all new filters/handlers are QObject/QWidget code living
on the main thread, installed on the grid QListView/viewport or handled
in the viewer's own keyPressEvent; they only touch widgets/scrollbars/
settings already owned by the main thread, no worker-thread interaction.
docs: PR-prep for issues 55, 58, 72, 87 - bump to 0.1.45
All checks were successful
CI / lint (push) Successful in 7s
CI / test (push) Successful in 1m41s
CI / appimage (push) Successful in 8m15s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 11m32s
CI / build-windows-exe (push) Successful in 0s
44e4f2f126
ValleyGeek changed target branch from 0.1.43/issue-40-50-80-sort-into-folders to main 2026-06-22 01:44:09 +00:00
Claude force-pushed 0.1.44/issue-55-58-72-87-grid-nav-zoom from 44e4f2f126
All checks were successful
CI / lint (push) Successful in 7s
CI / test (push) Successful in 1m41s
CI / appimage (push) Successful in 8m15s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 11m32s
CI / build-windows-exe (push) Successful in 0s
to b96e6f54d7 2026-06-22 01:45:17 +00:00
Compare
ValleyGeek deleted branch 0.1.44/issue-55-58-72-87-grid-nav-zoom 2026-06-22 01:50:53 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ai-collab/bulk-image-organizer!126
No description provided.