mirror of
https://github.com/sqlitebrowser/sqlitebrowser.git
synced 2026-01-19 18:40:13 -06:00
dbhub: Better validation in push dialog
This makes it more obvious to the user where the error in the input is by just now allowing invalid characters. It also prevents an annoying error message from popping up when entering invalid database names and changing focus to another field afterwards. See issue #1136.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include <QPushButton>
|
||||
#include <QUrlQuery>
|
||||
#include <QRegExpValidator>
|
||||
|
||||
#include "RemotePushDialog.h"
|
||||
#include "ui_RemotePushDialog.h"
|
||||
@@ -10,10 +11,14 @@ RemotePushDialog::RemotePushDialog(QWidget* parent, RemoteDatabase& remote, cons
|
||||
ui(new Ui::RemotePushDialog),
|
||||
m_host(host),
|
||||
m_clientCert(clientCert),
|
||||
remoteDatabase(remote)
|
||||
remoteDatabase(remote),
|
||||
m_nameValidator(new QRegExpValidator(QRegExp("^[a-z,A-Z,0-9,\\.,\\-,\\_,\\(,\\),\\+,\\ ]+$"), this)),
|
||||
m_branchValidator(new QRegExpValidator(QRegExp("^[a-z,A-Z,0-9,\\^,\\.,\\-,\\_,\\/,\\(,\\),\\:,\\&,\\ )]+$"), this))
|
||||
{
|
||||
// Create UI
|
||||
ui->setupUi(this);
|
||||
ui->editName->setValidator(m_nameValidator);
|
||||
ui->comboBranch->setValidator(m_branchValidator);
|
||||
|
||||
// Set start values
|
||||
ui->editName->setText(name);
|
||||
@@ -54,16 +59,12 @@ void RemotePushDialog::checkInput()
|
||||
|
||||
if(ui->editName->text().trimmed().isEmpty())
|
||||
valid = false;
|
||||
if(!QRegExp("^[a-z,A-Z,0-9,\\.,\\-,\\_,\\(,\\),\\+,\\ ]+$").exactMatch(ui->editName->text()))
|
||||
valid = false;
|
||||
|
||||
if(ui->editCommitMessage->toPlainText().size() > 1024)
|
||||
valid = false;
|
||||
|
||||
if(ui->comboBranch->currentText().size() < 1 || ui->comboBranch->currentText().size() > 32)
|
||||
valid = false;
|
||||
if(!QRegExp("^[a-z,A-Z,0-9,\\^,\\.,\\-,\\_,\\/,\\(,\\),\\:,\\&,\\ )]+$").exactMatch(ui->comboBranch->currentText()))
|
||||
valid = false;
|
||||
|
||||
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(valid);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <QDialog>
|
||||
|
||||
class RemoteDatabase;
|
||||
class QRegExpValidator;
|
||||
|
||||
namespace Ui {
|
||||
class RemotePushDialog;
|
||||
@@ -34,6 +35,10 @@ private:
|
||||
// Reference to the remote database object which is stored somewhere in the main window
|
||||
RemoteDatabase& remoteDatabase;
|
||||
|
||||
// Validators
|
||||
QRegExpValidator* m_nameValidator;
|
||||
QRegExpValidator* m_branchValidator;
|
||||
|
||||
protected slots:
|
||||
void checkInput();
|
||||
virtual void accept();
|
||||
|
||||
Reference in New Issue
Block a user