summary refs log tree commit diff
path: root/resources/qml/TopBar.qml
diff options
context:
space:
mode:
Diffstat (limited to 'resources/qml/TopBar.qml')
-rw-r--r--resources/qml/TopBar.qml43
1 files changed, 32 insertions, 11 deletions
diff --git a/resources/qml/TopBar.qml b/resources/qml/TopBar.qml

index e9f482c9..aec99f43 100644 --- a/resources/qml/TopBar.qml +++ b/resources/qml/TopBar.qml
@@ -3,8 +3,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later import Qt.labs.platform 1.1 as Platform -import QtQuick 2.12 -import QtQuick.Controls 2.12 +import QtQuick 2.15 +import QtQuick.Controls 2.15 import QtQuick.Layouts 1.2 import im.nheko 1.0 @@ -28,14 +28,27 @@ Rectangle { TapHandler { onSingleTapped: { - if (room) - TimelineManager.openRoomSettings(room.roomId); + if (room) { + let p = topBar.mapToItem(roomTopicC, eventPoint.position.x, eventPoint.position.y); + let link = roomTopicC.linkAt(p.x, p.y); + + if (link) { + Nheko.openLink(link); + } else { + TimelineManager.openRoomSettings(room.roomId); + } + } eventPoint.accepted = true; } gesturePolicy: TapHandler.ReleaseWithinBounds } + HoverHandler { + grabPermissions: PointerHandler.TakeOverForbidden | PointerHandler.CanTakeOverFromAnything + //cursorShape: Qt.PointingHandCursor + } + GridLayout { id: topLayout @@ -51,8 +64,8 @@ Rectangle { Layout.row: 0 Layout.rowSpan: 2 Layout.alignment: Qt.AlignVCenter - width: Nheko.avatarSize - height: Nheko.avatarSize + Layout.preferredHeight: Nheko.avatarSize - Nheko.paddingMedium + Layout.preferredWidth: Nheko.avatarSize - Nheko.paddingMedium visible: showBackButton image: ":/icons/icons/ui/angle-pointing-to-left.png" ToolTip.visible: hovered @@ -71,11 +84,7 @@ Rectangle { roomid: roomId userid: isDirect ? directChatOtherUserId : "" displayName: roomName - onClicked: { - if (room) - TimelineManager.openRoomSettings(roomId); - - } + enabled: false } Label { @@ -91,10 +100,13 @@ Rectangle { } MatrixText { + id: roomTopicC Layout.fillWidth: true Layout.column: 2 Layout.row: 1 Layout.maximumHeight: fontMetrics.lineSpacing * 2 // show 2 lines + selectByMouse: false + enabled: false clip: true text: roomTopic } @@ -103,6 +115,8 @@ Rectangle { Layout.column: 3 Layout.row: 0 Layout.rowSpan: 2 + Layout.preferredHeight: Nheko.avatarSize - Nheko.paddingMedium + Layout.preferredWidth: Nheko.avatarSize - Nheko.paddingMedium visible: isEncrypted encrypted: isEncrypted trust: trustlevel @@ -129,6 +143,8 @@ Rectangle { Layout.row: 0 Layout.rowSpan: 2 Layout.alignment: Qt.AlignVCenter + Layout.preferredHeight: Nheko.avatarSize - Nheko.paddingMedium + Layout.preferredWidth: Nheko.avatarSize - Nheko.paddingMedium image: ":/icons/icons/ui/vertical-ellipsis.png" ToolTip.visible: hovered ToolTip.text: qsTr("Room options") @@ -164,4 +180,9 @@ Rectangle { } + CursorShape { + anchors.fill: parent + cursorShape: Qt.PointingHandCursor + } + }