Ensure we ask for confirmation when clicking on a matrix uri

This commit is contained in:
Nicolas Werner 2021-02-24 01:37:26 +01:00
parent db78cec626
commit 29a71741f4
No known key found for this signature in database
GPG key ID: 13675F31AD04A41C

View file

@ -920,6 +920,13 @@ ChatPage::joinRoom(const QString &room)
void void
ChatPage::joinRoomVia(const std::string &room_id, const std::vector<std::string> &via) ChatPage::joinRoomVia(const std::string &room_id, const std::vector<std::string> &via)
{ {
if (QMessageBox::Yes !=
QMessageBox::question(
this,
tr("Confirm join"),
tr("Do you really want to join %1?").arg(QString::fromStdString(room_id))))
return;
http::client()->join_room( http::client()->join_room(
room_id, via, [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) {
@ -1308,6 +1315,13 @@ ChatPage::startChat(QString userid)
} }
} }
if (QMessageBox::Yes !=
QMessageBox::question(
this,
tr("Confirm invite"),
tr("Do you really want to start a private chat with %1?").arg(userid)))
return;
mtx::requests::CreateRoom req; mtx::requests::CreateRoom req;
req.preset = mtx::requests::Preset::PrivateChat; req.preset = mtx::requests::Preset::PrivateChat;
req.visibility = mtx::common::RoomVisibility::Private; req.visibility = mtx::common::RoomVisibility::Private;
@ -1362,7 +1376,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri)
return; return;
QString mxid2; QString mxid2;
if (segments.size() == 4 && segments[2] == "e") { if (segments.size() == 4 && segments[2] == "event") {
if (segments[3].isEmpty()) if (segments[3].isEmpty())
return; return;
else else
@ -1400,7 +1414,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri)
} }
} }
if (action == "join") { if (action == "join" || action.isEmpty()) {
joinRoomVia(targetRoomId, vias); joinRoomVia(targetRoomId, vias);
} }
} else if (sigil1 == "r") { } else if (sigil1 == "r") {
@ -1418,7 +1432,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri)
} }
} }
if (action == "join") { if (action == "join" || action.isEmpty()) {
joinRoomVia(mxid1.toStdString(), vias); joinRoomVia(mxid1.toStdString(), vias);
} }
} }