aboutsummaryrefslogtreecommitdiff
path: root/application/pages/instance/VersionPage.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@users.noreply.github.com>2021-06-19 12:50:21 +0200
committerGitHub <noreply@github.com>2021-06-19 12:50:21 +0200
commit5f8d07c0092b6cc44f81104a3d7f9e7e49d9df5d (patch)
tree8fe8110d91c112d5596610df8045801e23e7212b /application/pages/instance/VersionPage.cpp
parent25955c08179a9077ca7eef89d0f72eb7803bec08 (diff)
parentb246fc171e1e8c747b0aedd6b0b47b923cc8cfb7 (diff)
downloadPrismLauncher-5f8d07c0092b6cc44f81104a3d7f9e7e49d9df5d.tar.gz
PrismLauncher-5f8d07c0092b6cc44f81104a3d7f9e7e49d9df5d.tar.bz2
PrismLauncher-5f8d07c0092b6cc44f81104a3d7f9e7e49d9df5d.zip
Merge pull request #3875 from jamierocks/feature/gh-3033
GH-3033 Add filtering for version components
Diffstat (limited to 'application/pages/instance/VersionPage.cpp')
-rw-r--r--application/pages/instance/VersionPage.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/application/pages/instance/VersionPage.cpp b/application/pages/instance/VersionPage.cpp
index 7f7ba860..eff12c9c 100644
--- a/application/pages/instance/VersionPage.cpp
+++ b/application/pages/instance/VersionPage.cpp
@@ -120,7 +120,15 @@ VersionPage::VersionPage(MinecraftInstance *inst, QWidget *parent)
auto proxy = new IconProxy(ui->packageView);
proxy->setSourceModel(m_profile.get());
- ui->packageView->setModel(proxy);
+
+ m_filterModel = new QSortFilterProxyModel();
+ m_filterModel->setDynamicSortFilter(true);
+ m_filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
+ m_filterModel->setSortCaseSensitivity(Qt::CaseInsensitive);
+ m_filterModel->setSourceModel(proxy);
+ m_filterModel->setFilterKeyColumn(-1);
+
+ ui->packageView->setModel(m_filterModel);
ui->packageView->installEventFilter(this);
ui->packageView->setSelectionMode(QAbstractItemView::SingleSelection);
ui->packageView->setContextMenuPolicy(Qt::CustomContextMenu);
@@ -134,7 +142,8 @@ VersionPage::VersionPage(MinecraftInstance *inst, QWidget *parent)
updateVersionControls();
preselect(0);
connect(m_inst, &BaseInstance::runningStatusChanged, this, &VersionPage::updateRunningStatus);
- connect(ui->packageView, &ModListView::customContextMenuRequested, this, &VersionPage::ShowContextMenu);
+ connect(ui->packageView, &ModListView::customContextMenuRequested, this, &VersionPage::showContextMenu);
+ connect(ui->filterEdit, &QLineEdit::textChanged, this, &VersionPage::onFilterTextChanged);
}
VersionPage::~VersionPage()
@@ -142,7 +151,7 @@ VersionPage::~VersionPage()
delete ui;
}
-void VersionPage::ShowContextMenu(const QPoint& pos)
+void VersionPage::showContextMenu(const QPoint& pos)
{
auto menu = ui->toolBar->createContextMenu(this, tr("Context menu"));
menu->exec(ui->packageView->mapToGlobal(pos));
@@ -620,5 +629,10 @@ void VersionPage::on_actionRevert_triggered()
m_container->refreshContainer();
}
+void VersionPage::onFilterTextChanged(const QString &newContents)
+{
+ m_filterModel->setFilterFixedString(newContents);
+}
+
#include "VersionPage.moc"