diff --git a/launcher/minecraft/mod/ModFolderModel.cpp b/launcher/minecraft/mod/ModFolderModel.cpp index fae832940..3a7962e50 100644 --- a/launcher/minecraft/mod/ModFolderModel.cpp +++ b/launcher/minecraft/mod/ModFolderModel.cpp @@ -303,24 +303,6 @@ void ModFolderModel::onParseFinished() } } } - auto removeDuplicates = [](QList& list) { - std::set seen; - auto it = std::remove_if(list.begin(), list.end(), [&seen](Mod* m) { - auto id = m->mod_id(); - if (seen.count(id) > 0) { - return true; - } - seen.insert(id); - return false; - }); - list.erase(it, list.end()); - }; - for (auto key : m_requiredBy.keys()) { - removeDuplicates(m_requiredBy[key]); - } - for (auto key : m_requires.keys()) { - removeDuplicates(m_requires[key]); - } for (auto mod : mods) { auto id = mod->mod_id(); mod->setRequiredByCount(m_requiredBy[id].count()); @@ -348,7 +330,7 @@ QModelIndexList ModFolderModel::getAffectedMods(const QModelIndexList& indexes, bool shouldBeEnabled = action == EnableAction::ENABLE; for (auto mod : indexedMods) { auto id = mod->mod_id(); - QList mods; + QSet mods; switch (action) { case EnableAction::DISABLE: { mods = m_requiredBy[id]; @@ -386,7 +368,7 @@ bool ModFolderModel::setResourceEnabled(const QModelIndexList& indexes, EnableAc return ResourceFolderModel::setResourceEnabled(indexes + affected, action); } -QStringList reqToList(QList l) +QStringList reqToList(QSet l) { QStringList req; for (auto m : l) { diff --git a/launcher/minecraft/mod/ModFolderModel.h b/launcher/minecraft/mod/ModFolderModel.h index e794cacdc..e47c18405 100644 --- a/launcher/minecraft/mod/ModFolderModel.h +++ b/launcher/minecraft/mod/ModFolderModel.h @@ -40,7 +40,6 @@ #include #include #include -#include #include #include #include @@ -104,6 +103,6 @@ class ModFolderModel : public ResourceFolderModel { void onParseFinished(); private: - QHash> m_requiredBy; - QHash> m_requires; + QHash> m_requiredBy; + QHash> m_requires; };