Skip to content

Conversation

@louisl4696
Copy link

@louisl4696 louisl4696 commented Nov 19, 2025

Summary

Arrow key navigation

Arrow keys events in MainWindow are intercepted by an eventFilter and trigger callbacks in ThumbGridLayout. Shift key events are also intercepted but do not block the event from continuing down Qt's event pipeline. Arrow key navigation mimics the behaviour of windows file explorer as outlined in #226, including multi-selection.
closes #226

Selection history

The last 30 (number chosen arbitrarily) selections are stored in a deque. Hitting R pops the most recent selection from the deque, and pushes the current selection to a second deque for redo-ing. Hitting Shift+R pops from the redo deque. It's very satisfying to use (I may be biased)
This feature could later be included into a higher level history, see #1215 for the full discussion !
Selection state changes are saved in the deques via a decorator for methods that modify the selection.
Because that includes the methods used for arrow key navigation, I wasn't able to cleanly separate these two features into two PRs... Sorry 😅

Tasks Completed

  • Platforms Tested:
    • Windows x86
    • Windows ARM
    • macOS x86
    • macOS ARM
    • Linux x86
    • Linux ARM
  • Tested For:
    • Basic functionality
    • PyInstaller executable

- Added arrow key navigation for thumbnail grid TagStudioDev#226
- Implemented selection history with undo/redo TagStudioDev#1215
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Navigation with arrow keys

1 participant