Newer
Older
// SPDX-FileCopyrightText: 2021 Nheko Contributors
import Qt.labs.platform 1.1 as Platform
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.2
import im.nheko 1.0
Rectangle {
id: topBar
property string roomName: room ? room.roomName : qsTr("No room selected")
property string avatarUrl: room ? room.roomAvatarUrl : ""
property string roomTopic: room ? room.roomTopic : ""
implicitHeight: topLayout.height + Nheko.paddingMedium * 2
if (room)
room.openRoomSettings();
eventPoint.accepted = true;
}
gesturePolicy: TapHandler.ReleaseWithinBounds
}
GridLayout {
id: topLayout
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: Nheko.paddingMedium
anchors.verticalCenter: parent.verticalCenter
ImageButton {
id: backToRoomsButton
Layout.column: 0
Layout.row: 0
Layout.rowSpan: 2
Layout.alignment: Qt.AlignVCenter
width: Nheko.avatarSize
height: Nheko.avatarSize
image: ":/icons/icons/ui/angle-pointing-to-left.png"
ToolTip.visible: hovered
ToolTip.text: qsTr("Back to room list")
}
Avatar {
Layout.column: 1
Layout.row: 0
Layout.rowSpan: 2
Layout.alignment: Qt.AlignVCenter
width: Nheko.avatarSize
height: Nheko.avatarSize
url: avatarUrl.replace("mxc://", "image://MxcImage/")
displayName: roomName
onClicked: {
}
Label {
Layout.fillWidth: true
Layout.column: 2
Layout.row: 0
font.pointSize: fontMetrics.font.pointSize * 1.1
elide: Text.ElideRight
textFormat: Text.RichText
}
MatrixText {
Layout.fillWidth: true
Layout.column: 2
Layout.row: 1
Layout.maximumHeight: fontMetrics.lineSpacing * 2 // show 2 lines
clip: true
}
ImageButton {
id: roomOptionsButton
Layout.column: 3
Layout.row: 0
Layout.rowSpan: 2
Layout.alignment: Qt.AlignVCenter
image: ":/icons/icons/ui/vertical-ellipsis.png"
ToolTip.visible: hovered
ToolTip.text: qsTr("Room options")
visible: room ? room.permissions.canInvite() : false
text: qsTr("Invite users")
onTriggered: Rooms.currentRoom.openInviteUsers()
onTriggered: Rooms.currentRoom.openRoomMembers()
text: qsTr("Leave room")
onTriggered: TimelineManager.openLeaveRoomDialog(room.roomId)
onTriggered: room.openRoomSettings()