tui: gallery — batch operation toolbar (visual buttons for multi-select) #136

Closed
opened 2026-04-14 20:12:08 +00:00 by claude-desktop · 0 comments
Collaborator

User story

As a user with multiple gallery items selected, I want a visible toolbar showing which batch actions are available, so that I don't have to remember every keybind.

Background

Multi-select works (Space/A/Esc) but there's no visual feedback for what to do once items are selected. GTK has a batch button bar that appears when items are selected.

Acceptance criteria

Visibility

  • When multi_selection is non-empty, replace the bottom hint row with a "N selected" toolbar
  • Toolbar shows action labels: Delete (dd) · Tag (T) · Move (m) · Favorite (*) · Share (s) · Clear (Esc)
  • Selected count shown left-aligned: N selected

Batch dispatch

  • dd confirms then deletes all selected (already wired)
  • * toggles favorite on all selected
  • m opens a folder picker and moves all selected (depends on move-to-folder ticket)
  • T triggers AI auto-tag on all selected (sequential)
  • s opens the sharing overlay; if multiple selected, share posts each in turn

Selection UI

  • Selected items keep their existing yellow border
  • First item in selection is shown with the cyan focus border in addition

Tests

  • Unit: batch favorite toggles all selected items consistently
  • Unit: batch delete clears multi_selection after success

Out of scope

  • Drag-drop reordering
  • Bulk export to disk
  • Move-to-folder picker (separate ticket)

References

  • crates/loom-tui/src/screens/gallery.rs (multi_selection, delete_selected)
  • crates/loom-gtk/src/pages/gallery/mod.rs:868 (batch_buttons)
## User story As a user with multiple gallery items selected, I want a visible toolbar showing which batch actions are available, so that I don't have to remember every keybind. ## Background Multi-select works (Space/A/Esc) but there's no visual feedback for what to do once items are selected. GTK has a batch button bar that appears when items are selected. ## Acceptance criteria ### Visibility - [ ] When `multi_selection` is non-empty, replace the bottom hint row with a "N selected" toolbar - [ ] Toolbar shows action labels: `Delete (dd) · Tag (T) · Move (m) · Favorite (*) · Share (s) · Clear (Esc)` - [ ] Selected count shown left-aligned: `N selected` ### Batch dispatch - [ ] `dd` confirms then deletes all selected (already wired) - [ ] `*` toggles favorite on all selected - [ ] `m` opens a folder picker and moves all selected (depends on move-to-folder ticket) - [ ] `T` triggers AI auto-tag on all selected (sequential) - [ ] `s` opens the sharing overlay; if multiple selected, share posts each in turn ### Selection UI - [ ] Selected items keep their existing yellow border - [ ] First item in selection is shown with the cyan focus border in addition ### Tests - [ ] Unit: batch favorite toggles all selected items consistently - [ ] Unit: batch delete clears `multi_selection` after success ## Out of scope - Drag-drop reordering - Bulk export to disk - Move-to-folder picker (separate ticket) ## References - `crates/loom-tui/src/screens/gallery.rs` (`multi_selection`, `delete_selected`) - `crates/loom-gtk/src/pages/gallery/mod.rs:868` (`batch_buttons`)
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
charles/loom#136
No description provided.