Merge branch 'master' of github.com:Nheko-Reborn/nheko

This commit is contained in:
Nicolas Werner 2021-02-25 14:55:02 +01:00
commit c62f328590
No known key found for this signature in database
GPG key ID: 13675F31AD04A41C
7 changed files with 26 additions and 8 deletions

View file

@ -358,7 +358,7 @@ if(USE_BUNDLED_MTXCLIENT)
FetchContent_Declare( FetchContent_Declare(
MatrixClient MatrixClient
GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git
GIT_TAG fee5298f068394958c2de935836a2c145f273906 GIT_TAG 004d4203ceb441239aafb17e1340cd063139d029
) )
set(BUILD_LIB_EXAMPLES OFF CACHE INTERNAL "") set(BUILD_LIB_EXAMPLES OFF CACHE INTERNAL "")
set(BUILD_LIB_TESTS OFF CACHE INTERNAL "") set(BUILD_LIB_TESTS OFF CACHE INTERNAL "")

View file

@ -220,7 +220,7 @@
"name": "mtxclient", "name": "mtxclient",
"sources": [ "sources": [
{ {
"commit": "fee5298f068394958c2de935836a2c145f273906", "commit": "004d4203ceb441239aafb17e1340cd063139d029",
"type": "git", "type": "git",
"url": "https://github.com/Nheko-Reborn/mtxclient.git" "url": "https://github.com/Nheko-Reborn/mtxclient.git"
} }

View file

@ -253,6 +253,7 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
this, &ChatPage::updateGroupsInfo, communitiesList_, &CommunitiesList::setCommunities); this, &ChatPage::updateGroupsInfo, communitiesList_, &CommunitiesList::setCommunities);
connect(this, &ChatPage::leftRoom, this, &ChatPage::removeRoom); connect(this, &ChatPage::leftRoom, this, &ChatPage::removeRoom);
connect(this, &ChatPage::newRoom, this, &ChatPage::changeRoom, Qt::QueuedConnection);
connect(this, &ChatPage::notificationsRetrieved, this, &ChatPage::sendNotifications); connect(this, &ChatPage::notificationsRetrieved, this, &ChatPage::sendNotifications);
connect(this, connect(this,
&ChatPage::highlightedNotifsRetrieved, &ChatPage::highlightedNotifsRetrieved,
@ -967,8 +968,9 @@ ChatPage::createRoom(const mtx::requests::CreateRoom &req)
return; return;
} }
emit showNotification( QString newRoomId = QString::fromStdString(res.room_id.to_string());
tr("Room %1 created.").arg(QString::fromStdString(res.room_id.to_string()))); emit showNotification(tr("Room %1 created.").arg(newRoomId));
emit newRoom(newRoomId);
}); });
} }
@ -989,6 +991,13 @@ ChatPage::leaveRoom(const QString &room_id)
}); });
} }
void
ChatPage::changeRoom(const QString &room_id)
{
view_manager_->setHistoryView(room_id);
room_list_->highlightSelectedRoom(room_id);
}
void void
ChatPage::inviteUser(QString userid, QString reason) ChatPage::inviteUser(QString userid, QString reason)
{ {

View file

@ -154,6 +154,7 @@ signals:
void tryInitialSyncCb(); void tryInitialSyncCb();
void newSyncResponse(const mtx::responses::Sync &res); void newSyncResponse(const mtx::responses::Sync &res);
void leftRoom(const QString &room_id); void leftRoom(const QString &room_id);
void newRoom(const QString &room_id);
void initializeRoomList(QMap<QString, RoomInfo>); void initializeRoomList(QMap<QString, RoomInfo>);
void initializeViews(const mtx::responses::Rooms &rooms); void initializeViews(const mtx::responses::Rooms &rooms);
@ -201,6 +202,7 @@ signals:
private slots: private slots:
void logout(); void logout();
void removeRoom(const QString &room_id); void removeRoom(const QString &room_id);
void changeRoom(const QString &room_id);
void dropToLoginPage(const QString &msg); void dropToLoginPage(const QString &msg);
void handleSyncResponse(const mtx::responses::Sync &res); void handleSyncResponse(const mtx::responses::Sync &res);

View file

@ -192,6 +192,11 @@ LoginPage::LoginPage(QWidget *parent)
connect(sso_login_button_, &RaisedButton::clicked, this, [this]() { connect(sso_login_button_, &RaisedButton::clicked, this, [this]() {
onLoginButtonClicked(LoginMethod::SSO); onLoginButtonClicked(LoginMethod::SSO);
}); });
connect(this,
&LoginPage::showErrorMessage,
this,
static_cast<void (LoginPage::*)(QLabel *, const QString &)>(&LoginPage::showError),
Qt::QueuedConnection);
connect(matrixid_input_, SIGNAL(returnPressed()), login_button_, SLOT(click())); connect(matrixid_input_, SIGNAL(returnPressed()), login_button_, SLOT(click()));
connect(password_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(deviceName_, SIGNAL(returnPressed()), login_button_, SLOT(click()));
@ -422,8 +427,8 @@ LoginPage::onLoginButtonClicked(LoginMethod loginMethod)
: deviceName_->text().toStdString(), : deviceName_->text().toStdString(),
[this](const mtx::responses::Login &res, mtx::http::RequestErr err) { [this](const mtx::responses::Login &res, mtx::http::RequestErr err) {
if (err) { if (err) {
showError(error_label_, showErrorMessage(error_label_,
QString::fromStdString(err->matrix_error.error)); QString::fromStdString(err->matrix_error.error));
emit errorOccurred(); emit errorOccurred();
return; return;
} }
@ -448,7 +453,7 @@ LoginPage::onLoginButtonClicked(LoginMethod loginMethod)
http::client()->login( http::client()->login(
req, [this](const mtx::responses::Login &res, mtx::http::RequestErr err) { req, [this](const mtx::responses::Login &res, mtx::http::RequestErr err) {
if (err) { if (err) {
showError( showErrorMessage(
error_label_, error_label_,
QString::fromStdString(err->matrix_error.error)); QString::fromStdString(err->matrix_error.error));
emit errorOccurred(); emit errorOccurred();
@ -467,7 +472,7 @@ LoginPage::onLoginButtonClicked(LoginMethod loginMethod)
sso->deleteLater(); sso->deleteLater();
}); });
connect(sso, &SSOHandler::ssoFailed, this, [this, sso]() { connect(sso, &SSOHandler::ssoFailed, this, [this, sso]() {
showError(error_label_, tr("SSO login failed")); showErrorMessage(error_label_, tr("SSO login failed"));
emit errorOccurred(); emit errorOccurred();
sso->deleteLater(); sso->deleteLater();
}); });

View file

@ -59,6 +59,7 @@ signals:
void versionOkCb(bool passwordSupported, bool ssoSupported); void versionOkCb(bool passwordSupported, bool ssoSupported);
void loginOk(const mtx::responses::Login &res); void loginOk(const mtx::responses::Login &res);
void showErrorMessage(QLabel *label, const QString &msg);
protected: protected:
void paintEvent(QPaintEvent *event) override; void paintEvent(QPaintEvent *event) override;

View file

@ -277,6 +277,7 @@ RegisterPage::RegisterPage(QWidget *parent)
if (!err) { if (!err) {
http::client()->set_user(res.user_id); http::client()->set_user(res.user_id);
http::client()->set_access_token(res.access_token); http::client()->set_access_token(res.access_token);
http::client()->set_device_id(res.device_id);
emit registerOk(); emit registerOk();
return; return;