Skip to content

qimgv-plus v3.0.0

Choose a tag to compare

@hadoooooouken hadoooooouken released this 21 Jun 14:42
· 35 commits to master since this release

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:
    • Vectorized scaled_Smart scaling using AVX2 SIMD instructions (35ee41ac).
    • Parallelized CPU color adjustment calculations using QThreadPool (59ffea06, adccef70).
    • Offloaded color management and adjustments to background threads, eliminating UI blocking (b17ce0ff).
  • GPU Acceleration:
    • Implemented GPU-accelerated Smart Sharpen filter using GLSL shaders (943f90a3, bd0694f8).
  • Asynchronous Operations:
    • Rewrote directory scanning to run asynchronously (fc023dcf, 9c2bc373).
    • Made AI Upscaling resize and batch cancellation non-blocking and fully asynchronous (e7d63f6a).
    • Isolated viewer upscaling to a dedicated thread pool featuring mid-flight cancellation (ed0b10ef).
  • 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$ QPixmap conversions inside the OpenGL viewport (cefef632, ef613172).
    • Cached hot settings properties to ensure thread safety and reduce access overhead (41b7db27).
  • Database & File I/O Cache:
    • Optimized JXL thumbnail encoding (25b3dcd1).
    • Resolved SQLite cache contention and connection leaks (25b3dcd1).
    • Eliminated GUI freezing on saves by removing blocking waitForDone() from saveSettings() (c66d3281).

🔒 Security & System Hardening

  • Path Traversal Fixes:
    • Patched path traversal vulnerabilities in FileOperations::rename (ff52efd8) and BatchConverter (6f897699).
  • 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).
  • Compiler Security Flags:
    • Added modern compiler security hardening flags for MSVC release builds (23266b23, ee076777).
  • Process Isolation:
    • Upgraded ScriptManager to automatically terminate subprocesses on timeout, preventing orphan processes (31736196).

🎨 UI/UX & Animations

  • Fluid Animations:
    • Added smooth cross-fade transition animations between the image viewer and folder view (f126d79d).
    • Introduced smooth hover animations for thumbnail widgets (ea59ddf6).
    • Refactored navigation buttons with updated animations (b9b54d00).
  • 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).
  • 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+N to 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:
    • Dropped all legacy Qt5 compatibility wrappers and updated the codebase to compile natively on Qt6 (66246934, d2d085ab).
  • Modern C++ Practices:
    • Replaced obsolete Q_FOREACH loops 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).
  • Component Architecture:
    • Decoupled the AI Upscaler subsystem into an isolated component (1ecb98ba).
    • Extracted the Batch Converter logic to simplify the core interface (48530e2b, 29ab3784).
    • Isolated ColorManager and unified the color adjustment pipeline (24934e15, adccef70).

🐛 Bug Fixes

  • Windows Folder Locking:
    • Fixed issues where directory renaming, moving, and deletion locked up on Windows by pausing QFileSystemModel watchers during operations (2830a553).
  • Rendering & Color Management:
    • Ensured cached HDR thumbnails convert accurately to sRGBLinear upon load (1145e8df).
    • Fixed incorrect grayscale conversion for Format_Mono images (bd8ef9af).
    • Implemented standard painting fallback in the event of shader compilation or link failure (f8446b6b).
  • Misc:
    • Resolved choppy cursor rendering over overlays in pseudo-fullscreen mode (1a015493).
    • Fixed folder renaming when inside image-less parent directories (2830a553).