Merge pull request #2558 from Trial97/update_filters

Resolve issue with multiple loaders during mod update
This commit is contained in:
Alexandru Ionut Tripon
2024-07-19 15:46:15 +03:00
committed by GitHub
14 changed files with 270 additions and 183 deletions

View File

@ -1,4 +1,5 @@
#include "ModUpdateDialog.h"
#include "Application.h"
#include "ChooseProviderDialog.h"
#include "CustomMessageBox.h"
#include "ProgressDialog.h"
@ -30,9 +31,9 @@ static std::list<Version> mcVersions(BaseInstance* inst)
return { static_cast<MinecraftInstance*>(inst)->getPackProfile()->getComponent("net.minecraft")->getVersion() };
}
static std::optional<ModPlatform::ModLoaderTypes> mcLoaders(BaseInstance* inst)
static QList<ModPlatform::ModLoaderType> mcLoadersList(BaseInstance* inst)
{
return { static_cast<MinecraftInstance*>(inst)->getPackProfile()->getSupportedModLoaders() };
return static_cast<MinecraftInstance*>(inst)->getPackProfile()->getModLoadersList();
}
ModUpdateDialog::ModUpdateDialog(QWidget* parent,
@ -86,19 +87,19 @@ void ModUpdateDialog::checkCandidates()
}
auto versions = mcVersions(m_instance);
auto loaders = mcLoaders(m_instance);
auto loadersList = mcLoadersList(m_instance);
SequentialTask check_task(m_parent, tr("Checking for updates"));
if (!m_modrinth_to_update.empty()) {
m_modrinth_check_task.reset(new ModrinthCheckUpdate(m_modrinth_to_update, versions, loaders, m_mod_model));
m_modrinth_check_task.reset(new ModrinthCheckUpdate(m_modrinth_to_update, versions, loadersList, m_mod_model));
connect(m_modrinth_check_task.get(), &CheckUpdateTask::checkFailed, this,
[this](Mod* mod, QString reason, QUrl recover_url) { m_failed_check_update.append({ mod, reason, recover_url }); });
check_task.addTask(m_modrinth_check_task);
}
if (!m_flame_to_update.empty()) {
m_flame_check_task.reset(new FlameCheckUpdate(m_flame_to_update, versions, loaders, m_mod_model));
m_flame_check_task.reset(new FlameCheckUpdate(m_flame_to_update, versions, loadersList, m_mod_model));
connect(m_flame_check_task.get(), &CheckUpdateTask::checkFailed, this,
[this](Mod* mod, QString reason, QUrl recover_url) { m_failed_check_update.append({ mod, reason, recover_url }); });
check_task.addTask(m_flame_check_task);