aboutsummaryrefslogtreecommitdiff
path: root/libs/bsatk/src/bsafolder.cpp
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-17 23:59:40 -0600
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-17 23:59:48 -0600
commit480a57cf037a46f176128e6c94aa5616fcf704a3 (patch)
tree35be94099e2669f518c623acdf8fe23ee82e55a8 /libs/bsatk/src/bsafolder.cpp
parent91e1d7f9f03ab3fd77cee94c1eac2abf89254e50 (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.cpp23
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;