Skip to content

Releases: Loganavter/Improve-ImgSLI

v6.2.1

16 Aug 15:30
c363490
Compare
Choose a tag to compare

fix for flatpak

v6.2.0

16 Aug 14:55
Compare
Choose a tag to compare

🚀 Version 6.2.0: The MVP Revolution - A Monumental Refactor! 🚀

After 2.5 weeks of intensive work, supported by Gemini and Cursor AI, we are thrilled to announce the release of version 6.2.0! This is not just an update; it's the most extensive architectural refactoring the project has ever undergone. We have transitioned the entire application to a robust and modern Model-View-Presenter (MVP) architecture.

This monumental effort has resulted in a fully modular codebase where every component is decoupled and organized. This new foundation is so solid that it has passively resolved an entire class of bugs that were difficult to trace in the old structure. We've also meticulously recreated the UI, replacing the third-party qfluentwidgets library to gain full creative control, eliminate GPL licensing constraints, and craft a more unique and individual design for the application.

This release lays the groundwork for faster, more stable, and more ambitious feature development in the future.

✨ Highlights of 6.2.0 ✨

  • Robust MVP Architecture: The project has been completely re-engineered into a Model-View-Presenter pattern. Logic, state, and UI are now cleanly separated into distinct modules (src/core, src/ui, src/presenters), making the codebase significantly easier to maintain, debug, and extend.
  • Custom Fluent UI: The dependency on the PyQt-Fluent-Widgets library has been completely removed. We have manually implemented our own set of custom, lightweight "fluent-style" components (sliders, checkboxes, buttons), freeing the project from GPL v3 obligations and allowing for a truly unique design.
  • Three-Level Caching System: The caching architecture has been enhanced from a two-level to a three-level system, further improving performance and responsiveness during interactive use by separating raw image data, processed display images, and interactive element caches.
  • Reimagined Core Features:
    • New Export Dialog: A dedicated, feature-rich export window has been created (src/ui/dialogs/export_dialog.py).
    • Structured Help Window: The help dialog has been redesigned for better clarity and navigation (src/ui/dialogs/help_dialog.py).
    • Two-Panel Image List with Drag & Drop: The image selection flyout is now a powerful two-panel manager that supports intuitive drag-and-drop for reordering items and moving them between lists.
  • Enhanced Launcher: The launcher.sh script for the git version is now a more powerful command-line utility with new commands for profiling, environment management, and more.

📝 Changelog (v5.8.24 to v6.2.0)

🚀 New Features

  • Dedicated Export Dialog: A brand-new export window provides comprehensive control over output settings, including format, quality, background fill, compression levels, and metadata.
  • Two-Panel Image List: The image selection flyout has been completely redesigned into a two-panel interface, showing both lists simultaneously.
  • Drag & Drop List Management: Implemented full drag-and-drop functionality (src/events/drag_drop_handler.py) within and between the image lists, allowing for effortless reordering and management of loaded files.
  • Reimagined Help Dialog: The help system is now a multi-page dialog with a navigation pane, making it easier to find information on specific features.

🛠️ Improvements & Refactoring

  • Architectural Overhaul (MVP):
    • The entire codebase has been restructured to follow the Model-View-Presenter pattern, a massive undertaking that involved splitting monolithic scripts into dozens of dedicated modules.
    • Model: Core logic and application state are now managed in src/core, with a central app_state.py.
    • View: All UI components are now located in src/ui, with a clear separation of dialogs, atomic widgets, and composite widgets.
    • Presenter: The main_window_presenter.py now orchestrates communication between the Model and the View, containing logic previously scattered across the application.
  • Custom UI Components:
    • Replaced the external PyQt-Fluent-Widgets dependency with a custom-built suite of widgets located in src/ui/widgets/atomic/, including fluent_checkbox.py, fluent_slider.py, and fluent_switch.py. This gives the application a more distinct look and feel.
  • Enhanced Caching Architecture: The caching mechanism was improved from two to three distinct levels, optimizing memory usage and rendering speed for a smoother user experience.
  • Improved Launcher (launcher.sh):
    • The launcher is now more robust and feature-rich, with added support for performance profiling (profile command) and more granular environment control (recreate, delete).
    • It now features better visual feedback during dependency installation, including an inline progress bar.

