Refactor Filter

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
TheKodeToad
2025-08-04 14:02:54 +01:00
parent 79b7e277f1
commit d41db5253e
12 changed files with 50 additions and 111 deletions

View File

@@ -114,7 +114,7 @@ ModFilterWidget::ModFilterWidget(MinecraftInstance* instance, bool extended)
ui->setupUi(this);
m_versions_proxy = new VersionProxyModel(this);
m_versions_proxy->setFilter(BaseVersionList::TypeRole, new ExactFilter("release"));
m_versions_proxy->setFilter(BaseVersionList::TypeRole, Filters::equals("release"));
QAbstractProxyModel* proxy = new VersionBasicModel(this);
proxy->setSourceModel(m_versions_proxy);
@@ -152,9 +152,9 @@ ModFilterWidget::ModFilterWidget(MinecraftInstance* instance, bool extended)
connect(ui->liteLoader, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->babric, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->btaBabric, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
connect(ui->showMoreButton, &QPushButton::clicked, this, &ModFilterWidget::onShowMoreClicked);
if (!extended) {
ui->showMoreButton->setVisible(false);
ui->extendedModLoadersWidget->setVisible(false);
@@ -253,7 +253,7 @@ void ModFilterWidget::onShowAllVersionsChanged()
if (ui->showAllVersions->isChecked())
m_versions_proxy->clearFilters();
else
m_versions_proxy->setFilter(BaseVersionList::TypeRole, new ExactFilter("release"));
m_versions_proxy->setFilter(BaseVersionList::TypeRole, Filters::equals("release"));
}
void ModFilterWidget::onVersionFilterChanged(int)

View File

@@ -224,20 +224,20 @@ BaseVersion::Ptr VersionSelectWidget::selectedVersion() const
void VersionSelectWidget::setFuzzyFilter(BaseVersionList::ModelRoles role, QString filter)
{
m_proxyModel->setFilter(role, new ContainsFilter(filter));
m_proxyModel->setFilter(role, Filters::contains(filter));
}
void VersionSelectWidget::setExactFilter(BaseVersionList::ModelRoles role, QString filter)
{
m_proxyModel->setFilter(role, new ExactFilter(filter));
m_proxyModel->setFilter(role, Filters::equals(filter));
}
void VersionSelectWidget::setExactIfPresentFilter(BaseVersionList::ModelRoles role, QString filter)
{
m_proxyModel->setFilter(role, new ExactIfPresentFilter(filter));
m_proxyModel->setFilter(role, Filters::equalsOrEmpty(filter));
}
void VersionSelectWidget::setFilter(BaseVersionList::ModelRoles role, Filter* filter)
void VersionSelectWidget::setFilter(BaseVersionList::ModelRoles role, Filter filter)
{
m_proxyModel->setFilter(role, filter);
}

View File

@@ -39,13 +39,13 @@
#include <QSortFilterProxyModel>
#include <QWidget>
#include "BaseVersionList.h"
#include "Filter.h"
#include "VersionListView.h"
class VersionProxyModel;
class VersionListView;
class QVBoxLayout;
class QProgressBar;
class Filter;
class VersionSelectWidget : public QWidget {
Q_OBJECT
@@ -70,7 +70,7 @@ class VersionSelectWidget : public QWidget {
void setFuzzyFilter(BaseVersionList::ModelRoles role, QString filter);
void setExactFilter(BaseVersionList::ModelRoles role, QString filter);
void setExactIfPresentFilter(BaseVersionList::ModelRoles role, QString filter);
void setFilter(BaseVersionList::ModelRoles role, Filter* filter);
void setFilter(BaseVersionList::ModelRoles role, Filter filter);
void setEmptyString(QString emptyString);
void setEmptyErrorString(QString emptyErrorString);
void setEmptyMode(VersionListView::EmptyMode mode);