summaryrefslogtreecommitdiff
path: root/src/modlist.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/modlist.cpp
parent7b45d807d6c2c8b5663ec53183e81e16a5baf739 (diff)
Implement file priority for loose files > archives
Diffstat (limited to 'src/modlist.cpp')
-rw-r--r--src/modlist.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/modlist.cpp b/src/modlist.cpp
index d7b5f471..3afa94b5 100644
--- a/src/modlist.cpp
+++ b/src/modlist.cpp
@@ -701,14 +701,13 @@ void ModList::highlightMods(const QItemSelection &selected, const MOShared::Dire
if (fileEntry.get() != nullptr) {
QString fileName;
bool archive = false;
- std::vector<int> origins;
+ std::vector<std::pair<int, std::wstring>> origins;
{
- std::vector<int> alternatives = fileEntry->getAlternatives();
- origins.push_back(fileEntry->getOrigin(archive));
- origins.insert(origins.end(), alternatives.begin(), alternatives.end());
+ std::vector<std::pair<int, std::wstring>> alternatives = fileEntry->getAlternatives();
+ origins.insert(origins.end(), std::pair<int, std::wstring>(fileEntry->getOrigin(archive), fileEntry->getArchive()));
}
- for (int originId : origins) {
- MOShared::FilesOrigin &origin = directoryEntry.getOriginByID(originId);
+ for (auto originInfo : origins) {
+ MOShared::FilesOrigin &origin = directoryEntry.getOriginByID(originInfo.first);
for (unsigned int i = 0; i < ModInfo::getNumMods(); ++i) {
if (ModInfo::getByIndex(i)->internalName() == QString::fromStdWString(origin.getName())) {
ModInfo::getByIndex(i)->setPluginSelected(true);