diff --git a/src/LoginPage.cpp b/src/LoginPage.cpp index 719ba95c..bcf15ad4 100644 --- a/src/LoginPage.cpp +++ b/src/LoginPage.cpp @@ -108,6 +108,14 @@ LoginPage::LoginPage(QWidget *parent) matrixidLayout_ = new QHBoxLayout(); matrixidLayout_->addWidget(matrixid_input_, 0, Qt::AlignVCenter); + QFont font; + + error_matrixid_label_ = new QLabel(this); + error_matrixid_label_->setFont(font); + + matrixid_error_layout_ = new QVBoxLayout(); + matrixid_error_layout_->addWidget(error_matrixid_label_, 0, Qt::AlignHCenter); + password_input_ = new TextField(this); password_input_->setLabel(tr("Password")); password_input_->setEchoMode(QLineEdit::Password); @@ -129,6 +137,7 @@ LoginPage::LoginPage(QWidget *parent) serverLayout_ = new QHBoxLayout(); serverLayout_->addWidget(serverInput_, 0, Qt::AlignVCenter); + form_layout_->addLayout(matrixid_error_layout_); form_layout_->addLayout(matrixidLayout_); form_layout_->addWidget(password_input_); form_layout_->addWidget(deviceName_, Qt::AlignHCenter); @@ -147,10 +156,9 @@ LoginPage::LoginPage(QWidget *parent) button_layout_->addWidget(login_button_); button_layout_->addStretch(1); - QFont font; - error_label_ = new QLabel(this); error_label_->setFont(font); + error_label_->setWordWrap(true); top_layout_->addLayout(top_bar_layout_); top_layout_->addStretch(1); @@ -183,6 +191,12 @@ LoginPage::loginError(const QString &msg) error_label_->setText(msg); } +void +LoginPage::matrixIdError(const QString &msg) +{ + error_matrixid_label_->setText(msg); +} + bool LoginPage::isMatrixIdValid() { @@ -199,8 +213,11 @@ LoginPage::onMatrixIdEntered() User user; - if (isMatrixIdValid() == 0) { - return loginError("You have entered an invalid Matrix ID e.g @joe:matrix.org"); + if (!isMatrixIdValid()) { + matrixIdError("You have entered an invalid Matrix ID e.g @joe:matrix.org"); + return ; + } else { + error_matrixid_label_->setText(""); } try { @@ -354,8 +371,12 @@ LoginPage::onLoginButtonClicked() error_label_->setText(""); User user; - if (isMatrixIdValid() == 0) { - return loginError("You have entered an invalid Matrix ID e.g @joe:matrix.org"); + + if (!isMatrixIdValid()) { + matrixIdError("You have entered an invalid Matrix ID e.g @joe:matrix.org"); + return ; + } else { + error_matrixid_label_->setText(""); } try { diff --git a/src/LoginPage.h b/src/LoginPage.h index c9220297..256739eb 100644 --- a/src/LoginPage.h +++ b/src/LoginPage.h @@ -67,6 +67,7 @@ protected: public slots: // Displays errors produced during the login. void loginError(const QString &msg); + void matrixIdError(const QString &msg); private slots: // Callback for the back button. @@ -105,6 +106,7 @@ private: } QVBoxLayout *top_layout_; + QVBoxLayout *matrixid_error_layout_; QHBoxLayout *top_bar_layout_; QHBoxLayout *logo_layout_; @@ -112,6 +114,7 @@ private: QLabel *logo_; QLabel *error_label_; + QLabel *error_matrixid_label_; QHBoxLayout *serverLayout_; QHBoxLayout *matrixidLayout_;