-
Nicolas Werner authoredNicolas Werner authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
LoginPage.cpp 9.40 KiB
// SPDX-FileCopyrightText: 2017 Konstantinos Sideris <siderisk@auth.gr>
// SPDX-FileCopyrightText: 2021 Nheko Contributors
// SPDX-FileCopyrightText: 2022 Nheko Contributors
//
// SPDX-License-Identifier: GPL-3.0-or-later
#include <QDesktopServices>
#include <mtx/identifiers.hpp>
#include <mtx/requests.hpp>
#include <mtx/responses/login.hpp>
#include "Config.h"
#include "Logging.h"
#include "LoginPage.h"
#include "MainWindow.h"
#include "MatrixClient.h"
#include "SSOHandler.h"
#include "UserSettingsPage.h"
Q_DECLARE_METATYPE(LoginPage::LoginMethod)
using namespace mtx::identifiers;
LoginPage::LoginPage(QObject *parent)
: QObject(parent)
, inferredServerAddress_()
{
[[maybe_unused]] static auto ignored =
qRegisterMetaType<LoginPage::LoginMethod>("LoginPage::LoginMethod");
connect(this, &LoginPage::versionOkCb, this, &LoginPage::versionOk, Qt::QueuedConnection);
connect(this, &LoginPage::versionErrorCb, this, &LoginPage::versionError, Qt::QueuedConnection);
connect(
this,
&LoginPage::loginOk,
this,
[this](const mtx::responses::Login &res) {
loggingIn_ = false;
emit loggingInChanged();
http::client()->set_user(res.user_id);
MainWindow::instance()->showChatPage();
},
Qt::QueuedConnection);
}
void
LoginPage::showError(const QString &msg)
{
loggingIn_ = false;
emit loggingInChanged();
error_ = msg;
emit errorOccurred();
}
void
LoginPage::setHomeserver(QString hs)
{
if (hs != homeserver_) {
homeserver_ = hs;
homeserverValid_ = false;
emit homeserverChanged();
http::client()->set_server(hs.toStdString());
checkHomeserverVersion();
}
}
void
LoginPage::onMatrixIdEntered()