aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--launcher/CMakeLists.txt7
-rw-r--r--launcher/ui/pages/modplatform/ModPage.cpp7
-rw-r--r--launcher/ui/widgets/ModFilterWidget.cpp12
-rw-r--r--launcher/ui/widgets/ModFilterWidget.h4
4 files changed, 25 insertions, 5 deletions
diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index 8579071a..0ab398e8 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -824,9 +824,6 @@ SET(LAUNCHER_SOURCES
ui/dialogs/SkinUploadDialog.h
ui/dialogs/ModDownloadDialog.cpp
ui/dialogs/ModDownloadDialog.h
- ui/dialogs/FilterModsDialog.cpp
- ui/dialogs/FilterModsDialog.h
-
# GUI - widgets
ui/widgets/Common.cpp
@@ -851,6 +848,8 @@ SET(LAUNCHER_SOURCES
ui/widgets/LogView.h
ui/widgets/MCModInfoFrame.cpp
ui/widgets/MCModInfoFrame.h
+ ui/widgets/ModFilterWidget.cpp
+ ui/widgets/ModFilterWidget.h
ui/widgets/ModListView.cpp
ui/widgets/ModListView.h
ui/widgets/PageContainer.cpp
@@ -909,6 +908,7 @@ qt5_wrap_ui(LAUNCHER_UI
ui/widgets/InstanceCardWidget.ui
ui/widgets/CustomCommands.ui
ui/widgets/MCModInfoFrame.ui
+ ui/widgets/ModFilterWidget.ui
ui/dialogs/CopyInstanceDialog.ui
ui/dialogs/ProfileSetupDialog.ui
ui/dialogs/ProgressDialog.ui
@@ -925,7 +925,6 @@ qt5_wrap_ui(LAUNCHER_UI
ui/dialogs/LoginDialog.ui
ui/dialogs/EditAccountDialog.ui
ui/dialogs/ReviewMessageBox.ui
- ui/dialogs/FilterModsDialog.ui
)
qt5_add_resources(LAUNCHER_RESOURCES
diff --git a/launcher/ui/pages/modplatform/ModPage.cpp b/launcher/ui/pages/modplatform/ModPage.cpp
index 57c2e45d..29f6b601 100644
--- a/launcher/ui/pages/modplatform/ModPage.cpp
+++ b/launcher/ui/pages/modplatform/ModPage.cpp
@@ -28,6 +28,13 @@ ModPage::ModPage(ModDownloadDialog* dialog, BaseInstance* instance, ModAPI* api)
filter_widget.setInstance(static_cast<MinecraftInstance*>(m_instance));
m_filter = filter_widget.getFilter();
+
+ connect(&filter_widget, &ModFilterWidget::filterChanged, this, [&]{
+ ui->searchButton->setStyleSheet("text-decoration: underline");
+ });
+ connect(&filter_widget, &ModFilterWidget::filterUnchanged, this, [&]{
+ ui->searchButton->setStyleSheet("text-decoration: none");
+ });
}
ModPage::~ModPage()
diff --git a/launcher/ui/widgets/ModFilterWidget.cpp b/launcher/ui/widgets/ModFilterWidget.cpp
index 339ecb4b..ffc8d05d 100644
--- a/launcher/ui/widgets/ModFilterWidget.cpp
+++ b/launcher/ui/widgets/ModFilterWidget.cpp
@@ -38,6 +38,7 @@ void ModFilterWidget::setInstance(MinecraftInstance* instance)
auto ModFilterWidget::getFilter() -> std::shared_ptr<Filter>
{
m_last_version_id = m_version_id;
+ emit filterUnchanged();
return m_filter;
}
@@ -70,7 +71,11 @@ void ModFilterWidget::onVersionFilterChanged(int id)
int index = 0;
auto cast_id = (VersionButtonID) id;
- m_version_id = cast_id;
+ if (cast_id != m_version_id) {
+ m_version_id = cast_id;
+ } else {
+ return;
+ }
m_filter->versions.clear();
@@ -91,6 +96,11 @@ void ModFilterWidget::onVersionFilterChanged(int id)
// TODO
break;
}
+
+ if(changed())
+ emit filterChanged();
+ else
+ emit filterUnchanged();
}
ModFilterWidget::~ModFilterWidget()
diff --git a/launcher/ui/widgets/ModFilterWidget.h b/launcher/ui/widgets/ModFilterWidget.h
index 5348882f..334fc672 100644
--- a/launcher/ui/widgets/ModFilterWidget.h
+++ b/launcher/ui/widgets/ModFilterWidget.h
@@ -52,6 +52,10 @@ private:
private slots:
void onVersionFilterChanged(int id);
+public: signals:
+ void filterChanged();
+ void filterUnchanged();
+
private:
Ui::ModFilterWidget* ui;