Add undo/redo stack for tag operations (assign, remove, rename, merge) with Ctrl+Z/Ctrl+Y

This commit is contained in:
2026-04-09 18:04:37 +02:00
parent 2bcd5b1f4b
commit db280fb5c2
24 changed files with 2705 additions and 2316 deletions

View File

@@ -2,6 +2,46 @@
All notable changes to the Tagger project are documented in this file.
## [1.2.0] - 2026-04-09
### Added
- **Undo/redo** - `Ctrl+Z` / `Ctrl+Y` vrátí/zopakuje tag operace (assign, remove, rename, merge)
- Zásobník 50 kroků, čistí se při zavření složky
- Edit menu zobrazuje popis poslední operace
- Pokrývá: přiřazení tagu, odebrání tagu, přejmenování tagu/kategorie, sloučení tagu/kategorie
- **CSFD cache** - Movie data cached in `.!tag` after first fetch, no re-fetching on reopen
- `CSFDMovie.to_dict()` / `from_dict()` for serialization
- `File.get_cached_movie()` - returns cached data without network access
- Cache versioning (`CSFD_CACHE_VERSION`) for future schema invalidation
- Cache invalidated automatically when CSFD URL changes
- **Orphaned sidecar detection** - On folder scan, `.!tag` files without a matching media file are reported
- `FileManager.on_orphaned_tags` callback for UI notification
- `FileManager.find_orphaned_tags()` for manual scan
- **OR/NOT tag filtering** - Extended `filter_files_by_tags()` with new parameters
- `any_of` - file must have at least one of these tags (OR)
- `must_not` - file must not have any of these tags (NOT)
- Fully backward compatible
- **ffprobe threading** - Video resolution detection now runs in background (`VideoResolutionWorker`)
- Status bar shows live progress: `Zjišťuji rozlišení (3/12)…`
- Menu action disabled during processing
- **Export to CSV** - Soubor → "Exportovat do CSV..."
- UTF-8 BOM encoding (Excel compatible)
- Columns: filename, path, date, tags, CSFD URL, size
- **Drag & drop** - Drag folder or file onto the app window to open it
### Changed
- **Global config location** - Moved from app directory to `~/.config/Tagger/`
- Automatic one-time migration from old location
- Fixes crash on read-only PyInstaller build directories
- **Python version** - Bumped to 3.14+
### Dependencies
- Removed: Pillow (unused)
- Moved: python-dotenv from dev to runtime dependencies
### Tests
- 274 tests (all passing)
## [1.1.0] - 2026-01-23
### Changed