Copy other user's matrix ID instead of room id for direct messages

Implements #469
This commit is contained in:
Tobias Fella
2023-02-17 20:58:47 +01:00
parent 2bd4579c10
commit 8996806b05
3 changed files with 10 additions and 2 deletions

View File

@@ -1829,3 +1829,7 @@ int NeoChatRoom::maxRoomVersion() const
}
return maxVersion;
}
NeoChatUser *NeoChatRoom::directChatRemoteUser() const
{
return dynamic_cast<NeoChatUser *>(connection()->directChatUsers(this)[0]);
}

View File

@@ -99,6 +99,7 @@ class NeoChatRoom : public Quotient::Room
* Only returns main integer room versions (i.e. no msc room versions).
*/
Q_PROPERTY(int maxRoomVersion READ maxRoomVersion NOTIFY maxRoomVersionChanged)
Q_PROPERTY(NeoChatUser *directChatRemoteUser READ directChatRemoteUser CONSTANT)
public:
enum MessageType {
@@ -330,6 +331,7 @@ public:
#endif
int maxRoomVersion() const;
NeoChatUser *directChatRemoteUser() const;
private:
QSet<const Quotient::RoomEvent *> highlights;

View File

@@ -52,9 +52,11 @@ Loader {
}
QQC2.MenuItem {
text: i18nc("@action:inmenu", "Copy Address to Clipboard")
text: room.isDirectChat() ? i18nc("@action:inmenu", "Copy user's Matrix ID to Clipboard") : i18nc("@action:inmenu", "Copy Address to Clipboard")
icon.name: "edit-copy"
onTriggered: if (room.canonicalAlias.length === 0) {
onTriggered: if (room.isDirectChat()) {
Clipboard.saveText(room.directChatRemoteUser.id)
} else if (room.canonicalAlias.length === 0) {
Clipboard.saveText(room.id)
} else {
Clipboard.saveText(room.canonicalAlias)