summaryrefslogtreecommitdiff
path: root/src/pluginlist.cpp
diff options
context:
space:
mode:
authorJeremy Rimpo <jrim@rimpo.org>2017-12-17 21:33:04 -0600
committerJeremy Rimpo <jrim@rimpo.org>2017-12-17 21:33:04 -0600
commit385a888c0bc8e5b4d4a6791e46eed3b5963c403a (patch)
tree276eb064a25143f9f8fb61206de08f90cf4f43fd /src/pluginlist.cpp
parent7b45d807d6c2c8b5663ec53183e81e16a5baf739 (diff)
Implement file priority for loose files > archives
Diffstat (limited to 'src/pluginlist.cpp')
-rw-r--r--src/pluginlist.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index 6392d44b..775086fd 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -115,23 +115,23 @@ void PluginList::highlightPlugins(const QItemSelection &selected, const MOShared
}
for (QModelIndex idx : selected.indexes()) {
ModInfo::Ptr selectedMod = ModInfo::getByIndex(idx.data(Qt::UserRole + 1).toInt());
- if (!selectedMod.isNull() && profile.modEnabled(idx.data(Qt::UserRole + 1).toInt())) {
- QDir dir(selectedMod->absolutePath());
- QStringList plugins = dir.entryList(QStringList() << "*.esp" << "*.esm" << "*.esl");
- MOShared::FilesOrigin origin = directoryEntry.getOriginByName(selectedMod->internalName().toStdWString());
- if (plugins.size() > 0) {
- for (auto plugin : plugins) {
+ if (!selectedMod.isNull() && profile.modEnabled(idx.data(Qt::UserRole + 1).toInt())) {
+ QDir dir(selectedMod->absolutePath());
+ QStringList plugins = dir.entryList(QStringList() << "*.esp" << "*.esm" << "*.esl");
+ MOShared::FilesOrigin origin = directoryEntry.getOriginByName(selectedMod->internalName().toStdWString());
+ if (plugins.size() > 0) {
+ for (auto plugin : plugins) {
MOShared::FileEntry::Ptr file = directoryEntry.findFile(plugin.toStdWString());
if (file->getOrigin() != origin.getID()) {
- const std::vector<int> alternatives = file->getAlternatives();
- if (std::find(alternatives.begin(), alternatives.end(), origin.getID()) == alternatives.end())
+ const std::vector<std::pair<int, std::wstring>> alternatives = file->getAlternatives();
+ if (std::find_if(alternatives.begin(), alternatives.end(), [&](const std::pair<int, std::wstring>& element) { return element.first == origin.getID(); }) == alternatives.end())
continue;
}
- std::map<QString, int>::iterator iter = m_ESPsByName.find(plugin.toLower());
- if (iter != m_ESPsByName.end()) {
- m_ESPs[iter->second].m_ModSelected = true;
- }
- }
+ std::map<QString, int>::iterator iter = m_ESPsByName.find(plugin.toLower());
+ if (iter != m_ESPsByName.end()) {
+ m_ESPs[iter->second].m_ModSelected = true;
+ }
+ }
}
}
}