Add checkbox for LiteLoader in mod filter

Signed-off-by: Yihe Li <winmikedows@hotmail.com>
This commit is contained in:
Yihe Li
2025-04-02 16:01:26 +08:00
parent e883e9f359
commit 0518c50958
7 changed files with 29 additions and 14 deletions

View File

@@ -49,9 +49,12 @@
#include "Application.h"
#include "minecraft/PackProfile.h"
unique_qobject_ptr<ModFilterWidget> ModFilterWidget::create(MinecraftInstance* instance, bool extended, QWidget* parent)
unique_qobject_ptr<ModFilterWidget> ModFilterWidget::create(MinecraftInstance* instance,
bool extended,
ModPlatform::ResourceProvider provider,
QWidget* parent)
{
return unique_qobject_ptr<ModFilterWidget>(new ModFilterWidget(instance, extended, parent));
return unique_qobject_ptr<ModFilterWidget>(new ModFilterWidget(instance, extended, provider, parent));
}
class VersionBasicModel : public QIdentityProxyModel {
@@ -107,7 +110,7 @@ class AllVersionProxyModel : public QSortFilterProxyModel {
}
};
ModFilterWidget::ModFilterWidget(MinecraftInstance* instance, bool extended, QWidget* parent)
ModFilterWidget::ModFilterWidget(MinecraftInstance* instance, bool extended, ModPlatform::ResourceProvider provider, QWidget* parent)
: QTabWidget(parent), ui(new Ui::ModFilterWidget), m_instance(instance), m_filter(new Filter())
{
ui->setupUi(this);
@@ -148,11 +151,10 @@ ModFilterWidget::ModFilterWidget(MinecraftInstance* instance, bool extended, QWi
connect(ui->forge, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->fabric, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->quilt, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->neoForge, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->forge, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->fabric, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->quilt, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
if (provider == ModPlatform::ResourceProvider::FLAME)
ui->liteLoader->setEnabled(false);
else
connect(ui->liteLoader, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
if (extended) {
connect(ui->clientSide, &QCheckBox::stateChanged, this, &ModFilterWidget::onSideFilterChanged);
@@ -224,6 +226,7 @@ void ModFilterWidget::prepareBasicFilter()
ui->forge->setChecked(loaders & ModPlatform::Forge);
ui->fabric->setChecked(loaders & ModPlatform::Fabric);
ui->quilt->setChecked(loaders & ModPlatform::Quilt);
ui->liteLoader->setChecked(loaders & ModPlatform::LiteLoader);
m_filter->loaders = loaders;
auto def = m_instance->getPackProfile()->getComponentVersion("net.minecraft");
m_filter->versions.emplace_front(def);
@@ -269,6 +272,8 @@ void ModFilterWidget::onLoadersFilterChanged()
loaders |= ModPlatform::Fabric;
if (ui->quilt->isChecked())
loaders |= ModPlatform::Quilt;
if (ui->liteLoader->isChecked())
loaders |= ModPlatform::LiteLoader;
m_filter_changed = loaders != m_filter->loaders;
m_filter->loaders = loaders;
if (m_filter_changed)

View File

@@ -83,7 +83,10 @@ class ModFilterWidget : public QTabWidget {
}
};
static unique_qobject_ptr<ModFilterWidget> create(MinecraftInstance* instance, bool extended, QWidget* parent = nullptr);
static unique_qobject_ptr<ModFilterWidget> create(MinecraftInstance* instance,
bool extended,
ModPlatform::ResourceProvider provider,
QWidget* parent = nullptr);
virtual ~ModFilterWidget();
auto getFilter() -> std::shared_ptr<Filter>;
@@ -96,7 +99,7 @@ class ModFilterWidget : public QTabWidget {
void setCategories(const QList<ModPlatform::Category>&);
private:
ModFilterWidget(MinecraftInstance* instance, bool extendedSupport, QWidget* parent = nullptr);
ModFilterWidget(MinecraftInstance* instance, bool extendedSupport, ModPlatform::ResourceProvider provider, QWidget* parent = nullptr);
void loadVersionList();
void prepareBasicFilter();

View File

@@ -121,6 +121,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="liteLoader">
<property name="text">
<string>LiteLoader</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>