summaryrefslogtreecommitdiff
path: root/src/modinfodialog.cpp
diff options
context:
space:
mode:
authorJeremy Rimpo <jeremy.rimpo@servermonkey.com>2025-05-23 14:08:01 -0500
committerGitHub <noreply@github.com>2025-05-23 14:08:01 -0500
commit3a8ea3cccee06397e90305e1e39a305f8b7c3cb3 (patch)
tree6c16bf9825bf3f1613a8536d4702f24667fc4c80 /src/modinfodialog.cpp
parent5d766e94a7a3b3fa861d57d3ad6ae619d98dd5d8 (diff)
Oblivion Remastered Meta PR (#2241)
* Allow for mod directory maps - Set main data files based on game - Mapped mod directories to VFS - Update overwrite setup * Skip if mod contains no 'data' dir * More mod directory compatibility fixes * Workaround for Obl:Rem save location - SLocalSavePath does nothing yet MO2 wants to use it to override the default save location - This only applies to BGS games anyway, we should move this logic * First pass for overwrite mod directory support * More overwrite move / delete restrictions * Fix issue with moving directories that are not required * Formatting pass * More modDataDirectory updates * Formatting --------- Co-authored-by: Mikaƫl Capelle <capelle.mikael@gmail.com>
Diffstat (limited to 'src/modinfodialog.cpp')
-rw-r--r--src/modinfodialog.cpp29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index 1798e987..04ef003a 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -571,25 +571,30 @@ void ModInfoDialog::updateTabs(bool becauseOriginChanged)
void ModInfoDialog::feedFiles(std::vector<TabInfo*>& interestedTabs)
{
- const auto rootPath = m_mod->absolutePath();
+ const auto rootPath =
+ m_mod->absolutePath() + (m_core.managedGame()->modDataDirectory().isEmpty()
+ ? ""
+ : "/" + m_core.managedGame()->modDataDirectory());
if (rootPath.isEmpty()) {
return;
}
- const fs::path fsPath(rootPath.toStdWString());
+ if (fs::exists(rootPath.toStdWString())) {
+ const fs::path fsPath(rootPath.toStdWString());
- for (const auto& entry : fs::recursive_directory_iterator(fsPath)) {
- if (!entry.is_regular_file()) {
- // skip directories
- continue;
- }
+ for (const auto& entry : fs::recursive_directory_iterator(fsPath)) {
+ if (!entry.is_regular_file()) {
+ // skip directories
+ continue;
+ }
- const auto filePath = QString::fromStdWString(entry.path().native());
+ const auto filePath = QString::fromStdWString(entry.path().native());
- // for each tab
- for (auto* tabInfo : interestedTabs) {
- if (tabInfo->tab->feedFile(rootPath, filePath)) {
- break;
+ // for each tab
+ for (auto* tabInfo : interestedTabs) {
+ if (tabInfo->tab->feedFile(rootPath, filePath)) {
+ break;
+ }
}
}
}