🗑️ Removals & Changes

  • Removed PyQt-Fluent-Widgets Dependency: Dropped the third-party GPL v3 licensed UI library. This has led to a reduction in the application's package weight on some distributions.
  • License Change: As a result of removing GPL-licensed code, the project's license is no longer bound by GPL v3 obligations. (Refer to readme.md for the current MIT License).

A Note on the Journey

This update represents a fundamental shift in the project's philosophy, prioritizing long-term health and scalability over short-term feature additions. The move to MVP was a colossal task, but it has already paid dividends by creating a more stable, predictable, and enjoyable development environment. This clean architecture is the launchpad for all future development.

What's Next?

With this robust new foundation in place, the path is clear for implementing more complex features. Future updates will likely focus on advanced comparison tools, such as diff histograms or similar visual analysis features. There are also a couple of remaining large scripts that will be progressively broken down into smaller modules to fully complete the architectural transition.

Thank you for your continued support!

Happy Comparing,
Loganavter

v5.8.24

10 Jul 02:02
9a0551c
Compare
Choose a tag to compare

Hot fix for flatpak

v5.8.20

09 Jul 23:14
4b8492a
Compare
Choose a tag to compare

🚀 Massive Update: Improve ImgSLI 5.8.20 - The Definitive Experience Update! 🚀

Just a month after the major architectural overhaul in June, I'm excited to present another significant update: version 5.8.20 (July 9, 2025)! The groundwork from the last release laid the foundation for this rapid development cycle, allowing for a deep, holistic enhancement of the user experience and core rendering engine over just a few intense days.

This update is all about control, quality, and stability. The launcher is now a power-user's dream, the magnifier is finally unleashed from its visual constraints, and the UI is more intuitive than ever.

✨ Highlights of 5.8.20 ✨

  • Reactive State-Driven Architecture: The application's core update logic has been completely re-engineered. By centralizing state management, we've eliminated a whole class of race conditions, resulting in a significantly more stable and predictable user experience.
  • Power-User Launcher: The launcher.sh script is no longer just a starter; it's a full-fledged command-line utility for managing the application's environment.
  • Unleashed Magnifier: The magnifier is now free! It renders on a dynamic canvas, allowing it to be positioned outside the image boundaries. It also features beautifully smooth anti-aliased borders and now correctly supports a horizontal split view.
  • Streamlined UI Interaction: New long-press actions on the swap (⇄) and clear (🗑️) buttons, along with scrollable image selection lists, reduce clicks and speed up your workflow.
  • Robust Internals: The entire codebase now uses a structured logging system instead of print() statements, and the worker thread communication has been refactored for clarity and stability.
  • Persistent Logging Control: Easily enable or disable debug logging permanently via the launcher or a new option in the Settings dialog.

📝 Changelog (v4.9.0 to v5.8.20)

🚀 New Features

  • Massively Overhauled Launcher (launcher.sh):
    • Command-Line Interface: Now operates with clear commands: run, recreate, delete, install, and help.
    • Persistent Logging Control: Use enable-logging and disable-logging commands to permanently manage log output.
  • Magnifier Horizontal Split: The combined magnifier now correctly displays a top/bottom split when "Horizontal Split" is enabled.
  • Long-Press Button Actions:
    • Swap (⇄): Short-press swaps the currently selected images; long-press swaps the entire lists.
    • Clear (🗑️): Short-press removes the current image from its list; long-press clears the entire list.
  • Scrollable Image Lists: You can now scroll through loaded images in the dropdowns using your mouse wheel without having to open them.
  • Debug Mode Setting: A new checkbox in the Settings dialog allows you to toggle debug logging, which persists between sessions.

