summary refs log tree commit diff
path: root/src/ChatPage.cpp
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2021-01-11 19:15:43 +0100
committerNicolas Werner <nicolas.werner@hotmail.de>2021-01-11 19:15:43 +0100
commit947e40bd704da893f6bec84a20bc97cb069cf191 (patch)
treee22a027807b6d47922693c4172f2d7be45e3109a /src/ChatPage.cpp
parentMerge pull request #372 from deepbluev7/fix-pr-CI (diff)
downloadnheko-947e40bd704da893f6bec84a20bc97cb069cf191.tar.xz
Allow joins via other servers from a matrix: uri
Diffstat (limited to 'src/ChatPage.cpp')
-rw-r--r--src/ChatPage.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp

index 33c993ae..4e70411d 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp
@@ -900,9 +900,14 @@ void ChatPage::joinRoom(const QString &room) { 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( - 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) { emit showNotification( tr("Failed to join room: %1") @@ -1291,7 +1296,7 @@ ChatPage::startChat(QString userid) mtx::requests::CreateRoom req; req.preset = mtx::requests::Preset::PrivateChat; - req.visibility = mtx::requests::Visibility::Private; + req.visibility = mtx::common::RoomVisibility::Private; if (utils::localUser() != userid) req.invite = {userid.toStdString()}; emit ChatPage::instance()->createRoom(req); @@ -1380,7 +1385,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri) } if (action == "join") { - joinRoom(mxid1); + joinRoomVia(targetRoomId, vias); } } else if (sigil1 == "room") { auto joined_rooms = cache::joinedRooms(); @@ -1398,7 +1403,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri) } if (action == "join") { - joinRoom(mxid1); + joinRoomVia(mxid1.toStdString(), vias); } } }