From 6a41932e651154f74b21fd6469282f84dfd9bfb7 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Fri, 9 Jan 2026 00:07:23 +0200 Subject: [PATCH] add more loaders to ovveride setting fixes #4624 Signed-off-by: Trial97 --- .../ui/widgets/MinecraftSettingsWidget.cpp | 52 ++++++++++++------- .../ui/widgets/MinecraftSettingsWidget.ui | 49 ++++++++++++++--- launcher/ui/widgets/ModFilterWidget.cpp | 5 ++ launcher/ui/widgets/ModFilterWidget.ui | 2 +- 4 files changed, 81 insertions(+), 27 deletions(-) diff --git a/launcher/ui/widgets/MinecraftSettingsWidget.cpp b/launcher/ui/widgets/MinecraftSettingsWidget.cpp index 255d19317..2f1472f3b 100644 --- a/launcher/ui/widgets/MinecraftSettingsWidget.cpp +++ b/launcher/ui/widgets/MinecraftSettingsWidget.cpp @@ -115,11 +115,11 @@ MinecraftSettingsWidget::MinecraftSettingsWidget(MinecraftInstance* instance, QW else m_instance->settings()->reset("ModDownloadLoaders"); }); - connect(m_ui->neoForge, &QCheckBox::stateChanged, this, &MinecraftSettingsWidget::saveSelectedLoaders); - connect(m_ui->forge, &QCheckBox::stateChanged, this, &MinecraftSettingsWidget::saveSelectedLoaders); - connect(m_ui->fabric, &QCheckBox::stateChanged, this, &MinecraftSettingsWidget::saveSelectedLoaders); - connect(m_ui->quilt, &QCheckBox::stateChanged, this, &MinecraftSettingsWidget::saveSelectedLoaders); - connect(m_ui->liteLoader, &QCheckBox::stateChanged, this, &MinecraftSettingsWidget::saveSelectedLoaders); + + for (auto c : { m_ui->neoForge, m_ui->forge, m_ui->fabric, m_ui->quilt, m_ui->liteLoader, m_ui->babric, m_ui->btaBabric, + m_ui->legacyFabric, m_ui->ornithe, m_ui->rift }) { + connect(c, &QCheckBox::stateChanged, this, &MinecraftSettingsWidget::saveSelectedLoaders); + } } m_ui->maximizedWarning->hide(); @@ -251,12 +251,12 @@ void MinecraftSettingsWidget::loadSettings() m_ui->instanceAccountGroupBox->setChecked(settings->get("UseAccountForInstance").toBool()); updateAccountsMenu(*settings); + auto blockSignalsCheckBoxes = { m_ui->neoForge, m_ui->forge, m_ui->fabric, m_ui->quilt, m_ui->liteLoader, + m_ui->babric, m_ui->btaBabric, m_ui->legacyFabric, m_ui->ornithe, m_ui->rift }; m_ui->loaderGroup->blockSignals(true); - m_ui->neoForge->blockSignals(true); - m_ui->forge->blockSignals(true); - m_ui->fabric->blockSignals(true); - m_ui->quilt->blockSignals(true); - m_ui->liteLoader->blockSignals(true); + for (auto c : blockSignalsCheckBoxes) { + c->blockSignals(true); + } const bool overrideLoaders = settings->get("OverrideModDownloadLoaders").toBool(); const QStringList loaders = Json::toStringList(settings->get("ModDownloadLoaders").toString()); @@ -269,6 +269,11 @@ void MinecraftSettingsWidget::loadSettings() m_ui->fabric->setChecked(loaders.contains(getModLoaderAsString(ModPlatform::Fabric))); m_ui->quilt->setChecked(loaders.contains(getModLoaderAsString(ModPlatform::Quilt))); m_ui->liteLoader->setChecked(loaders.contains(getModLoaderAsString(ModPlatform::LiteLoader))); + m_ui->babric->setChecked(loaders.contains(getModLoaderAsString(ModPlatform::Babric))); + m_ui->btaBabric->setChecked(loaders.contains(getModLoaderAsString(ModPlatform::BTA))); + m_ui->legacyFabric->setChecked(loaders.contains(getModLoaderAsString(ModPlatform::LegacyFabric))); + m_ui->ornithe->setChecked(loaders.contains(getModLoaderAsString(ModPlatform::Ornithe))); + m_ui->rift->setChecked(loaders.contains(getModLoaderAsString(ModPlatform::Rift))); } else { auto instLoaders = m_instance->getPackProfile()->getSupportedModLoaders().value_or(ModPlatform::ModLoaderTypes(0)); @@ -277,14 +282,17 @@ void MinecraftSettingsWidget::loadSettings() m_ui->fabric->setChecked(instLoaders & ModPlatform::Fabric); m_ui->quilt->setChecked(instLoaders & ModPlatform::Quilt); m_ui->liteLoader->setChecked(instLoaders & ModPlatform::LiteLoader); + m_ui->babric->setChecked(instLoaders & ModPlatform::Babric); + m_ui->btaBabric->setChecked(instLoaders & ModPlatform::BTA); + m_ui->legacyFabric->setChecked(instLoaders & ModPlatform::LegacyFabric); + m_ui->ornithe->setChecked(instLoaders & ModPlatform::Ornithe); + m_ui->rift->setChecked(instLoaders & ModPlatform::Rift); } m_ui->loaderGroup->blockSignals(false); - m_ui->neoForge->blockSignals(false); - m_ui->forge->blockSignals(false); - m_ui->fabric->blockSignals(false); - m_ui->quilt->blockSignals(false); - m_ui->liteLoader->blockSignals(false); + for (auto c : blockSignalsCheckBoxes) { + c->blockSignals(false); + } } m_ui->legacySettingsGroupBox->setChecked(settings->get("OverrideLegacySettings").toBool()); @@ -522,18 +530,24 @@ void MinecraftSettingsWidget::saveSelectedLoaders() if (m_ui->neoForge->isChecked()) loaders << getModLoaderAsString(ModPlatform::NeoForge); - if (m_ui->forge->isChecked()) loaders << getModLoaderAsString(ModPlatform::Forge); - if (m_ui->fabric->isChecked()) loaders << getModLoaderAsString(ModPlatform::Fabric); - if (m_ui->quilt->isChecked()) loaders << getModLoaderAsString(ModPlatform::Quilt); - if (m_ui->liteLoader->isChecked()) loaders << getModLoaderAsString(ModPlatform::LiteLoader); + if (m_ui->babric->isChecked()) + loaders << getModLoaderAsString(ModPlatform::Babric); + if (m_ui->btaBabric->isChecked()) + loaders << getModLoaderAsString(ModPlatform::BTA); + if (m_ui->legacyFabric->isChecked()) + loaders << getModLoaderAsString(ModPlatform::LegacyFabric); + if (m_ui->ornithe->isChecked()) + loaders << getModLoaderAsString(ModPlatform::Ornithe); + if (m_ui->rift->isChecked()) + loaders << getModLoaderAsString(ModPlatform::Rift); m_instance->settings()->set("ModDownloadLoaders", Json::fromStringList(loaders)); } diff --git a/launcher/ui/widgets/MinecraftSettingsWidget.ui b/launcher/ui/widgets/MinecraftSettingsWidget.ui index f8ee2f854..1d68ffabf 100644 --- a/launcher/ui/widgets/MinecraftSettingsWidget.ui +++ b/launcher/ui/widgets/MinecraftSettingsWidget.ui @@ -6,7 +6,7 @@ 0 0 - 648 + 653 600 @@ -59,8 +59,8 @@ 0 0 - 603 - 1042 + 623 + 1352 @@ -516,6 +516,41 @@ It is most likely you will need to change the path - please refer to the mod's w + + + + Babric + + + + + + + BTA (Babric) + + + + + + + Legacy Fabric + + + + + + + Ornithe + + + + + + + Rift + + + @@ -553,8 +588,8 @@ It is most likely you will need to change the path - please refer to the mod's w 0 0 - 100 - 30 + 623 + 484 @@ -577,8 +612,8 @@ It is most likely you will need to change the path - please refer to the mod's w 0 0 - 261 - 434 + 609 + 499 diff --git a/launcher/ui/widgets/ModFilterWidget.cpp b/launcher/ui/widgets/ModFilterWidget.cpp index 60b298901..4675b2698 100644 --- a/launcher/ui/widgets/ModFilterWidget.cpp +++ b/launcher/ui/widgets/ModFilterWidget.cpp @@ -241,6 +241,11 @@ void ModFilterWidget::prepareBasicFilter() ui->fabric->setChecked(loaders & ModPlatform::Fabric); ui->quilt->setChecked(loaders & ModPlatform::Quilt); ui->liteLoader->setChecked(loaders & ModPlatform::LiteLoader); + ui->babric->setChecked(loaders & ModPlatform::Babric); + ui->btaBabric->setChecked(loaders & ModPlatform::BTA); + ui->legacyFabric->setChecked(loaders & ModPlatform::LegacyFabric); + ui->ornithe->setChecked(loaders & ModPlatform::Ornithe); + ui->rift->setChecked(loaders & ModPlatform::Rift); m_filter->loaders = loaders; auto def = m_instance->getPackProfile()->getComponentVersion("net.minecraft"); m_filter->versions.emplace_front(def); diff --git a/launcher/ui/widgets/ModFilterWidget.ui b/launcher/ui/widgets/ModFilterWidget.ui index d29c9752a..500d663bd 100644 --- a/launcher/ui/widgets/ModFilterWidget.ui +++ b/launcher/ui/widgets/ModFilterWidget.ui @@ -64,7 +64,7 @@ 0 0 294 - 781 + 817