From 76dfb7825ade6554095ac3a09b3accdbd4db5138 Mon Sep 17 00:00:00 2001 From: flow Date: Sat, 2 Apr 2022 20:08:37 -0300 Subject: fix: 'All' filter working and get around CF API capabilities --- launcher/ui/dialogs/FilterModsDialog.cpp | 31 +++++++++++++--- launcher/ui/dialogs/FilterModsDialog.h | 17 +++++---- launcher/ui/dialogs/FilterModsDialog.ui | 62 +++++--------------------------- 3 files changed, 44 insertions(+), 66 deletions(-) (limited to 'launcher/ui/dialogs') diff --git a/launcher/ui/dialogs/FilterModsDialog.cpp b/launcher/ui/dialogs/FilterModsDialog.cpp index a36f4ba4..bf4999e0 100644 --- a/launcher/ui/dialogs/FilterModsDialog.cpp +++ b/launcher/ui/dialogs/FilterModsDialog.cpp @@ -9,7 +9,7 @@ FilterModsDialog::FilterModsDialog(Version def, QWidget* parent) m_mcVersion_buttons.addButton(ui->strictVersionButton, VersionButtonID::Strict); m_mcVersion_buttons.addButton(ui->majorVersionButton, VersionButtonID::Major); m_mcVersion_buttons.addButton(ui->allVersionsButton, VersionButtonID::All); - m_mcVersion_buttons.addButton(ui->betweenVersionsButton, VersionButtonID::Between); + //m_mcVersion_buttons.addButton(ui->betweenVersionsButton, VersionButtonID::Between); connect(&m_mcVersion_buttons, SIGNAL(idClicked(int)), this, SLOT(onVersionFilterChanged(int))); @@ -31,18 +31,38 @@ int FilterModsDialog::execWithInstance(MinecraftInstance* instance) tr("Major varsion match (= %1.%2.x)").arg(mcVersionSplit[0], mcVersionSplit[1])); ui->allVersionsButton->setText( tr("Any version match")); - ui->betweenVersionsButton->setText( - tr("Between two versions")); + //ui->betweenVersionsButton->setText( + // tr("Between two versions")); int ret = QDialog::exec(); m_instance = nullptr; return ret; } +void FilterModsDialog::disableVersionButton(VersionButtonID id) +{ + switch(id){ + case(VersionButtonID::Strict): + ui->strictVersionButton->setEnabled(false); + break; + case(VersionButtonID::Major): + ui->majorVersionButton->setEnabled(false); + break; + case(VersionButtonID::All): + ui->allVersionsButton->setEnabled(false); + break; + case(VersionButtonID::Between): + // ui->betweenVersionsButton->setEnabled(false); + break; + default: + break; + } +} + void FilterModsDialog::onVersionFilterChanged(int id) { - ui->lowerVersionComboBox->setEnabled(id == VersionButtonID::Between); - ui->upperVersionComboBox->setEnabled(id == VersionButtonID::Between); + //ui->lowerVersionComboBox->setEnabled(id == VersionButtonID::Between); + //ui->upperVersionComboBox->setEnabled(id == VersionButtonID::Between); auto versionSplit = mcVersionStr().split("."); int index = 0; @@ -60,6 +80,7 @@ void FilterModsDialog::onVersionFilterChanged(int id) } break; case(VersionButtonID::All): + // Empty list to avoid enumerating all versions :P break; case(VersionButtonID::Between): // TODO diff --git a/launcher/ui/dialogs/FilterModsDialog.h b/launcher/ui/dialogs/FilterModsDialog.h index b119e8e5..3684b03c 100644 --- a/launcher/ui/dialogs/FilterModsDialog.h +++ b/launcher/ui/dialogs/FilterModsDialog.h @@ -17,6 +17,13 @@ class FilterModsDialog : public QDialog { Q_OBJECT public: + enum VersionButtonID { + Strict = 0, + Major = 1, + All = 2, + Between = 3 + }; + struct Filter { std::list versions; }; @@ -29,16 +36,12 @@ public: int execWithInstance(MinecraftInstance* instance); + /// By default all buttons are enabled + void disableVersionButton(VersionButtonID); + auto getFilter() -> std::shared_ptr { return m_filter; } private: - enum VersionButtonID { - Strict = 0, - Major = 1, - All = 2, - Between = 3 - }; - inline auto mcVersionStr() const -> QString { return m_instance ? m_instance->getPackProfile()->getComponentVersion("net.minecraft") : ""; } inline auto mcVersion() const -> Version { return { mcVersionStr() }; } diff --git a/launcher/ui/dialogs/FilterModsDialog.ui b/launcher/ui/dialogs/FilterModsDialog.ui index da368aac..67a63bfd 100644 --- a/launcher/ui/dialogs/FilterModsDialog.ui +++ b/launcher/ui/dialogs/FilterModsDialog.ui @@ -10,15 +10,17 @@ 0 0 345 - 323 + 169 - - Copy Instance + + + 0 + 0 + - - - :/icons/toolbar/copy:/icons/toolbar/copy + + Filter options true @@ -78,59 +80,11 @@ - - - - - - - - BetweenVersions - - - - - - - From - - - - - - - - - - To - - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - -- cgit