diff options
author | flow <thiagodonato300@gmail.com> | 2022-04-02 20:08:37 -0300 |
---|---|---|
committer | flow <thiagodonato300@gmail.com> | 2022-04-15 08:49:43 -0300 |
commit | 76dfb7825ade6554095ac3a09b3accdbd4db5138 (patch) | |
tree | fbe03978afee836e377f159e196183c28a88fb8e /launcher/ui/dialogs | |
parent | 5cb0e750936f09513b98a8b0fd57746ca18dc8bc (diff) | |
download | PrismLauncher-76dfb7825ade6554095ac3a09b3accdbd4db5138.tar.gz PrismLauncher-76dfb7825ade6554095ac3a09b3accdbd4db5138.tar.bz2 PrismLauncher-76dfb7825ade6554095ac3a09b3accdbd4db5138.zip |
fix: 'All' filter working and get around CF API capabilities
Diffstat (limited to 'launcher/ui/dialogs')
-rw-r--r-- | launcher/ui/dialogs/FilterModsDialog.cpp | 31 | ||||
-rw-r--r-- | launcher/ui/dialogs/FilterModsDialog.h | 17 | ||||
-rw-r--r-- | launcher/ui/dialogs/FilterModsDialog.ui | 62 |
3 files changed, 44 insertions, 66 deletions
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<Version> versions; }; @@ -29,16 +36,12 @@ public: int execWithInstance(MinecraftInstance* instance); + /// By default all buttons are enabled + void disableVersionButton(VersionButtonID); + auto getFilter() -> std::shared_ptr<Filter> { 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 @@ <x>0</x> <y>0</y> <width>345</width> - <height>323</height> + <height>169</height> </rect> </property> - <property name="windowTitle"> - <string>Copy Instance</string> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> - <property name="windowIcon"> - <iconset> - <normaloff>:/icons/toolbar/copy</normaloff>:/icons/toolbar/copy</iconset> + <property name="windowTitle"> + <string>Filter options</string> </property> <property name="sizeGripEnabled"> <bool>true</bool> @@ -78,60 +80,12 @@ </item> </layout> </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <layout class="QFormLayout" name="formLayout"> - <item row="0" column="0" colspan="2"> - <widget class="QRadioButton" name="betweenVersionsButton"> - <property name="text"> - <string>BetweenVersions</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="fromLabel"> - <property name="text"> - <string>From</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="lowerVersionComboBox"/> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="toLabel"> - <property name="text"> - <string>To</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QComboBox" name="upperVersionComboBox"/> - </item> - </layout> - </item> - </layout> - </item> </layout> </item> </layout> </widget> </item> <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> |