diff --git a/src/qml/GroupChatDrawerHeader.qml b/src/qml/GroupChatDrawerHeader.qml index 54a898e84..bcf239040 100644 --- a/src/qml/GroupChatDrawerHeader.qml +++ b/src/qml/GroupChatDrawerHeader.qml @@ -19,6 +19,11 @@ ColumnLayout { */ required property NeoChatRoom room + /** + * @brief The canonical alias of the room, if it exists. Otherwise falls back to the first available alias. + */ + readonly property var roomAlias: room.aliases[0] + Layout.fillWidth: true RowLayout { @@ -73,8 +78,8 @@ ColumnLayout { Layout.fillWidth: true font: Kirigami.Theme.smallFont textFormat: TextEdit.PlainText - visible: root.room && root.room.canonicalAlias - text: root.room && root.room.canonicalAlias ? root.room.canonicalAlias : "" + visible: root.room && root.roomAlias + text: root.room && root.roomAlias ? root.roomAlias : "" color: Kirigami.Theme.disabledTextColor } } diff --git a/src/qml/RoomContextMenu.qml b/src/qml/RoomContextMenu.qml index e387f3597..53f34a78d 100644 --- a/src/qml/RoomContextMenu.qml +++ b/src/qml/RoomContextMenu.qml @@ -125,12 +125,17 @@ KirigamiComponents.ConvergentContextMenu { QQC2.Action { 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.isDirectChat()) { - Clipboard.saveText(room.directChatRemoteMember.id); - } else if (room.canonicalAlias.length === 0) { - Clipboard.saveText(room.id); - } else { - Clipboard.saveText(room.canonicalAlias); + onTriggered: { + // The canonical alias (if it exists) otherwise the first available alias + const firstAlias = room.aliases[0]; + + if (room.isDirectChat()) { + Clipboard.saveText(room.directChatRemoteMember.id); + } else if (!firstAlias) { + Clipboard.saveText(room.id); + } else { + Clipboard.saveText(firstAlias); + } } }