trigger search on filter change
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
parent
3f7847ad34
commit
5012178a98
2 changed files with 15 additions and 5 deletions
|
@ -73,7 +73,7 @@ void ModPage::setFilterWidget(unique_qobject_ptr<ModFilterWidget>& widget)
|
||||||
|
|
||||||
m_filter = m_filter_widget->getFilter();
|
m_filter = m_filter_widget->getFilter();
|
||||||
|
|
||||||
connect(m_filter_widget.get(), &ModFilterWidget::filterChanged, this, &ResourcePage::updateVersionList);
|
connect(m_filter_widget.get(), &ModFilterWidget::filterChanged, this, &ModPage::triggerSearch);
|
||||||
connect(m_filter_widget.get(), &ModFilterWidget::filterChanged, this,
|
connect(m_filter_widget.get(), &ModFilterWidget::filterChanged, this,
|
||||||
[&] { m_ui->searchButton->setStyleSheet("text-decoration: underline"); });
|
[&] { m_ui->searchButton->setStyleSheet("text-decoration: underline"); });
|
||||||
connect(m_filter_widget.get(), &ModFilterWidget::filterUnchanged, this,
|
connect(m_filter_widget.get(), &ModFilterWidget::filterUnchanged, this,
|
||||||
|
|
|
@ -38,9 +38,12 @@
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
#include <QListWidget>
|
#include <QListWidget>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <list>
|
||||||
#include "BaseVersionList.h"
|
#include "BaseVersionList.h"
|
||||||
|
#include "Version.h"
|
||||||
#include "meta/Index.h"
|
#include "meta/Index.h"
|
||||||
#include "modplatform/ModIndex.h"
|
#include "modplatform/ModIndex.h"
|
||||||
|
#include "ui/widgets/CheckComboBox.h"
|
||||||
#include "ui_ModFilterWidget.h"
|
#include "ui_ModFilterWidget.h"
|
||||||
|
|
||||||
#include "Application.h"
|
#include "Application.h"
|
||||||
|
@ -91,6 +94,7 @@ ModFilterWidget::ModFilterWidget(MinecraftInstance* instance, bool extended, QWi
|
||||||
ui->version->setStyleSheet("combobox-popup: 0;");
|
ui->version->setStyleSheet("combobox-popup: 0;");
|
||||||
connect(ui->showAllVersions, &QCheckBox::stateChanged, this, &ModFilterWidget::onShowAllVersionsChanged);
|
connect(ui->showAllVersions, &QCheckBox::stateChanged, this, &ModFilterWidget::onShowAllVersionsChanged);
|
||||||
connect(ui->versions, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &ModFilterWidget::onVersionFilterChanged);
|
connect(ui->versions, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &ModFilterWidget::onVersionFilterChanged);
|
||||||
|
connect(ui->versions, &CheckComboBox::checkedItemsChanged, this, [this] { onVersionFilterChanged(0); });
|
||||||
connect(ui->version, &QComboBox::currentTextChanged, this, &ModFilterWidget::onVersionFilterTextChanged);
|
connect(ui->version, &QComboBox::currentTextChanged, this, &ModFilterWidget::onVersionFilterTextChanged);
|
||||||
|
|
||||||
connect(ui->neoForge, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
|
connect(ui->neoForge, &QCheckBox::stateChanged, this, &ModFilterWidget::onLoadersFilterChanged);
|
||||||
|
@ -184,13 +188,19 @@ void ModFilterWidget::onShowAllVersionsChanged()
|
||||||
void ModFilterWidget::onVersionFilterChanged(int)
|
void ModFilterWidget::onVersionFilterChanged(int)
|
||||||
{
|
{
|
||||||
auto versions = ui->versions->checkedItems();
|
auto versions = ui->versions->checkedItems();
|
||||||
m_filter->versions.clear();
|
versions.sort();
|
||||||
|
std::list<Version> current_list;
|
||||||
|
|
||||||
for (const QString& version : versions)
|
for (const QString& version : versions)
|
||||||
m_filter->versions.emplace_back(version);
|
current_list.emplace_back(version);
|
||||||
|
|
||||||
m_filter_changed = true;
|
m_filter_changed = m_filter->versions.size() != current_list.size() ||
|
||||||
emit filterChanged();
|
!std::equal(m_filter->versions.begin(), m_filter->versions.end(), current_list.begin(), current_list.end());
|
||||||
|
m_filter->versions = current_list;
|
||||||
|
if (m_filter_changed)
|
||||||
|
emit filterChanged();
|
||||||
|
else
|
||||||
|
emit filterUnchanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModFilterWidget::onLoadersFilterChanged()
|
void ModFilterWidget::onLoadersFilterChanged()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue