diff --git a/include/InputValidator.h b/include/InputValidator.h
index feeaf70a..347ded9b 100644
--- a/include/InputValidator.h
+++ b/include/InputValidator.h
@@ -15,8 +15,8 @@
* along with this program. If not, see .
*/
-#ifndef MATRIXIDVALIDATOR_H
-#define MATRIXIDVALIDATOR_H
+#ifndef MATRIX_INPUT_VALIDATOR_H
+#define MATRIX_INPUT_VALIDATOR_H
#include
#include
@@ -24,26 +24,11 @@
class InputValidator
{
public:
- InputValidator(QObject *parent = 0);
-
// Validators for the different types of input.
- QRegExpValidator *id_;
- QRegExpValidator *localpart_;
- QRegExpValidator *password_;
- QRegExpValidator *domain_;
-
-private:
- // Regular expression used to validate the whole matrix id.
- const QRegExp matrix_id_;
-
- // Regular expressino to validate the matrix localpart.
- const QRegExp matrix_localpart_;
-
- // Regular expression to validate a password for a matrix account.
- const QRegExp matrix_password_;
-
- // Regular expression to validate a domain name.
- const QRegExp server_domain_;
+ static QRegExpValidator Id;
+ static QRegExpValidator Localpart;
+ static QRegExpValidator Password;
+ static QRegExpValidator Domain;
};
-#endif // MATRIXIDVALIDATOR_H
+#endif // MATRIX_INPUT_VALIDATOR_H
diff --git a/include/LoginPage.h b/include/LoginPage.h
index 8a44ef7a..ccd40072 100644
--- a/include/LoginPage.h
+++ b/include/LoginPage.h
@@ -25,7 +25,6 @@
#include
#include "FlatButton.h"
-#include "InputValidator.h"
#include "LoginSettings.h"
#include "MatrixClient.h"
#include "OverlayModal.h"
@@ -84,8 +83,6 @@ private:
LoginSettings *login_settings_;
QString custom_domain_;
- InputValidator *matrix_id_validator_;
-
// Matrix client API provider.
QSharedPointer client_;
};
diff --git a/include/RegisterPage.h b/include/RegisterPage.h
index 578ff902..9ac550bf 100644
--- a/include/RegisterPage.h
+++ b/include/RegisterPage.h
@@ -26,7 +26,6 @@
#include "Avatar.h"
#include "FlatButton.h"
-#include "InputValidator.h"
#include "MatrixClient.h"
#include "RaisedButton.h"
#include "TextField.h"
@@ -71,8 +70,6 @@ private:
TextField *password_confirmation_;
TextField *server_input_;
- InputValidator *validator_;
-
// Matrix client API provider.
QSharedPointer client_;
};
diff --git a/src/InputValidator.cc b/src/InputValidator.cc
index 6ef8f6e5..2f24b3d9 100644
--- a/src/InputValidator.cc
+++ b/src/InputValidator.cc
@@ -17,14 +17,12 @@
#include "InputValidator.h"
-InputValidator::InputValidator(QObject *parent)
- : matrix_id_("@[A-Za-z0-9._%+-]+:[A-Za-z0-9.-]{1,126}\\.[A-Za-z]{1,63}")
- , matrix_localpart_("[A-za-z0-9._%+-]{3,}")
- , matrix_password_(".{8,}")
- , server_domain_("(?!\\-)(?:[a-zA-Z\\d\\-]{0,62}[a-zA-Z\\d]\\.){1,126}(?!\\d+)[a-zA-Z\\d]{1,63}")
-{
- id_ = new QRegExpValidator(matrix_id_, parent);
- localpart_ = new QRegExpValidator(matrix_localpart_, parent);
- password_ = new QRegExpValidator(matrix_password_, parent);
- domain_ = new QRegExpValidator(server_domain_, parent);
-}
+const QRegExp MXID_REGEX("@[A-Za-z0-9._%+-]+:[A-Za-z0-9.-]{1,126}\\.[A-Za-z]{1,63}");
+const QRegExp LOCALPART_REGEX("[A-za-z0-9._%+-]{3,}");
+const QRegExp PASSWORD_REGEX(".{8,}");
+const QRegExp DOMAIN_REGEX("(?!\\-)(?:[a-zA-Z\\d\\-]{0,62}[a-zA-Z\\d]\\.){1,126}(?!\\d+)[a-zA-Z\\d]{1,63}");
+
+QRegExpValidator InputValidator::Id(MXID_REGEX);
+QRegExpValidator InputValidator::Localpart(LOCALPART_REGEX);
+QRegExpValidator InputValidator::Password(PASSWORD_REGEX);
+QRegExpValidator InputValidator::Domain(DOMAIN_REGEX);
diff --git a/src/LoginPage.cc b/src/LoginPage.cc
index 09cfb82c..4c63820c 100644
--- a/src/LoginPage.cc
+++ b/src/LoginPage.cc
@@ -17,6 +17,7 @@
#include
+#include "InputValidator.h"
#include "LoginPage.h"
LoginPage::LoginPage(QSharedPointer client, QWidget *parent)
@@ -25,8 +26,6 @@ LoginPage::LoginPage(QSharedPointer client, QWidget *parent)
, login_settings_{nullptr}
, client_{client}
{
- matrix_id_validator_ = new InputValidator(this);
-
top_layout_ = new QVBoxLayout();
top_bar_layout_ = new QHBoxLayout();
@@ -133,7 +132,7 @@ LoginPage::LoginPage(QSharedPointer client, QWidget *parent)
connect(client_.data(), SIGNAL(loginError(QString)), this, SLOT(loginError(QString)));
connect(advanced_settings_button_, SIGNAL(clicked()), this, SLOT(showSettingsModal()));
- matrixid_input_->setValidator(matrix_id_validator_->id_);
+ matrixid_input_->setValidator(&InputValidator::Id);
}
void LoginPage::loginError(QString error)
diff --git a/src/RegisterPage.cc b/src/RegisterPage.cc
index b7a12f4a..f4c35f2e 100644
--- a/src/RegisterPage.cc
+++ b/src/RegisterPage.cc
@@ -18,11 +18,11 @@
#include
#include
+#include "InputValidator.h"
#include "RegisterPage.h"
RegisterPage::RegisterPage(QSharedPointer client, QWidget *parent)
: QWidget(parent)
- , validator_(new InputValidator(parent))
, client_(client)
{
top_layout_ = new QVBoxLayout();
@@ -132,9 +132,9 @@ RegisterPage::RegisterPage(QSharedPointer client, QWidget *parent)
connect(server_input_, SIGNAL(returnPressed()), register_button_, SLOT(click()));
connect(client_.data(), SIGNAL(registerError(const QString &)), this, SLOT(registerError(const QString &)));
- username_input_->setValidator(validator_->localpart_);
- password_input_->setValidator(validator_->password_);
- server_input_->setValidator(validator_->domain_);
+ username_input_->setValidator(&InputValidator::Localpart);
+ password_input_->setValidator(&InputValidator::Password);
+ server_input_->setValidator(&InputValidator::Domain);
setLayout(top_layout_);
}