diff options
| author | LostDragonist <lost.dragonist@gmail.com> | 2019-03-22 00:52:00 -0500 |
|---|---|---|
| committer | LostDragonist <lost.dragonist@gmail.com> | 2019-03-22 00:52:14 -0500 |
| commit | 5b6f16f06ae06393f0306f39e25265d3f969760b (patch) | |
| tree | 4b098fbfa6c86ca69a836582b276100cf6c448b5 /src | |
| parent | 4144684d8db4149440a4e5a007bbfb26a76f80a8 (diff) | |
Fix reported number of mods checking for update when multiple mods are selected
Diffstat (limited to 'src')
| -rw-r--r-- | src/modinfo.cpp | 15 |
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; }), |
