qimgv-plus v3.0.0
Release Notes: Version 3.0.0
This release introduces significant performance optimizations, security hardening, user interface improvements, and a major modernization of the codebase (migrating fully to Qt6).
⚡ Performance & Multi-Threading
- AVX2 Vectorization & Parallel Processing:
- GPU Acceleration:
- Asynchronous Operations:
-
Thread & Memory Efficiency:
- Optimized thumbnailer threads with dynamic default limits (6fdef15b).
- Optimized string literal allocations in high-frequency execution paths (78990e81).
- Avoided redundant
QImage$\leftrightarrow$ QPixmapconversions inside the OpenGL viewport (cefef632, ef613172). - Cached hot settings properties to ensure thread safety and reduce access overhead (41b7db27).
- Database & File I/O Cache:
🔒 Security & System Hardening
- Path Traversal Fixes:
- Windows Shell Extension (shellex) Hardening:
- Restricted registered thumbnail formats and migrated registry entries to Current User (
HKCU) (915af1f7). - Validated LibRaw image dimensions to prevent Out-Of-Bounds (OOB) reads (ba59070f).
- Enforced file size limits on temporary files and handled write failures gracefully during stream fallbacks (50b61c86).
- Restricted registered thumbnail formats and migrated registry entries to Current User (
- Compiler Security Flags:
- Process Isolation:
- Upgraded
ScriptManagerto automatically terminate subprocesses on timeout, preventing orphan processes (31736196).
- Upgraded
🎨 UI/UX & Animations
- Fluid Animations:
- Thumbnail Panel & Logarithmic Resizing:
- Added smooth thumbnail resizing using a logarithmic slider with snapping at
256px(f97c9bd8). - Fixed lag and scrolling jumps when displaying the thumbnail panel for the first time (278a639f, a974152b).
- Added the option to automatically hide navigation buttons when the thumbnail panel is docked to the left or right (148dd43c).
- Added smooth thumbnail resizing using a logarithmic slider with snapping at
- Visual Enhancements & Customization:
- Added desktop wallpaper integration with Upscayl resizing support (86618f66, 14800646).
- Redesigned context menus and updated default themes, icons, and folder colors (06756d36, 39eb6c42, 7dc101b1, 432fbba8, e790bccd).
- Centralized theme-based semantic status colors (Pending, Processing, Success, Error) (ff36e957).
- Center save confirmation overlay horizontally (79eaf3aa).
- Interactability:
- Configured sliders to snap instantly to the cursor position on click and throttled image updates during drag (a9a6fe37).
- Added a dedicated hotkey
Shift+Nto cycle through filter scaling modes (87c93b20). - Refactored the crop overlay with support for aspect ratio resizing, diagonal flips, and inverse drags (dc58f4ec, 959f78a8).
- Folder View Navigation:
- Support selected directories in "Open only selected" action by recursively scanning them for images.
🛠️ Refactoring & Modernization
- Qt6 Migration:
- Modern C++ Practices:
- Replaced obsolete
Q_FOREACHloops with modern C++ ranged-for loops (6b207ca3). - Modernized Qt signal/slot connections to use Pointer-to-Member-Function (PMF) syntax (d7debdae, 97f32827).
- Transitioned memory management to modern smart pointers (
std::unique_ptr) and RAII resource handles (2ad3a2f9, 9170320c, 633326d7).
- Replaced obsolete
- Component Architecture:
🐛 Bug Fixes
- Windows Folder Locking:
- Fixed issues where directory renaming, moving, and deletion locked up on Windows by pausing
QFileSystemModelwatchers during operations (2830a553).
- Fixed issues where directory renaming, moving, and deletion locked up on Windows by pausing
- Rendering & Color Management:
- Misc: