diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-06-05 19:44:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-05 19:44:45 +0200 |
commit | c5cf78205a80400e3f701ab63a54d8a45c853eac (patch) | |
tree | 41fb32c874bacef50be66e4b5a5b5ff8d2520ea8 /launcher | |
parent | 3dccc38f42bf64c922e96b9a224d87ca1cee98c6 (diff) | |
parent | 37b4f606c8e0853c831f792e7238587c66222176 (diff) | |
download | PrismLauncher-c5cf78205a80400e3f701ab63a54d8a45c853eac.tar.gz PrismLauncher-c5cf78205a80400e3f701ab63a54d8a45c853eac.tar.bz2 PrismLauncher-c5cf78205a80400e3f701ab63a54d8a45c853eac.zip |
Merge pull request #1109 from TheKodeToad/mrpack-export-validate
Diffstat (limited to 'launcher')
-rw-r--r-- | launcher/ui/dialogs/ExportMrPackDialog.cpp | 14 | ||||
-rw-r--r-- | launcher/ui/dialogs/ExportMrPackDialog.h | 1 | ||||
-rw-r--r-- | launcher/ui/dialogs/ExportMrPackDialog.ui | 6 |
3 files changed, 20 insertions, 1 deletions
diff --git a/launcher/ui/dialogs/ExportMrPackDialog.cpp b/launcher/ui/dialogs/ExportMrPackDialog.cpp index 06e4693e..239873f6 100644 --- a/launcher/ui/dialogs/ExportMrPackDialog.cpp +++ b/launcher/ui/dialogs/ExportMrPackDialog.cpp @@ -26,6 +26,7 @@ #include <QFileSystemModel> #include <QJsonDocument> #include <QMessageBox> +#include <QPushButton> #include "FastFileIconProvider.h" #include "FileSystem.h" #include "MMCZip.h" @@ -38,6 +39,13 @@ ExportMrPackDialog::ExportMrPackDialog(InstancePtr instance, QWidget* parent) ui->name->setText(instance->name()); ui->summary->setText(instance->notes().split(QRegularExpression("\\r?\\n"))[0]); + // ensure a valid pack is generated + // the name and version fields mustn't be empty + connect(ui->name, &QLineEdit::textEdited, this, &ExportMrPackDialog::validate); + connect(ui->version, &QLineEdit::textEdited, this, &ExportMrPackDialog::validate); + // the instance name can technically be empty + validate(); + QFileSystemModel* model = new QFileSystemModel(this); model->setIconProvider(&icons); @@ -107,3 +115,9 @@ void ExportMrPackDialog::done(int result) QDialog::done(result); } + +void ExportMrPackDialog::validate() +{ + const bool invalid = ui->name->text().isEmpty() || ui->version->text().isEmpty(); + ui->buttonBox->button(QDialogButtonBox::Ok)->setDisabled(invalid); +} diff --git a/launcher/ui/dialogs/ExportMrPackDialog.h b/launcher/ui/dialogs/ExportMrPackDialog.h index 98f1d5fc..1c70c4ae 100644 --- a/launcher/ui/dialogs/ExportMrPackDialog.h +++ b/launcher/ui/dialogs/ExportMrPackDialog.h @@ -35,6 +35,7 @@ class ExportMrPackDialog : public QDialog { ~ExportMrPackDialog(); void done(int result) override; + void validate(); private: const InstancePtr instance; diff --git a/launcher/ui/dialogs/ExportMrPackDialog.ui b/launcher/ui/dialogs/ExportMrPackDialog.ui index f154d210..9a789737 100644 --- a/launcher/ui/dialogs/ExportMrPackDialog.ui +++ b/launcher/ui/dialogs/ExportMrPackDialog.ui @@ -51,7 +51,11 @@ <widget class="QLineEdit" name="name"/> </item> <item row="1" column="1"> - <widget class="QLineEdit" name="version"/> + <widget class="QLineEdit" name="version"> + <property name="text"> + <string>1.0.0</string> + </property> + </widget> </item> </layout> </widget> |