[Enhancement]: Keep Selected Dupe Group Button On Screen #113

Closed
opened 2026-06-21 23:10:48 +00:00 by ValleyGeek · 2 comments
Owner

Affected area

Duplicate Group Toolbox

Current behavior

As duplicate groups are reviewed the duplicate group toolbox stays in a fixed location

Desired improvement

When a duplicate group is reviewed scroll the duplicate group toolbar down to keep the newly active group button 40% from the top.

References

No response

### Affected area Duplicate Group Toolbox ### Current behavior As duplicate groups are reviewed the duplicate group toolbox stays in a fixed location ### Desired improvement When a duplicate group is reviewed scroll the duplicate group toolbar down to keep the newly active group button 40% from the top. ### References _No response_
Member

Implemented on branch 0.2.4/issue-113-keep-group-onscreen (pushed, stacked on 0.2.4/issue-136-keep-dropdown, not yet merged to main — awaiting PR):

  • The duplicate-group list (DupeContainer) now scrolls automatically whenever the active group changes, keeping the active group's button ~40% from the top of the visible list, clamped at the ends so it never scrolls past the first/last group.
  • Every existing way the active group changes — clicking a button, W/S keyboard prev/next, Keep/AoK auto-advance, programmatic selection — funnels through one shared method (_scroll_active_button_into_view()), so future navigation entry points (e.g. issue #131's upcoming "next unreviewed" button) inherit this behavior automatically.
  • The scroll-target math is a pure, unit-tested classmethod (_compute_scroll_target()).

Added tests/test_dupe_active_button_scroll.py (6 tests: pure-function math + click/keyboard/programmatic integration via qtbot). Full suite (593 passed), ruff, and the UI-exit smoke all pass. This is the third branch in the v0.3.0 tranche (VERSION 0.3.1 → 0.3.2).

Implemented on branch `0.2.4/issue-113-keep-group-onscreen` (pushed, stacked on `0.2.4/issue-136-keep-dropdown`, not yet merged to `main` — awaiting PR): - The duplicate-group list (`DupeContainer`) now scrolls automatically whenever the active group changes, keeping the active group's button ~40% from the top of the visible list, clamped at the ends so it never scrolls past the first/last group. - Every existing way the active group changes — clicking a button, `W`/`S` keyboard prev/next, Keep/AoK auto-advance, programmatic selection — funnels through one shared method (`_scroll_active_button_into_view()`), so future navigation entry points (e.g. issue #131's upcoming "next unreviewed" button) inherit this behavior automatically. - The scroll-target math is a pure, unit-tested classmethod (`_compute_scroll_target()`). Added `tests/test_dupe_active_button_scroll.py` (6 tests: pure-function math + click/keyboard/programmatic integration via `qtbot`). Full suite (593 passed), ruff, and the UI-exit smoke all pass. This is the third branch in the v0.3.0 tranche (`VERSION` 0.3.1 → 0.3.2).
Member

Closing — PR #142 is open against main.

Closing — PR #142 is open against `main`.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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#113
No description provided.