From fdc4ebd18ce3c988f85abdc894e1e2d736f4ff65 Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Mon, 4 Sep 2023 22:20:25 -0500 Subject: Map multiple data directories to USVFS --- src/organizercore.cpp | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'src/organizercore.cpp') diff --git a/src/organizercore.cpp b/src/organizercore.cpp index 3a959cb3..f75a8717 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -1984,8 +1984,12 @@ std::vector OrganizerCore::fileMapping(const QString &profileName, MappingType result; - QString dataPath - = QDir::toNativeSeparators(game->dataDirectory().absolutePath()); + QStringList dataPaths; + dataPaths.append(QDir::toNativeSeparators(game->dataDirectory().absolutePath())); + + for (auto directory : game->secondaryDataDirectories()) { + dataPaths.append(directory.absolutePath()); + } bool overwriteActive = false; @@ -2002,8 +2006,10 @@ std::vector OrganizerCore::fileMapping(const QString &profileName, overwriteActive |= createTarget; if (modPtr->isRegular()) { - result.insert(result.end(), {QDir::toNativeSeparators(std::get<1>(mod)), - dataPath, true, createTarget}); + for (auto dataPath : dataPaths) { + result.insert(result.end(), { QDir::toNativeSeparators(std::get<1>(mod)), + dataPath, true, createTarget }); + } } } @@ -2024,12 +2030,14 @@ std::vector OrganizerCore::fileMapping(const QString &profileName, } } - result.insert(result.end(), { - QDir::toNativeSeparators(m_Settings.paths().overwrite()), - dataPath, - true, - customOverwrite.isEmpty() - }); + for (auto dataPath : dataPaths) { + result.insert(result.end(), { + QDir::toNativeSeparators(m_Settings.paths().overwrite()), + dataPath, + true, + customOverwrite.isEmpty() + }); + } for (MOBase::IPluginFileMapper *mapper : m_PluginContainer->plugins()) { -- cgit v1.3.1 From d586bb23e95e0cf2b1e130f9c027c48636c1e3c4 Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Sat, 9 Sep 2023 05:13:48 -0500 Subject: Code cleanup --- src/directoryrefresher.cpp | 5 ++++- src/organizercore.cpp | 13 +++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src/organizercore.cpp') diff --git a/src/directoryrefresher.cpp b/src/directoryrefresher.cpp index 63ac28d7..6abbd0c4 100644 --- a/src/directoryrefresher.cpp +++ b/src/directoryrefresher.cpp @@ -475,7 +475,10 @@ void DirectoryRefresher::refresh() for (auto directory : game->secondaryDataDirectories().toStdMap()) { DirectoryStats dummy; - m_Root->addFromOrigin(directory.first.toStdWString(), QDir::toNativeSeparators(directory.second.absolutePath()).toStdWString(), 0, dummy); + m_Root->addFromOrigin( + directory.first.toStdWString(), + QDir::toNativeSeparators(directory.second.absolutePath()).toStdWString(), 0, + dummy); } std::sort(m_Mods.begin(), m_Mods.end(), [](auto lhs, auto rhs) { diff --git a/src/organizercore.cpp b/src/organizercore.cpp index b92c6c6f..e3d1ff29 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -2015,8 +2015,8 @@ std::vector OrganizerCore::fileMapping(const QString& profileName, if (modPtr->isRegular()) { for (auto dataPath : dataPaths) { - result.insert(result.end(), { QDir::toNativeSeparators(std::get<1>(mod)), - dataPath, true, createTarget }); + result.insert(result.end(), {QDir::toNativeSeparators(std::get<1>(mod)), + dataPath, true, createTarget}); } } } @@ -2039,12 +2039,9 @@ std::vector OrganizerCore::fileMapping(const QString& profileName, } for (auto dataPath : dataPaths) { - result.insert(result.end(), { - QDir::toNativeSeparators(m_Settings.paths().overwrite()), - dataPath, - true, - customOverwrite.isEmpty() - }); + result.insert(result.end(), + {QDir::toNativeSeparators(m_Settings.paths().overwrite()), dataPath, + true, customOverwrite.isEmpty()}); } for (MOBase::IPluginFileMapper* mapper : -- cgit v1.3.1