feat(tagging): Advance on Tag toggle across Grid, Viewer, and Dupes (#109) #128

Merged
ValleyGeek merged 2 commits from 0.1.46/issue-109-advance-on-tag into main 2026-06-22 02:32:41 +00:00
Member

Summary

  • #109 — new 3-state "AoT" toolbar button next to Tag Filter (Disabled / Tags & Delete [default] / Delete Only), persisted via a global pref. When enabled, successfully adding a tag or DELETE (never on removal, and never for DUPE tags) advances the active selection:
    • Grid: selects the next row.
    • Image Viewer: navigates to the next image.
    • Duplicate-group viewer: advances to the next non-deleted image in the group, falling back to the next duplicate group once the current one is exhausted.
  • The default "Tags & Delete" mode reproduces the viewer's previous unconditional advance-after-delete behavior exactly, so only users who deliberately disable AoT see a difference. See DR-026 for the scope decisions.

Test plan

  • ruff check / ruff format --check
  • pytest
  • PR-prep version bump 0.1.46 → 0.1.47

Refs #109. (A grid/Hide-Deleted selection-loss edge case in this feature, and the viewer-return navigation cursor not syncing with #58's WASD nav, are both fixed in the final PR of this chain.)

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

## Summary - **#109** — new 3-state "AoT" toolbar button next to Tag Filter (Disabled / Tags & Delete [default] / Delete Only), persisted via a global pref. When enabled, successfully adding a tag or DELETE (never on removal, and never for DUPE tags) advances the active selection: - Grid: selects the next row. - Image Viewer: navigates to the next image. - Duplicate-group viewer: advances to the next non-deleted image in the group, falling back to the next duplicate group once the current one is exhausted. - The default "Tags & Delete" mode reproduces the viewer's previous unconditional advance-after-delete behavior exactly, so only users who deliberately disable AoT see a difference. See DR-026 for the scope decisions. ## Test plan - [x] `ruff check` / `ruff format --check` - [x] `pytest` - [x] PR-prep version bump 0.1.46 → 0.1.47 Refs #109. (A grid/Hide-Deleted selection-loss edge case in this feature, and the viewer-return navigation cursor not syncing with #58's WASD nav, are both fixed in the final PR of this chain.) Stacked on #127 — part of the 11-PR sequential chain into `main`.
Adds a 3-state "AoT" toolbar button next to Tag Filter (Disabled / Tags
& Delete [default] / Delete Only), persisted via a new
PREF_ADVANCE_ON_TAG_MODE global pref. When enabled, successfully adding
a tag or DELETE (never on removal, and never for DUPE tags, since
is_panel_tag() already excludes them) advances the active selection:

- Grid: selects the next row.
- Image Viewer: navigates to the next image.
- Duplicate-group viewer: advances to the next non-deleted image in
  the group (ImageViewerSub.advance_to_next_non_deleted, skipping over
  already-DELETE-tagged images), falling back to the next duplicate
  group once the current one is exhausted.

_apply_tag_toggle() and the DELETE-toggle paths (grid and viewer) now
share one _advance_after_tag_applied() dispatcher gated by the AoT
mode. This subsumes the viewer's previous unconditional
advance-after-delete behavior (advance_after_delete_marked(), now
removed as dead code) -- the default "Tags & Delete" mode reproduces
that old behavior exactly, so only users who deliberately disable AoT
see a difference. See DR-026 for the scope decisions (single persisted
toggle doubling as the "default", Multi grid excluded since it has no
single "current" position to step from).
docs: PR-prep for issue 109 - bump to 0.1.47
All checks were successful
CI / lint (push) Successful in 8s
CI / test (push) Successful in 1m52s
CI / appimage (push) Successful in 8m24s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 11m30s
CI / build-windows-exe (push) Successful in 0s
41b8243381
ValleyGeek changed target branch from 0.1.45/issue-21-57-67-dupe-workbench-depth to main 2026-06-22 01:52:43 +00:00
Claude force-pushed 0.1.46/issue-109-advance-on-tag from 41b8243381
All checks were successful
CI / lint (push) Successful in 8s
CI / test (push) Successful in 1m52s
CI / appimage (push) Successful in 8m24s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 11m30s
CI / build-windows-exe (push) Successful in 0s
to 338df01708 2026-06-22 01:53:37 +00:00
Compare
ValleyGeek deleted branch 0.1.46/issue-109-advance-on-tag 2026-06-22 02:32:41 +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!128
No description provided.