diff options
author | Nicolas Werner <nicolas.werner@hotmail.de> | 2020-10-26 14:57:54 +0100 |
---|---|---|
committer | Nicolas Werner <nicolas.werner@hotmail.de> | 2020-10-26 21:34:34 +0100 |
commit | 3d64df41dac45693d1e2626909f0e55d4b7a6f47 (patch) | |
tree | d592ee2279235b9d7dc58f52c3cfed06ea61d707 /resources/qml/TopBar.qml | |
parent | Qml message input mockup (diff) | |
download | nheko-3d64df41dac45693d1e2626909f0e55d4b7a6f47.tar.xz |
Split up TimelineView into separate components
Diffstat (limited to 'resources/qml/TopBar.qml')
-rw-r--r-- | resources/qml/TopBar.qml | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/resources/qml/TopBar.qml b/resources/qml/TopBar.qml new file mode 100644 index 00000000..181b9ba4 --- /dev/null +++ b/resources/qml/TopBar.qml @@ -0,0 +1,127 @@ +import QtQuick 2.9 +import QtQuick.Controls 2.3 +import QtQuick.Layouts 1.2 +import im.nheko 1.0 + +Rectangle { + id: topBar + + property var room: TimelineManager.timeline + + Layout.fillWidth: true + implicitHeight: topLayout.height + 16 + z: 3 + color: colors.window + + MouseArea { + anchors.fill: parent + onClicked: TimelineManager.openRoomSettings() + } + + GridLayout { + //Layout.margins: 8 + + id: topLayout + + anchors.left: parent.left + anchors.right: parent.right + anchors.margins: 8 + anchors.verticalCenter: parent.verticalCenter + + ImageButton { + id: backToRoomsButton + + Layout.column: 0 + Layout.row: 0 + Layout.rowSpan: 2 + Layout.alignment: Qt.AlignVCenter + visible: TimelineManager.isNarrowView + image: ":/icons/icons/ui/angle-pointing-to-left.png" + ToolTip.visible: hovered + ToolTip.text: qsTr("Back to room list") + onClicked: TimelineManager.backToRooms() + } + + Avatar { + Layout.column: 1 + Layout.row: 0 + Layout.rowSpan: 2 + Layout.alignment: Qt.AlignVCenter + width: avatarSize + height: avatarSize + url: room ? room.roomAvatarUrl.replace("mxc://", "image://MxcImage/") : "" + displayName: room ? room.roomName : qsTr("No room selected") + + MouseArea { + anchors.fill: parent + onClicked: TimelineManager.openRoomSettings() + } + + } + + Label { + Layout.fillWidth: true + Layout.column: 2 + Layout.row: 0 + color: colors.text + font.pointSize: fontMetrics.font.pointSize * 1.1 + text: room ? room.roomName : qsTr("No room selected") + + MouseArea { + anchors.fill: parent + onClicked: TimelineManager.openRoomSettings() + } + + } + + MatrixText { + Layout.fillWidth: true + Layout.column: 2 + Layout.row: 1 + Layout.maximumHeight: fontMetrics.lineSpacing * 2 // show 2 lines + clip: true + text: room ? room.roomTopic : "" + } + + 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") + onClicked: roomOptionsMenu.popup(roomOptionsButton) + + Menu { + id: roomOptionsMenu + + MenuItem { + text: qsTr("Invite users") + onTriggered: TimelineManager.openInviteUsersDialog() + } + + MenuItem { + text: qsTr("Members") + onTriggered: TimelineManager.openMemberListDialog() + } + + MenuItem { + text: qsTr("Leave room") + onTriggered: TimelineManager.openLeaveRoomDialog() + } + + MenuItem { + text: qsTr("Settings") + onTriggered: TimelineManager.openRoomSettings() + } + + } + + } + + } + +} |