Skip to content

v1.1

Choose a tag to compare

@markyip markyip released this 27 Dec 03:48
· 784 commits to main since this release

✨ What's New

🖼️ Gallery View (Major Feature)

  • Justified Gallery Layout: Adaptive grid layout that efficiently utilizes screen space with ±25% row height tolerance
  • Virtualized Rendering: Only renders visible items for smooth performance with thousands of images
  • Smart Image Loading: Priority-based system that loads visible images first, then preloads adjacent images in background
  • Seamless View Switching: Toggle between gallery and single image view with 'G' key
  • Scroll Wheel Navigation: Navigate between images in single view using mouse scroll wheel
  • Session Persistence: Remembers view mode preference and automatically opens in appropriate view

🚀 Performance Improvements

  • Optimized Loading Pipeline: Reduced initial gallery loading delay with priority queue system
  • Multi-threaded Thumbnail Loading: Increased to 16 parallel threads for faster thumbnail generation
  • Intelligent Caching: Bucket-based thumbnail caching system for efficient memory usage
  • Background Preloading: Continuously loads images in background while browsing
  • Thread Pool Optimization: Configured for optimal batch processing (16 threads, batch size 8, priority batch 20)

🎨 User Experience Enhancements

  • Keyboard Shortcuts:
    • Press 'Esc' to return to gallery from single view
  • Smooth Transitions: Optimized view switching with minimal delay

🐛 Bug Fixes

  • ✅ Fixed persistent loading message when returning to gallery view
  • ✅ Fixed images not displaying in gallery view after loading (cache key matching issue)
  • ✅ Improved cache key matching for better thumbnail display
  • ✅ Fixed widget visibility issues in gallery view
  • ✅ Added basename fallback matching for path resolution issues

Core Implementation

  • New JustifiedGallery Widget: Custom QWidget with virtualization support

    • Adaptive row height calculation with tolerance
    • Widget pooling for efficient memory usage
    • Scroll-aware visible area detection
    • Background image loading queue management
  • Priority Queue System:

    • Separate queues for visible (priority) and background images
    • Immediate processing of visible images
    • Batched background loading with rate limiting
  • Enhanced ImageLoadTask:

    • Detailed performance logging for debugging
    • Embedded JPEG thumbnail extraction for RAW files
    • EXIF orientation correction
    • Proper error handling and fallbacks
  • Cache Management:

    • Bucket-based height matching for cache keys
    • LRU cache for thumbnails
    • Efficient cache lookup with fallback mechanisms