Validate input lengths on mrpack export

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
TheKodeToad 2023-06-05 17:52:48 +01:00
parent 3dccc38f42
commit 37b4f606c8
3 changed files with 20 additions and 1 deletions

View File

@ -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);
}

View File

@ -35,6 +35,7 @@ class ExportMrPackDialog : public QDialog {
~ExportMrPackDialog();
void done(int result) override;
void validate();
private:
const InstancePtr instance;

View File

@ -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>