summaryrefslogtreecommitdiff
path: root/src/modinfodialog.cpp
diff options
context:
space:
mode:
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;
+ }
}
}
}