aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/dialogs
diff options
context:
space:
mode:
authorflow <thiagodonato300@gmail.com>2022-04-02 20:08:37 -0300
committerflow <thiagodonato300@gmail.com>2022-04-15 08:49:43 -0300
commit76dfb7825ade6554095ac3a09b3accdbd4db5138 (patch)
treefbe03978afee836e377f159e196183c28a88fb8e /launcher/ui/dialogs
parent5cb0e750936f09513b98a8b0fd57746ca18dc8bc (diff)
downloadPrismLauncher-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.cpp31
-rw-r--r--launcher/ui/dialogs/FilterModsDialog.h17
-rw-r--r--launcher/ui/dialogs/FilterModsDialog.ui62
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>