aboutsummaryrefslogtreecommitdiff
path: root/application/pages
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
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')
-rw-r--r--application/pages/instance/LogPage.cpp6
-rw-r--r--application/pages/instance/ModFolderPage.cpp2
-rw-r--r--application/pages/instance/ResourcePackPage.h3
-rw-r--r--application/pages/instance/TexturePackPage.h2
-rw-r--r--application/pages/instance/VersionPage.cpp20
-rw-r--r--application/pages/instance/VersionPage.h4
-rw-r--r--application/pages/instance/VersionPage.ui18
7 files changed, 46 insertions, 9 deletions
diff --git a/application/pages/instance/LogPage.cpp b/application/pages/instance/LogPage.cpp
index 94ada424..3d2085c6 100644
--- a/application/pages/instance/LogPage.cpp
+++ b/application/pages/instance/LogPage.cpp
@@ -236,15 +236,15 @@ void LogPage::on_btnPaste_clicked()
return;
//FIXME: turn this into a proper task and move the upload logic out of GuiUtil!
- m_model->append(MessageLevel::MultiMC, tr("MultiMC: Log upload triggered at: %1").arg(QDateTime::currentDateTime().toString(Qt::RFC2822Date)));
+ m_model->append(MessageLevel::MultiMC, QString("MultiMC: Log upload triggered at: %1").arg(QDateTime::currentDateTime().toString(Qt::RFC2822Date)));
auto url = GuiUtil::uploadPaste(m_model->toPlainText(), this);
if(!url.isEmpty())
{
- m_model->append(MessageLevel::MultiMC, tr("MultiMC: Log uploaded to: %1").arg(url));
+ m_model->append(MessageLevel::MultiMC, QString("MultiMC: Log uploaded to: %1").arg(url));
}
else
{
- m_model->append(MessageLevel::Error, tr("MultiMC: Log upload failed!"));
+ m_model->append(MessageLevel::Error, "MultiMC: Log upload failed!");
}
}
diff --git a/application/pages/instance/ModFolderPage.cpp b/application/pages/instance/ModFolderPage.cpp
index c3d6483a..98f20e77 100644
--- a/application/pages/instance/ModFolderPage.cpp
+++ b/application/pages/instance/ModFolderPage.cpp
@@ -163,7 +163,7 @@ ModFolderPage::ModFolderPage(
auto smodel = ui->modTreeView->selectionModel();
connect(smodel, &QItemSelectionModel::currentChanged, this, &ModFolderPage::modCurrent);
- connect(ui->filterEdit, &QLineEdit::textChanged, this, &ModFolderPage::on_filterTextChanged );
+ connect(ui->filterEdit, &QLineEdit::textChanged, this, &ModFolderPage::on_filterTextChanged);
connect(m_inst, &BaseInstance::runningStatusChanged, this, &ModFolderPage::on_RunningState_changed);
}
diff --git a/application/pages/instance/ResourcePackPage.h b/application/pages/instance/ResourcePackPage.h
index e11c78a3..1486bf52 100644
--- a/application/pages/instance/ResourcePackPage.h
+++ b/application/pages/instance/ResourcePackPage.h
@@ -1,4 +1,5 @@
#pragma once
+
#include "ModFolderPage.h"
#include "ui_ModFolderPage.h"
@@ -12,8 +13,8 @@ public:
{
ui->actionView_configs->setVisible(false);
}
-
virtual ~ResourcePackPage() {}
+
virtual bool shouldDisplay() const override
{
return !m_inst->traits().contains("no-texturepacks") &&
diff --git a/application/pages/instance/TexturePackPage.h b/application/pages/instance/TexturePackPage.h
index a792ba07..3f04997d 100644
--- a/application/pages/instance/TexturePackPage.h
+++ b/application/pages/instance/TexturePackPage.h
@@ -1,4 +1,5 @@
#pragma once
+
#include "ModFolderPage.h"
#include "ui_ModFolderPage.h"
@@ -13,6 +14,7 @@ public:
ui->actionView_configs->setVisible(false);
}
virtual ~TexturePackPage() {}
+
virtual bool shouldDisplay() const override
{
return m_inst->traits().contains("texturepacks");
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"
diff --git a/application/pages/instance/VersionPage.h b/application/pages/instance/VersionPage.h
index dbd9c1ee..b5b4a6f5 100644
--- a/application/pages/instance/VersionPage.h
+++ b/application/pages/instance/VersionPage.h
@@ -86,6 +86,7 @@ protected:
private:
Ui::VersionPage *ui;
+ QSortFilterProxyModel *m_filterModel;
std::shared_ptr<PackProfile> m_profile;
MinecraftInstance *m_inst;
int currentIdx = 0;
@@ -98,5 +99,6 @@ private slots:
void updateRunningStatus(bool running);
void onGameUpdateError(QString error);
void packageCurrent(const QModelIndex &current, const QModelIndex &previous);
- void ShowContextMenu(const QPoint &pos);
+ void showContextMenu(const QPoint &pos);
+ void onFilterTextChanged(const QString & newContents);
};
diff --git a/application/pages/instance/VersionPage.ui b/application/pages/instance/VersionPage.ui
index 718ad067..84d06e2e 100644
--- a/application/pages/instance/VersionPage.ui
+++ b/application/pages/instance/VersionPage.ui
@@ -46,6 +46,24 @@
</widget>
</item>
<item>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="filterEdit">
+ <property name="clearButtonEnabled">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="filterLabel">
+ <property name="text">
+ <string>Filter:</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
<widget class="MCModInfoFrame" name="frame">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">