diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-17 23:59:40 -0600 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-17 23:59:48 -0600 |
| commit | 480a57cf037a46f176128e6c94aa5616fcf704a3 (patch) | |
| tree | 35be94099e2669f518c623acdf8fe23ee82e55a8 /libs/bsatk/src/bsafolder.cpp | |
| parent | 91e1d7f9f03ab3fd77cee94c1eac2abf89254e50 (diff) | |
Fix Wine prefix deployment, INI handling, and data directory paths
- Fix data directory path to use ~/.var/app/com.fluorine.manager consistently
(was ~/.local/share/fluorine in committed code)
- Fix VFS helper path in fuseconnector.cpp to use fluorineDataDir()
- Fix localAppFolder() to resolve Wine prefix AppData/Local on Linux
instead of returning XDG ~/.local/share
- Add localAppName() virtual method for correct AppData folder mapping
(Enderal→"enderal", Nehrim→"Oblivion")
- Fix mergeTweak() to use direct INI parser instead of QSettings which
corrupts backslashes and URL-encodes spaces in keys
- Make resolveWineDataDirName() more robust with existence checks and
fallback chain (documentsDirectory → gameShortName → gameName)
- Add comprehensive debug logging throughout Wine prefix deployment
- Fix INI case handling: copy instead of symlink for case-mismatched INIs,
ensure both proper-case and lowercase aliases exist
- Remove native build script (Flatpak only)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'libs/bsatk/src/bsafolder.cpp')
| -rw-r--r-- | libs/bsatk/src/bsafolder.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/libs/bsatk/src/bsafolder.cpp b/libs/bsatk/src/bsafolder.cpp index 21e2611..7cb5f88 100644 --- a/libs/bsatk/src/bsafolder.cpp +++ b/libs/bsatk/src/bsafolder.cpp @@ -139,6 +139,19 @@ std::string Folder::getFullPath() const void Folder::addFolderInt(Folder::Ptr folder) { std::filesystem::path path(folder->m_Name); + if (path.empty()) { + folder->m_Parent = this; + if (m_SubFoldersByName.contains("")) { + m_SubFoldersByName.at("")->m_Files.insert(m_SubFoldersByName.at("")->m_Files.end(), + folder->m_Files.begin(), + folder->m_Files.end()); + return; + } + m_SubFolders.push_back(folder); + m_SubFoldersByName[""] = folder; + return; + } + auto it = path.begin(); std::string firstStr = it->string(); std::filesystem::path remaining; @@ -174,6 +187,16 @@ void Folder::addFolderInt(Folder::Ptr folder) Folder::Ptr Folder::addOrFindFolderInt(Folder* folder) { std::filesystem::path path(folder->m_Name); + if (path.empty()) { + if (m_SubFoldersByName.contains("")) { + return m_SubFoldersByName.at(""); + } + folder->m_Parent = this; + m_SubFolders.push_back(Folder::Ptr(folder)); + m_SubFoldersByName[""] = m_SubFolders.back(); + return m_SubFolders.back(); + } + auto it = path.begin(); std::string firstStr = it->string(); std::filesystem::path remaining; |
