mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-25 20:48:52 +03:00
Allow joins via other servers from a matrix: uri
This commit is contained in:
parent
b8b642219d
commit
947e40bd70
5 changed files with 14 additions and 8 deletions
|
@ -354,7 +354,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 cad81d1677a4845366b93112f8f2e267ee8c9ae0
|
GIT_TAG d44158e17e8eb872bee762a81fc04bfad117f0c5
|
||||||
)
|
)
|
||||||
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 "")
|
||||||
|
|
|
@ -152,7 +152,7 @@
|
||||||
"name": "mtxclient",
|
"name": "mtxclient",
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
"commit": "cad81d1677a4845366b93112f8f2e267ee8c9ae0",
|
"commit": "d44158e17e8eb872bee762a81fc04bfad117f0c5",
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Nheko-Reborn/mtxclient.git"
|
"url": "https://github.com/Nheko-Reborn/mtxclient.git"
|
||||||
}
|
}
|
||||||
|
|
|
@ -900,9 +900,14 @@ void
|
||||||
ChatPage::joinRoom(const QString &room)
|
ChatPage::joinRoom(const QString &room)
|
||||||
{
|
{
|
||||||
const auto room_id = room.toStdString();
|
const auto room_id = room.toStdString();
|
||||||
|
joinRoomVia(room_id, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ChatPage::joinRoomVia(const std::string &room_id, const std::vector<std::string> &via)
|
||||||
|
{
|
||||||
http::client()->join_room(
|
http::client()->join_room(
|
||||||
room_id, [this, room_id](const mtx::responses::RoomId &, mtx::http::RequestErr err) {
|
room_id, via, [this, room_id](const mtx::responses::RoomId &, mtx::http::RequestErr err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
emit showNotification(
|
emit showNotification(
|
||||||
tr("Failed to join room: %1")
|
tr("Failed to join room: %1")
|
||||||
|
@ -1291,7 +1296,7 @@ ChatPage::startChat(QString userid)
|
||||||
|
|
||||||
mtx::requests::CreateRoom req;
|
mtx::requests::CreateRoom req;
|
||||||
req.preset = mtx::requests::Preset::PrivateChat;
|
req.preset = mtx::requests::Preset::PrivateChat;
|
||||||
req.visibility = mtx::requests::Visibility::Private;
|
req.visibility = mtx::common::RoomVisibility::Private;
|
||||||
if (utils::localUser() != userid)
|
if (utils::localUser() != userid)
|
||||||
req.invite = {userid.toStdString()};
|
req.invite = {userid.toStdString()};
|
||||||
emit ChatPage::instance()->createRoom(req);
|
emit ChatPage::instance()->createRoom(req);
|
||||||
|
@ -1380,7 +1385,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (action == "join") {
|
if (action == "join") {
|
||||||
joinRoom(mxid1);
|
joinRoomVia(targetRoomId, vias);
|
||||||
}
|
}
|
||||||
} else if (sigil1 == "room") {
|
} else if (sigil1 == "room") {
|
||||||
auto joined_rooms = cache::joinedRooms();
|
auto joined_rooms = cache::joinedRooms();
|
||||||
|
@ -1398,7 +1403,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (action == "join") {
|
if (action == "join") {
|
||||||
joinRoom(mxid1);
|
joinRoomVia(mxid1.toStdString(), vias);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,6 +117,7 @@ public slots:
|
||||||
void leaveRoom(const QString &room_id);
|
void leaveRoom(const QString &room_id);
|
||||||
void createRoom(const mtx::requests::CreateRoom &req);
|
void createRoom(const mtx::requests::CreateRoom &req);
|
||||||
void joinRoom(const QString &room);
|
void joinRoom(const QString &room);
|
||||||
|
void joinRoomVia(const std::string &room_id, const std::vector<std::string> &via);
|
||||||
|
|
||||||
void inviteUser(QString userid, QString reason);
|
void inviteUser(QString userid, QString reason);
|
||||||
void kickUser(QString userid, QString reason);
|
void kickUser(QString userid, QString reason);
|
||||||
|
|
|
@ -115,9 +115,9 @@ CreateRoom::CreateRoom(QWidget *parent)
|
||||||
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentTextChanged),
|
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentTextChanged),
|
||||||
[this](const QString &text) {
|
[this](const QString &text) {
|
||||||
if (text == "Private") {
|
if (text == "Private") {
|
||||||
request_.visibility = mtx::requests::Visibility::Private;
|
request_.visibility = mtx::common::RoomVisibility::Private;
|
||||||
} else {
|
} else {
|
||||||
request_.visibility = mtx::requests::Visibility::Public;
|
request_.visibility = mtx::common::RoomVisibility::Public;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue