summaryrefslogtreecommitdiff
path: root/src/modinfo.cpp
diff options
context:
space:
mode:
authorLostDragonist <lost.dragonist@gmail.com>2019-03-22 00:52:00 -0500
committerLostDragonist <lost.dragonist@gmail.com>2019-03-22 00:52:14 -0500
commit5b6f16f06ae06393f0306f39e25265d3f969760b (patch)
tree4b098fbfa6c86ca69a836582b276100cf6c448b5 /src/modinfo.cpp
parent4144684d8db4149440a4e5a007bbfb26a76f80a8 (diff)
Fix reported number of mods checking for update when multiple mods are selected
Diffstat (limited to 'src/modinfo.cpp')
-rw-r--r--src/modinfo.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/modinfo.cpp b/src/modinfo.cpp
index 13b40aba..0afd92e6 100644
--- a/src/modinfo.cpp
+++ b/src/modinfo.cpp
@@ -114,7 +114,7 @@ QString ModInfo::getContentTypeName(int contentType)
}
}
-void ModInfo::createFromOverwrite(PluginContainer *pluginContainer,
+void ModInfo::createFromOverwrite(PluginContainer *pluginContainer,
MOShared::DirectoryEntry **directoryStructure)
{
QMutexLocker locker(&s_Mutex);
@@ -369,8 +369,17 @@ void ModInfo::manualUpdateCheck(PluginContainer *pluginContainer, QObject *recei
std::set<std::pair<QString, int>> organizedGames;
for (auto ID : IDs) {
- auto matchedMods = getByModID(ID.first, ID.second);
- mods.insert(mods.end(), matchedMods.begin(), matchedMods.end());
+ for (auto matchedMod : getByModID(ID.first, ID.second)) {
+ bool alreadyMatched = false;
+ for (auto mod : mods) {
+ if (mod == matchedMod) {
+ alreadyMatched = true;
+ break;
+ }
+ }
+ if (!alreadyMatched)
+ mods.push_back(matchedMod);
+ }
}
mods.erase(
std::remove_if(mods.begin(), mods.end(), [](ModInfo::Ptr mod) -> bool { return mod->getNexusID() <= 0; }),