diff --git a/resources/qml/RoomList.qml b/resources/qml/RoomList.qml
index db255bd3..6780a3f7 100644
--- a/resources/qml/RoomList.qml
+++ b/resources/qml/RoomList.qml
@@ -480,6 +480,8 @@ Page {
visible: !collapsed
Layout.alignment: Qt.AlignVCenter
+ Layout.preferredWidth: fontMetrics.lineSpacing * 2
+ Layout.preferredHeight: fontMetrics.lineSpacing * 2
image: ":/icons/icons/ui/power-button-off.png"
ToolTip.visible: hovered
ToolTip.text: qsTr("Logout")
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
+ }
+
}
diff --git a/resources/qml/dialogs/RoomSettings.qml b/resources/qml/dialogs/RoomSettings.qml
index b0f7730b..32357690 100644
--- a/resources/qml/dialogs/RoomSettings.qml
+++ b/resources/qml/dialogs/RoomSettings.qml
@@ -34,8 +34,8 @@ ApplicationWindow {
id: contentLayout1
anchors.fill: parent
- anchors.margins: 10
- spacing: 10
+ anchors.margins: Nheko.paddingMedium
+ spacing: Nheko.paddingMedium
Avatar {
url: roomSettings.roomAvatarUrl.replace("mxc://", "image://MxcImage/")
@@ -156,7 +156,7 @@ ApplicationWindow {
GridLayout {
columns: 2
- rowSpacing: Nheko.paddingLarge
+ rowSpacing: Nheko.paddingMedium
MatrixText {
text: qsTr("SETTINGS")
@@ -278,7 +278,7 @@ ApplicationWindow {
MatrixText {
text: roomSettings.roomId
- font.pixelSize: fontMetrics.font.pixelSize * 1.2
+ font.pixelSize: Math.floor(fontMetrics.font.pixelSize * 0.8)
Layout.alignment: Qt.AlignRight
}
@@ -288,7 +288,7 @@ ApplicationWindow {
MatrixText {
text: roomSettings.roomVersion
- font.pixelSize: fontMetrics.font.pixelSize * 1.2
+ font.pixelSize: fontMetrics.font.pixelSize
Layout.alignment: Qt.AlignRight
}
|