aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/dialogs/ExportMrPackDialog.cpp
diff options
context:
space:
mode:
authorTheKodeToad <TheKodeToad@proton.me>2023-06-05 17:52:48 +0100
committerTheKodeToad <TheKodeToad@proton.me>2023-06-05 17:54:24 +0100
commit37b4f606c8e0853c831f792e7238587c66222176 (patch)
tree41fb32c874bacef50be66e4b5a5b5ff8d2520ea8 /launcher/ui/dialogs/ExportMrPackDialog.cpp
parent3dccc38f42bf64c922e96b9a224d87ca1cee98c6 (diff)
downloadPrismLauncher-37b4f606c8e0853c831f792e7238587c66222176.tar.gz
PrismLauncher-37b4f606c8e0853c831f792e7238587c66222176.tar.bz2
PrismLauncher-37b4f606c8e0853c831f792e7238587c66222176.zip
Validate input lengths on mrpack export
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
Diffstat (limited to 'launcher/ui/dialogs/ExportMrPackDialog.cpp')
-rw-r--r--launcher/ui/dialogs/ExportMrPackDialog.cpp14
1 files changed, 14 insertions, 0 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);
+}