SaveState v1.3.6 - Heuristic Configuration, Performance & UI Refinements
This release centralizes heuristic configurations, significantly expands detection lists, improves performance, enhances UI consistency for date display, and fixes several bugs including a critical one affecting save detection.
Changes:
Improved:
- Centralized Heuristic Configuration: All lists influencing the save path heuristic search (
COMMON_SAVE_SUBDIRS,COMMON_PUBLISHERS,COMMON_SAVE_EXTENSIONS,COMMON_SAVE_FILENAMES,SIMILARITY_IGNORE_WORDS,BANNED_FOLDER_NAMES_LOWER) are now correctly defined inconfig.pyfor easier customization, instead of relying on internal defaults incore_logic.py. - Expanded Heuristic Lists: Significantly expanded the default contents of all heuristic configuration lists in
config.py(Publishers, Save Subdirs, Banned Folders, Save Extensions, Save Filenames, Ignore Words) based on common patterns and research, increasing the likelihood of finding save paths and avoiding irrelevant folders. - Backup List Display: Improved the display of backups in "Manage Backups" and "Restore Backup" dialogs:
- Removed the redundant timestamp suffix (
_YYYYMMDD_HHMMSS) from the displayed filename. - Implemented locale-aware date formatting (using
QLocale) to match the format used in the main profile table (e.g., DD/MM/YYYY for Italian, MM/DD/YYYY for English).
- Removed the redundant timestamp suffix (
Fixed:
- Save Detection Regression: Fixed a critical issue where the heuristic search could fail to find correct save paths (like for Deep Rock Galactic) because the common save subdirectory list (
COMMON_SAVE_SUBDIRS) was not being loaded correctly fromconfig.py(it was missing from the file). - Potential Error during Heuristic Search: Removed a potential
NameErrorthat could occur during the install directory walk due to incorrect placement/usage of a debug variable in previous iterations.
Internal / Refactoring:
- Performance Optimization: Implemented performance improvements in
core_logic.py's heuristic functions (guess_save_path,final_sort_key) by replacing repeated list comprehensions and lookups with more efficientsetlookups for abbreviations and common publishers. Also optimizedos.path.basenamecalls within the sorting key function. - Code Cleanup: Removed the unused
appidvariable from thefinal_sort_keyfunction. - Code Cleanup: Simplified the configuration loading logic in
guess_save_pathby removing the no longer necessaryexcept AttributeErrorblock that contained outdated default definitions. - Code Cleanup: Removed temporary debug logging statements added during troubleshooting.