From 5b6f16f06ae06393f0306f39e25265d3f969760b Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Fri, 22 Mar 2019 00:52:00 -0500 Subject: Fix reported number of mods checking for update when multiple mods are selected --- src/modinfo.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/modinfo.cpp') 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> 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; }), -- cgit v1.3.1