From 8a10147bbb1fe6589c4205bcfd26d6d696512ced Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Wed, 11 Feb 2026 19:04:11 -0600 Subject: Add Root Builder plugin, Linux game detection, and OMOD installer fix - New native Root Builder plugin (src/plugins/rootbuilder.py) with copy and symlink deploy modes, auto-deploy hooks, backup/restore, and third-party conflict detection that moves incompatible plugins to DisabledPlugins/. In link mode, .exe/.dll are always copied to avoid Wine/Proton path resolution issues with symlinked executables. - Fix basic_games detection on Linux: steam_utils now checks native Steam paths (~/.local/share/Steam, Flatpak, Snap), epic_utils uses correct Linux Heroic config paths, gog_utils falls back to Heroic GOG installed.json when Windows registry is unavailable. - Fix OMOD installer crash: isArchiveSupported now handles both IFileTree (from mod list refresh) and string (from install check) arguments. - Add flatpak manifest step to copy source-tree Python plugins (src/plugins/*.py) into the build output. Co-Authored-By: Claude Opus 4.6 --- libs/uibase/include/uibase/filesystemutilities.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libs/uibase/include') diff --git a/libs/uibase/include/uibase/filesystemutilities.h b/libs/uibase/include/uibase/filesystemutilities.h index ae074c6..a98ba7b 100644 --- a/libs/uibase/include/uibase/filesystemutilities.h +++ b/libs/uibase/include/uibase/filesystemutilities.h @@ -31,6 +31,18 @@ QDLLEXPORT QString sanitizeFileName(const QString& name, **/ QDLLEXPORT bool validFileName(const QString& name); +/** + * @brief Resolve a file path case-insensitively on Linux. + * + * On Windows (case-insensitive FS), returns the input path as-is. + * On Linux, if the exact path doesn't exist, searches the parent directory + * for a file matching the name case-insensitively. + * + * @param path the absolute file path to resolve + * @return the resolved path (with correct case) or the original path if not found + */ +QDLLEXPORT QString resolveFileCaseInsensitive(const QString& path); + } // namespace MOBase #endif // FILESYSTEM_H -- cgit v1.3.1