Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions .claude/settings.local.json

This file was deleted.

1 change: 0 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
*.so binary
*.dll binary
*.dylib binary
*.tiff binary
*.nef binary
*.cr2 binary
*.cr3 binary
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ WARP.md
AGENTS.md
ARCHITECTURE.md
docs/COLOR_PROFILE_FIX.md
.claude/

# ----------------------------
# Runtime / generated data
Expand Down
26 changes: 26 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,32 @@

Todo: Make it work on Linux / Mac. Create Windows .exe. Write better documentation / help. Add splash screen / icon.

## 1.5.3 (2026-01-27)

### Added
- New **Thumbnail Grid View** (folder-style browser) with a fast thumbnail pipeline:
- `ThumbnailModel`, `ThumbnailProvider`, `ThumbnailPrefetcher`, `ThumbnailCache`, and `PathResolver` integrated into `AppController`.
- App now defaults to starting in grid view (thumbnail mode) and initializes the model/resolver on startup.
- Registered a dedicated QML image provider (`thumbnail://...`) and exposed `thumbnailModel` to QML.
- UI controls to switch between **Thumbnail View** and **Single Image View**:
- Menu item in the actions menu to toggle views.
- `T` shortcut to toggle grid/loupe view.
- Grid-mode status bar controls for selection count, clear selection, refresh, and quick return to single image.

### Changed
- Implemented grid/loupe view switching using a `StackLayout` in `Main.qml` to keep both views loaded and preserve state while toggling.
- Improved grid-to-loupe opening performance by adding an O(1) resolved-path → index map (`_path_to_index`) for quick lookup when opening an image from the grid.
- Directory changes now refresh thumbnail infrastructure:
- Clear thumbnail cache before refresh to avoid stale thumbnails.
- Update model directories, refresh, update resolver, and emit `gridDirectoryChanged`.
- Grid selection count is now exposed efficiently to QML via `uiState.gridSelectedCount` (avoids copying full selected-path lists just to display counts).

### Fixed
- Thread-safety for thumbnail completion callbacks:
- Thumbnail decode completion now hops to the GUI thread via an internal signal (`_thumbnailReadySignal`) using an explicit `Qt.QueuedConnection`.
- Added guards to avoid model updates during/after shutdown.
- Added shutdown safety for thumbnail prefetcher (guard against partial initialization).


## 1.5.2 (2026-01-25)

Expand Down
Loading