summary refs log tree commit diff
path: root/src/LoginPage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/LoginPage.cpp')
-rw-r--r--src/LoginPage.cpp55
1 files changed, 29 insertions, 26 deletions
diff --git a/src/LoginPage.cpp b/src/LoginPage.cpp

index 08b7335a..84118337 100644 --- a/src/LoginPage.cpp +++ b/src/LoginPage.cpp
@@ -60,7 +60,7 @@ LoginPage::showError(const QString &msg) } void -LoginPage::setHomeserver(QString hs) +LoginPage::setHomeserver(const QString &hs) { if (hs != homeserver_) { homeserver_ = hs; @@ -261,9 +261,9 @@ LoginPage::versionOk(bool passwordSupported, bool ssoSupported, QVariantList idp void LoginPage::onLoginButtonClicked(LoginMethod loginMethod, - QString userid, - QString password, - QString deviceName) + const QString &userid, + const QString &password, + const QString &deviceName) { clearErrors(); @@ -305,31 +305,34 @@ LoginPage::onLoginButtonClicked(LoginMethod loginMethod, }); } else { auto sso = new SSOHandler(); - connect( - sso, &SSOHandler::ssoSuccess, this, [this, sso, userid, deviceName](std::string token) { - mtx::requests::Login req{}; - req.token = token; - req.type = mtx::user_interactive::auth_types::token; - req.initial_device_display_name = - deviceName.trimmed().isEmpty() ? initialDeviceName_() : deviceName.toStdString(); - http::client()->login( - req, [this](const mtx::responses::Login &res, mtx::http::RequestErr err) { - if (err) { - showError(QString::fromStdString(err->matrix_error.error)); - emit errorOccurred(); - return; - } + connect(sso, + &SSOHandler::ssoSuccess, + this, + [this, sso, userid, deviceName](const std::string &token) { + mtx::requests::Login req{}; + req.token = token; + req.type = mtx::user_interactive::auth_types::token; + req.initial_device_display_name = deviceName.trimmed().isEmpty() + ? initialDeviceName_() + : deviceName.toStdString(); + http::client()->login( + req, [this](const mtx::responses::Login &res, mtx::http::RequestErr err) { + if (err) { + showError(QString::fromStdString(err->matrix_error.error)); + emit errorOccurred(); + return; + } - if (res.well_known) { - http::client()->set_server(res.well_known->homeserver.base_url); - nhlog::net()->info("Login requested to use server: " + - res.well_known->homeserver.base_url); - } + if (res.well_known) { + http::client()->set_server(res.well_known->homeserver.base_url); + nhlog::net()->info("Login requested to use server: " + + res.well_known->homeserver.base_url); + } - emit loginOk(res); + emit loginOk(res); + }); + sso->deleteLater(); }); - sso->deleteLater(); - }); connect(sso, &SSOHandler::ssoFailed, this, [this, sso]() { showError(tr("SSO login failed")); emit errorOccurred();