Skip to content

MaxBridge Assistant v2.0.0

Choose a tag to compare

@mohsenicreative mohsenicreative released this 17 Dec 05:14
137f00e

MaxBridge Assistant v2.0.0

Overview

Version 2.0 of MaxBridge Assistant introduces several key updates, focusing on improved thread management, UI enhancements, logic refinements, and dependency updates. This release includes the switch to PyQt6, improved handling of multiple threads, better thread synchronization, and more reliable file handling logic. Additionally, there are performance optimizations and error handling improvements that make the application more stable and responsive.

screenshot-v2

Key Changes and Improvements

  1. Transition to PyQt6

  • The user interface framework has been upgraded from PyQt5 to PyQt6. This provides several benefits, including:
    • Better performance and stability.
    • Enhanced compatibility with modern Python versions.
    • Access to new features and improvements offered by PyQt6.
  • PyQt6 introduces changes in how certain Qt modules are imported, and some Qt constants have been renamed or refactored.
  1. Thread Management Updates

  • Threading improvements: We moved from using QThread and QRunnable directly to a more structured approach with a dedicated thread pool and enhanced synchronization.
    • The DownloadRunnable class now uses a more modular design, improving readability and maintainability.
    • Instead of relying on individual thread signals to update the UI, we now use a global thread pool, making the thread management more robust.
    • This refactor ensures the application can handle multiple download tasks concurrently while keeping the UI responsive and synchronized.
  1. Library Preparation Process

  • The library preparation logic has been optimized, with a new flow for checking and preparing the necessary files.
    • Ensuring the Local AppData Attributes: We moved the ensure_local_appdata_attributes() function to the beginning of the prepare_library function, ensuring that the attributes are checked and corrected before any other operation.
    • Plugin folder cleanup: The plugin folder is now consistently cleared before any new files are extracted, preventing potential conflicts or errors from previous installs.
    • Improved error handling: More detailed error messages have been added for every step of the library preparation process, making it easier to diagnose issues.
  1. Optimized File Handling Logic

  • File extraction and replacement have been refactored to ensure smoother file management:
    • We now ensure that the plugin folder is cleared properly before extracting new files.
    • Hash checks are done before downloading or replacing files, ensuring that files are only redownloaded if necessary.
    • Version control has been improved: if files exist with the correct hashes, they are skipped, reducing unnecessary re-downloads.
  • Directory handling: The mkdir calls for creating directories now use the improved mkdir(parents=True, exist_ok=True) pattern, making it safer and more robust.
  1. Improved Logic and Error Handling

  • Improved UI responsiveness: The UI is updated at the correct stages of the program's execution, making sure it remains responsive during file downloading and library preparation.
  • Clear thread management: The handle_download_complete function now checks if threads are still running properly and only starts preparing the library once all threads are complete.
  • Progress and status updates: The progress bar and status messages are updated more effectively throughout the application, providing better feedback during long-running tasks.
  1. Code Refactoring

  • Cleaner codebase: The code has been refactored to separate concerns and improve readability.
    • Functions like create_quixel_files are now more focused on their task, and error handling has been streamlined.
  • The threading model has been simplified to ensure that the application doesn’t hang or crash due to thread-related issues.
  • Logic improvements: The overall flow of data through the application has been improved, making it more reliable and easier to maintain.
  1. Better Logging

  • The logging system has been improved to provide more detailed and informative logs.
  • All major steps of the process (downloads, file extraction, file replacement, etc.) are logged with more contextual information, making debugging easier.
  1. User Interface Enhancements

  • PyQt6 UI Updates: The UI now uses the latest features of PyQt6, improving the overall user experience.
  • The window size and DPI scaling are better handled to ensure the app looks good on different screen resolutions.
  • Maximization Button Disabled: The window maximization button has been disabled to prevent accidental resizing, ensuring a consistent experience on all devices.
  1. Version Control

  • The app now includes both the original version (MaxBridge_Assistant.py) and the new version (MaxBridge_Assistant_v2.py), allowing users to maintain the older version if they need to.
  • The code has been structured in a way that allows easy switching between versions while maintaining a clear upgrade path for future releases.
  1. Other Improvements

  • Various smaller improvements were made in the overall flow of the program, especially in how it interacts with external systems like file paths, and how data is managed throughout the app.

Conclusion

This release introduces several major improvements to the MaxBridge Assistant, focusing on stability, performance, and user experience. By switching to PyQt6, refining thread management, and improving the file handling logic, version 2.0 is much more robust and efficient. This version provides a more reliable and smooth experience while working with the 3ds Max plugin installation and updates.