🛠️ Improvements & Refactoring

  • Core Architecture:
    • Reactive State Management: Implemented a new state-driven architecture using a central AppState with a stateChanged signal. This replaces the old, complex system of timers and flags, eliminating race conditions and making the UI far more stable and responsive.
    • Structured Logging: All internal print() calls have been replaced with a proper logging implementation for cleaner and more controllable debug output.
  • Rendering Pipeline & Visuals:
    • Canvas-Based Magnifier Rendering: The magnifier is no longer clipped by the image's edges. A new dynamic canvas system allows it to be rendered seamlessly even when positioned partially off-screen.
    • Asset-Based Anti-Aliasing: The magnifier and capture-area rings are now rendered using a high-quality PNG mask, resulting in perfectly smooth, anti-aliased borders.
    • Freeze Logic Overhaul: The "Freeze Magnifier" feature now uses absolute pixel coordinates, ensuring the magnifier stays perfectly locked in place regardless of window resizing.
  • Launcher & User Experience:
    • Visual Feedback: The launcher now shows a real-time progress bar during dependency installation.
    • Robustness: Improved venv handling, including automatic detection and repair of corrupted environments.

🐞 Known Issues & The Path Forward

  • Window State Persistence: The bug related to correctly saving and restoring the window's geometry across different sessions and screen configurations remains. Despite over twenty attempts to fix it, the issue persists due to deep-seated race conditions in how signals are currently handled.
  • The Future is Structured: This problem highlights the need for a more robust application architecture. The next major development goal will be to refactor the project to a formal pattern like MVC (Model-View-Controller) or MVVM. This will be a significant undertaking but is essential for eliminating these kinds of bugs and ensuring the long-term stability and scalability of the application.

A Note on the Journey

This update was a testament to the power of the previous refactoring effort. The newly decoupled architecture made it possible to implement these significant features in just 4-5 days. While I'm thrilled with the progress on the rendering and usability fronts, the persistent window state bug serves as a humbling reminder that good architecture is paramount. It’s not just about adding features, but about building a foundation that can support them reliably.

What's Next?

The roadmap is clear: the next big step is the architectural overhaul to an MVC/MVVM pattern. This will be the primary focus before adding major new features. Your feedback during this process is, as always, incredibly valuable.

Thank you for your continued support and interest!

Happy Comparing,
Loganavter

v4.9.0

05 Jun 16:48
84305b8
Compare
Choose a tag to compare

Some fixes + win binary update

v4.8.9

05 Jun 13:05
712ffb9
Compare
Choose a tag to compare

🚀 Massive Update: Improve ImgSLI 4.8.9 - The Phoenix Rises, Powered by AI! 🚀

Whoa, it's been a while! The last "official" sign of life for Improve ImgSLI was around version 3.1.9 back in April 2025. Since then, a ton of work has been happening locally, and I'm thrilled to finally push out this massive update to version 4.8.9 (June 2025)!

Honestly, I was quietly tinkering away, not realizing this little project had garnered any attention. Seeing it pop up on review sites and even get an alternativeto.net page was a huge (and pleasant) surprise! Your interest has been a fantastic motivator to polish things up and share the progress.

This isn't just a version bump; it's practically a new application under the hood, with significant architectural changes, performance enhancements, and a fresh look.

✨ Highlights of 4.8.9 ✨

  • Revolutionary Performance & Responsiveness: Thanks to a new multi-layered, loosely coupled architecture and an advanced caching service, the application is 2-3 times smoother than before, especially during interactive operations.
  • Modern UI with Fluent Widgets: A complete visual overhaul, bringing a sleek, modern aesthetic and improved user experience.
  • AI-Driven Development: A significant portion of this update, including architectural refactoring and key feature implementations, was made possible through rapid prototyping and collaboration with AI agents like ChatGPT 4.1, Sonnet 3.5, and Gemini 2.5 PRO via Cursor AI. (But later later I swapped to aistudio.google, again)
  • Enhanced Magnifier Tool: More controls, smoother operation, and better visual feedback.
  • Revamped Launcher (launcher.sh): Now with robust virtual environment management, better dependency handling, visual feedback for operations, and customization options.
  • Expanded Packaging: Updated AUR package, new Flatpak manifest, and updated Windows installer.

