From 9f7dc5488ec4a632818f5661797f721c41808bb5 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Wed, 17 Feb 2021 23:45:41 +0100 Subject: Adapt to changes in MSC2312 --- src/ChatPage.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/ChatPage.cpp') diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp index 45802789..9c814bd1 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp @@ -1326,14 +1326,14 @@ mxidFromSegments(QStringRef sigil, QStringRef mxid) auto mxid_ = QUrl::fromPercentEncoding(mxid.toUtf8()); - if (sigil == "user") { + if (sigil == "u") { return "@" + mxid_; } else if (sigil == "roomid") { return "!" + mxid_; - } else if (sigil == "room") { + } else if (sigil == "r") { return "#" + mxid_; - } else if (sigil == "group") { - return "+" + mxid_; + //} else if (sigil == "group") { + // return "+" + mxid_; } else { return ""; } @@ -1362,7 +1362,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri) return; QString mxid2; - if (segments.size() == 4 && segments[2] == "event") { + if (segments.size() == 4 && segments[2] == "e") { if (segments[3].isEmpty()) return; else @@ -1383,7 +1383,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri) } } - if (sigil1 == "user") { + if (sigil1 == "u") { if (action.isEmpty()) { view_manager_->activeTimeline()->openUserProfile(mxid1); } else if (action == "chat") { @@ -1403,7 +1403,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri) if (action == "join") { joinRoomVia(targetRoomId, vias); } - } else if (sigil1 == "room") { + } else if (sigil1 == "r") { auto joined_rooms = cache::joinedRooms(); auto targetRoomAlias = mxid1.toStdString(); -- cgit 1.5.1 From 29a71741f4c0effd61f82b4e9897ba29529a8b6b Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Wed, 24 Feb 2021 01:37:26 +0100 Subject: Ensure we ask for confirmation when clicking on a matrix uri --- src/ChatPage.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'src/ChatPage.cpp') diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp index 9c814bd1..9ba2cc87 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp @@ -920,6 +920,13 @@ ChatPage::joinRoom(const QString &room) void ChatPage::joinRoomVia(const std::string &room_id, const std::vector &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( room_id, via, [this, room_id](const mtx::responses::RoomId &, mtx::http::RequestErr 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; req.preset = mtx::requests::Preset::PrivateChat; req.visibility = mtx::common::RoomVisibility::Private; @@ -1362,7 +1376,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri) return; QString mxid2; - if (segments.size() == 4 && segments[2] == "e") { + if (segments.size() == 4 && segments[2] == "event") { if (segments[3].isEmpty()) return; else @@ -1400,7 +1414,7 @@ ChatPage::handleMatrixUri(const QByteArray &uri) } } - if (action == "join") { + if (action == "join" || action.isEmpty()) { joinRoomVia(targetRoomId, vias); } } 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); } } -- cgit 1.5.1 From 043737c8cb0f6ef058bc8578a566a6c5c218e231 Mon Sep 17 00:00:00 2001 From: Jedi18 Date: Thu, 25 Feb 2021 10:29:30 +0530 Subject: navigate to newly created rooms --- src/ChatPage.cpp | 13 +++++++++++-- src/ChatPage.h | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'src/ChatPage.cpp') diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp index 9ba2cc87..aae9271d 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp @@ -253,6 +253,7 @@ ChatPage::ChatPage(QSharedPointer userSettings, QWidget *parent) this, &ChatPage::updateGroupsInfo, communitiesList_, &CommunitiesList::setCommunities); 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::highlightedNotifsRetrieved, @@ -967,8 +968,9 @@ ChatPage::createRoom(const mtx::requests::CreateRoom &req) return; } - emit showNotification( - tr("Room %1 created.").arg(QString::fromStdString(res.room_id.to_string()))); + QString newRoomId = 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 ChatPage::inviteUser(QString userid, QString reason) { diff --git a/src/ChatPage.h b/src/ChatPage.h index 917bd785..dc6b8299 100644 --- a/src/ChatPage.h +++ b/src/ChatPage.h @@ -154,6 +154,7 @@ signals: void tryInitialSyncCb(); void newSyncResponse(const mtx::responses::Sync &res); void leftRoom(const QString &room_id); + void newRoom(const QString &room_id); void initializeRoomList(QMap); void initializeViews(const mtx::responses::Rooms &rooms); @@ -201,6 +202,7 @@ signals: private slots: void logout(); void removeRoom(const QString &room_id); + void changeRoom(const QString &room_id); void dropToLoginPage(const QString &msg); void handleSyncResponse(const mtx::responses::Sync &res); -- cgit 1.5.1