summaryrefslogtreecommitdiff
path: root/src/pluginlist.cpp
diff options
context:
space:
mode:
authorAl <gabriel.cortesi@outlook.com>2018-12-28 21:26:59 +0100
committerAl <gabriel.cortesi@outlook.com>2018-12-28 21:26:59 +0100
commit93a60177ee7c6b1a6d8d0d7b228ec46fc8e1f318 (patch)
treeac27690d91d9910ae170d87432269ddca6aaf8b5 /src/pluginlist.cpp
parentb82677fab1994a461e49787441aaa1e6c8eb49bd (diff)
Changed "Loads BSA" flag to finds loaded archives in the entire virtual folder.
Diffstat (limited to 'src/pluginlist.cpp')
-rw-r--r--src/pluginlist.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index fcb05979..8f336dae 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -181,15 +181,16 @@ void PluginList::refresh(const QString &profileName
}
QString filename = ToQString(current->getName());
- availablePlugins.append(filename.toLower());
-
- if (m_ESPsByName.find(filename.toLower()) != m_ESPsByName.end()) {
- continue;
- }
-
QString extension = filename.right(3).toLower();
if ((extension == "esp") || (extension == "esm") || (extension == "esl")) {
+
+ availablePlugins.append(filename.toLower());
+
+ if (m_ESPsByName.find(filename.toLower()) != m_ESPsByName.end()) {
+ continue;
+ }
+
bool forceEnabled = Settings::instance().forceEnableCoreFiles() &&
std::find(primaryPlugins.begin(), primaryPlugins.end(), filename.toLower()) != primaryPlugins.end();
@@ -202,10 +203,12 @@ void PluginList::refresh(const QString &profileName
bool hasIni = baseDirectory.findFile(ToWString(iniPath)).get() != nullptr;
std::set<QString> loadedArchives;
- QString originPath = QString::fromWCharArray(origin.getPath().c_str());
- QDir dir(QDir::toNativeSeparators(originPath));
- for (QString filename : dir.entryList(QStringList() << QFileInfo(filename).baseName() + "*.bsa" << QFileInfo(filename).baseName() + "*.ba2")) {
- loadedArchives.insert(filename);
+ for (FileEntry::Ptr archiveCandidate : files) {
+ QString candidateName = ToQString(archiveCandidate->getName());
+ if (candidateName.contains(QRegExp(QFileInfo(filename).baseName() + "*.bsa", Qt::CaseInsensitive, QRegExp::Wildcard)) ||
+ candidateName.contains(QRegExp(QFileInfo(filename).baseName() + "*.ba2", Qt::CaseInsensitive, QRegExp::Wildcard))) {
+ loadedArchives.insert(candidateName);
+ }
}
QString originName = ToQString(origin.getName());