Changelog (v3.1.9 to v4.8.9)

🌟 New Features

  • Settings Dialog:
    • Change application language (Current support: English, Russian, Chinese, Brazilian Portuguese).
    • Adjust maximum displayed filename length in the UI.
    • Set JPEG quality for saved images.
  • Quick Preview Mode: Hold Spacebar and Left-click (Image 1) or Right-click (Image 2) to quickly preview a single image without affecting the main comparison.
  • Interactive Rendering Mode: Provides smoother visual updates when dragging the split line or panning/adjusting the magnifier, with a final high-quality render when interactions stop.
  • Magnifier Interpolation: Choose your preferred resampling method (Nearest Neighbor, Bilinear, Bicubic, Lanczos) for the magnifier's zoom.
  • Clickable Image Label: The main image display area is now a custom ClickableLabel for more direct mouse event handling.

🛠️ Improvements

  • Core Architecture & Performance:
    • Advanced Caching Service: A completely new caching mechanism for base split images and magnifier layers, resulting in approximately 2-3 times smoother performance during interactive operations.
    • Multi-threaded Rendering: Image rendering is now offloaded to worker threads (QThreadPool), preventing UI freezes during complex operations.
    • Refactored Codebase: Two monolithic Python scripts were broken down into numerous, smaller, more specialized modules and services, organized into separate folders (services, processing_services). This significantly reduces coupling and improves maintainability. (icons.py was removed as it's no longer needed).
  • UI & UX:
    • Fluent Design: The application's styling has been fully transitioned to qfluentwidgets, offering a sleek, modern, and consistent look and feel.
    • Persistent Settings: Window size, position, and most application settings (split position, magnifier settings, language, etc.) are now saved and restored.
    • Tooltips & Labels: Many UI elements now have more informative tooltips and clearer labels.
    • Clearer Button Icons & Styling: Consistent Fluent Icons and styling for buttons.
  • Launcher Script (launcher.sh - for local development/running from source):
    • --recreate flag to rebuild the venv.
    • Visual feedback (spinners, status messages) for setup operations.
    • More robust path handling and Python executable detection.
  • Stability: Smarter UI updates: The comparison view only redraws when necessary, especially during interactive operations. More robust error handling for image loading and processing. Stabilized UI layout during resizes and content changes.

A Note on the Journey & AI Collaboration

The journey from 3.1.9 to 4.8.9 has been an intense and incredibly rewarding experience. In May 2025, I discovered Cursor AI, which rapidly accelerated development. Using agents like ChatGPT 4.1, Sonnet 3.5, and Gemini 2.5 PRO, all within their generous free usage limits, I was able to implement key features like the smarter caching, magnifier interpolation selection, and the quick preview mode.

Furthermore, the extensive refactoring of the project's structure — breaking down two monolithic scripts into a multi-layered, less coupled architecture with numerous services in separate folders — was a significant undertaking. This complex task, which typically takes weeks, was achieved in just two days of focused collaboration with Gemini. In June, Gemini on aistudio.google further assisted in porting the entire UI to qfluentwidgets, a time-consuming but essential step for the application's modern aesthetic and future scalability.

What's Next?

Your feedback is invaluable! Please report any bugs, suggest features, or share your thoughts by opening an Issue.

What would you like to see improved or added next? Let me know!


A big thank you to everyone who has used, reviewed, or stumbled upon Improve ImgSLI!

Happy Comparing!
Loganavter


v3.1.9

17 Apr 01:42
1ff91cd
Compare
Choose a tag to compare
Update io.github.Loganavter.Improve-ImgSLI.metainfo.xml

v3.1.8

17 Apr 01:21
f339fbc
Compare
Choose a tag to compare
Update io.github.Loganavter.Improve-ImgSLI.metainfo.xml

v3.1.7

17 Apr 01:10
9a4b74c
Compare
Choose a tag to compare

flatpak

v3.1.6

17 Apr 00:53
470745e
Compare
Choose a tag to compare

it's was very and very hard