summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-02-28 21:14:41 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-02-28 21:14:41 +0200
commit9de1ec1b7b521227e9df2850be19242b4876ed95 (patch)
treec6227f73c6a66aa4ef5891267e18299d05318a8f /src
parentAdd some missing references (diff)
downloadnheko-9de1ec1b7b521227e9df2850be19242b4876ed95.tar.xz
Fix crash when inviting users
Diffstat (limited to 'src')
-rw-r--r--src/ChatPage.cc2
-rw-r--r--src/InputValidator.cc29
-rw-r--r--src/LoginPage.cc15
-rw-r--r--src/RegisterPage.cc5
4 files changed, 13 insertions, 38 deletions
diff --git a/src/ChatPage.cc b/src/ChatPage.cc

index 2ef4cf47..0cb23651 100644 --- a/src/ChatPage.cc +++ b/src/ChatPage.cc
@@ -149,7 +149,7 @@ ChatPage::ChatPage(QSharedPointer<MatrixClient> client, connect(top_bar_, &TopRoomBar::inviteUsers, this, [this](QStringList users) { for (int ii = 0; ii < users.size(); ++ii) { - QTimer::singleShot(ii * 1000, this, [this, &ii, &users]() { + QTimer::singleShot(ii * 1000, this, [this, ii, users]() { client_->inviteUser(current_room_, users.at(ii)); }); } diff --git a/src/InputValidator.cc b/src/InputValidator.cc deleted file mode 100644
index 5fd92783..00000000 --- a/src/InputValidator.cc +++ /dev/null
@@ -1,29 +0,0 @@ -/* - * nheko Copyright (C) 2017 Konstantinos Sideris <siderisk@auth.gr> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "InputValidator.h" - -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 a6cdb13c..3be9d1a9 100644 --- a/src/LoginPage.cc +++ b/src/LoginPage.cc
@@ -17,9 +17,10 @@ #include <QStyleOption> +#include <mtx/identifiers.hpp> + #include "Config.h" #include "FlatButton.h" -#include "InputValidator.h" #include "LoadingIndicator.h" #include "LoginPage.h" #include "MatrixClient.h" @@ -27,6 +28,8 @@ #include "RaisedButton.h" #include "TextField.h" +using namespace mtx::identifiers; + LoginPage::LoginPage(QSharedPointer<MatrixClient> client, QWidget *parent) : QWidget(parent) , inferredServerAddress_() @@ -157,10 +160,16 @@ LoginPage::loginError(QString error) bool LoginPage::isMatrixIdValid() { - int pos = 0; auto matrix_id = matrixid_input_->text(); - return InputValidator::Id.validate(matrix_id, pos) == QValidator::Acceptable; + try { + parse<User>(matrix_id.toStdString()); + return true; + } catch (const std::exception &e) { + return false; + } + + return false; } void diff --git a/src/RegisterPage.cc b/src/RegisterPage.cc
index 9165680b..044d2fcf 100644 --- a/src/RegisterPage.cc +++ b/src/RegisterPage.cc
@@ -19,7 +19,6 @@ #include "Config.h" #include "FlatButton.h" -#include "InputValidator.h" #include "MatrixClient.h" #include "RaisedButton.h" #include "RegisterPage.h" @@ -128,10 +127,6 @@ RegisterPage::RegisterPage(QSharedPointer<MatrixClient> client, QWidget *parent) this, SLOT(registerError(const QString &))); - username_input_->setValidator(&InputValidator::Localpart); - password_input_->setValidator(&InputValidator::Password); - server_input_->setValidator(&InputValidator::Domain); - setLayout(top_layout_); }