[Feature]: Tag toolbox filter clicks and numbered hotkey overrides #151

Closed
opened 2026-07-25 20:15:51 +00:00 by Grok · 2 comments
Member

Summary

Enhance the workspace tag toolbox with quicker filter gestures and user-assignable 0–9 hotkeys, plus map the numeric keypad period key to DELETE.

Tag toolbox interactions

  • Middle-click a tag: add it to the active tag filter (non-exclusive).
  • Right-click a tag: make it the only active tag filter (exclusive), matching Tag Filter dropdown behavior.
  • Ctrl-click a tag: open a small dialog prompting "Press a key from 0 to 9" with a Cancel button (ESC also cancels). Pressing a digit assigns that hotkey to the tag.

Hotkey ordering

  • Continue auto-assigning free slots among the first tags alphabetically (current 1–9, 0 labeling) for tags without an override.
  • Explicit 0–9 assignments override auto-assignment, remove those tags from the pure alphabetical block, and pin them at the top sorted by assigned number.
  • Assignments persist in the workspace working DB with the tag row.

Minor keyboard fix

  • Numeric keypad . (period / Del key with NumLock on) behaves identically to the Delete key (toggle DELETE tag).

Acceptance criteria

  • Middle / right click filter gestures work from the tag toolbox without opening the Tag Filter popup.
  • Ctrl-click assigns a 0–9 hotkey; conflict reassigns the digit to the new tag.
  • Panel display order: pinned-by-number first, then alphabetical remainder with auto labels on free slots.
  • Digit keys toggle the resolved tag for that slot.
  • Keypad . toggles DELETE like Delete.
  • Unit tests cover hotkey resolution, DB persistence, and filter gestures where practical.
## Summary Enhance the workspace tag toolbox with quicker filter gestures and user-assignable 0–9 hotkeys, plus map the numeric keypad period key to DELETE. ## Tag toolbox interactions - **Middle-click** a tag: add it to the active tag filter (non-exclusive). - **Right-click** a tag: make it the **only** active tag filter (exclusive), matching Tag Filter dropdown behavior. - **Ctrl-click** a tag: open a small dialog prompting **"Press a key from 0 to 9"** with a Cancel button (ESC also cancels). Pressing a digit assigns that hotkey to the tag. ## Hotkey ordering - Continue auto-assigning free slots among the first tags alphabetically (current 1–9, 0 labeling) for tags without an override. - Explicit 0–9 assignments override auto-assignment, remove those tags from the pure alphabetical block, and pin them at the **top** sorted by assigned number. - Assignments persist in the workspace working DB with the tag row. ## Minor keyboard fix - Numeric keypad **`.`** (period / Del key with NumLock on) behaves identically to the **Delete** key (toggle DELETE tag). ## Acceptance criteria - Middle / right click filter gestures work from the tag toolbox without opening the Tag Filter popup. - Ctrl-click assigns a 0–9 hotkey; conflict reassigns the digit to the new tag. - Panel display order: pinned-by-number first, then alphabetical remainder with auto labels on free slots. - Digit keys toggle the resolved tag for that slot. - Keypad `.` toggles DELETE like Delete. - Unit tests cover hotkey resolution, DB persistence, and filter gestures where practical.
Author
Member

Implementation is on branch 0.4.0/issue-151-tag-toolbox-hotkeys (dev version 0.4.0-feature.151).

Delivered

  • Middle-click tag toolbox swatch → add tag to active filter
  • Right-click → exclusive active filter (only that tag)
  • Ctrl-click → dialog “Press a key from 0 to 9” (Cancel / ESC) → assigns digit override
  • Overrides pin tags to the top ordered by 1–9,0; free slots still auto-fill alphabetically
  • Overrides stored on the workspace tag row (tags.hotkey, working DB v3)
  • Keypad . toggles DELETE like Delete (shell shortcut + viewer)

Tests

tests/test_tag_hotkeys.py covers resolution, DB migration/persistence, panel order, filter APIs, and the assign dialog.

Not opening a PR to main until requested.

Implementation is on branch `0.4.0/issue-151-tag-toolbox-hotkeys` (dev version `0.4.0-feature.151`). ### Delivered - **Middle-click** tag toolbox swatch → add tag to active filter - **Right-click** → exclusive active filter (only that tag) - **Ctrl-click** → dialog “Press a key from 0 to 9” (Cancel / ESC) → assigns digit override - Overrides pin tags to the top ordered by `1–9,0`; free slots still auto-fill alphabetically - Overrides stored on the workspace tag row (`tags.hotkey`, working DB v3) - Keypad `.` toggles DELETE like Delete (shell shortcut + viewer) ### Tests `tests/test_tag_hotkeys.py` covers resolution, DB migration/persistence, panel order, filter APIs, and the assign dialog. Not opening a PR to `main` until requested.
Author
Member

PR-prep complete (0.4.1) and pull request opened from 0.4.0/issue-151-tag-toolbox-hotkeysmain.

PR-prep complete (`0.4.1`) and pull request opened from `0.4.0/issue-151-tag-toolbox-hotkeys` → `main`.
Sign in to join this conversation.
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#151
No description provided.