diff --git a/src/LoginPage.cpp b/src/LoginPage.cpp
index dbf9d470..c0880bdd 100644
--- a/src/LoginPage.cpp
+++ b/src/LoginPage.cpp
@@ -95,6 +95,9 @@ LoginPage::LoginPage(QWidget *parent)
password_input_->setLabel(tr("Password"));
password_input_->setEchoMode(QLineEdit::Password);
+ deviceName_ = new TextField(this);
+ deviceName_->setLabel(tr("Device name"));
+
serverInput_ = new TextField(this);
serverInput_->setLabel("Homeserver address");
serverInput_->setPlaceholderText("matrix.org");
@@ -104,7 +107,8 @@ LoginPage::LoginPage(QWidget *parent)
serverLayout_->addWidget(serverInput_, 0, Qt::AlignVCenter);
form_layout_->addLayout(matrixidLayout_);
- form_layout_->addWidget(password_input_, Qt::AlignHCenter, 0);
+ form_layout_->addWidget(password_input_);
+ form_layout_->addWidget(deviceName_, Qt::AlignHCenter, 0);
form_layout_->addLayout(serverLayout_);
button_layout_ = new QHBoxLayout();
@@ -145,6 +149,7 @@ LoginPage::LoginPage(QWidget *parent)
connect(login_button_, SIGNAL(clicked()), this, SLOT(onLoginButtonClicked()));
connect(matrixid_input_, SIGNAL(returnPressed()), login_button_, SLOT(click()));
connect(password_input_, SIGNAL(returnPressed()), login_button_, SLOT(click()));
+ connect(deviceName_, SIGNAL(returnPressed()), login_button_, SLOT(click()));
connect(serverInput_, SIGNAL(returnPressed()), login_button_, SLOT(click()));
connect(matrixid_input_, SIGNAL(editingFinished()), this, SLOT(onMatrixIdEntered()));
connect(serverInput_, SIGNAL(editingFinished()), this, SLOT(onServerAddressEntered()));
@@ -269,19 +274,19 @@ LoginPage::onLoginButtonClicked()
return loginError(tr("Empty password"));
http::client()->set_server(serverInput_->text().toStdString());
- http::client()->login(user.localpart(),
- password_input_->text().toStdString(),
- initialDeviceName(),
- [this](const mtx::responses::Login &res, mtx::http::RequestErr err) {
- if (err) {
- emit loginError(
- QString::fromStdString(err->matrix_error.error));
- emit errorOccurred();
- return;
- }
+ http::client()->login(
+ user.localpart(),
+ password_input_->text().toStdString(),
+ deviceName_->text().isEmpty() ? initialDeviceName() : deviceName_->text().toStdString(),
+ [this](const mtx::responses::Login &res, mtx::http::RequestErr err) {
+ if (err) {
+ emit loginError(QString::fromStdString(err->matrix_error.error));
+ emit errorOccurred();
+ return;
+ }
- emit loginOk(res);
- });
+ emit loginOk(res);
+ });
emit loggingIn();
}
diff --git a/src/LoginPage.h b/src/LoginPage.h
index c52ccaa4..cf2d024b 100644
--- a/src/LoginPage.h
+++ b/src/LoginPage.h
@@ -86,13 +86,13 @@ private:
std::string initialDeviceName()
{
#if defined(Q_OS_MAC)
- return "nheko on macOS";
+ return "Nheko on macOS";
#elif defined(Q_OS_LINUX)
- return "nheko on Linux";
+ return "Nheko on Linux";
#elif defined(Q_OS_WIN)
- return "nheko on Windows";
+ return "Nheko on Windows";
#else
- return "nheko";
+ return "Nheko";
#endif
}
@@ -120,5 +120,6 @@ private:
TextField *matrixid_input_;
TextField *password_input_;
+ TextField *deviceName_;
TextField *serverInput_;
};
|