moment/harmonyqml/components/sidePane/AccountDelegate.qml
2019-04-28 11:32:02 -04:00

88 lines
2.3 KiB
QML

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.4
import "../base" as Base
ColumnLayout {
id: accountDelegate
spacing: 0
width: parent.width
RowLayout {
id: row
spacing: 0
Base.HAvatar { id: avatar; name: displayName; dimension: 36 }
ColumnLayout {
Layout.fillWidth: true
Layout.fillHeight: true
spacing: 0
Base.HLabel {
id: accountLabel
text: displayName.value || userId
elide: Text.ElideRight
maximumLineCount: 1
Layout.fillWidth: true
leftPadding: 6
rightPadding: leftPadding
}
TextField {
id: statusEdit
text: statusMessage || ""
placeholderText: qsTr("Set status message")
background: null
color: "black"
selectByMouse: true
font.family: "Roboto"
font.pixelSize: 12
Layout.fillWidth: true
padding: 0
leftPadding: accountLabel.leftPadding
rightPadding: leftPadding
onEditingFinished: {
Backend.setStatusMessage(userId, text)
pageStack.forceActiveFocus()
}
}
}
Base.HToolButton {
id: toggleExpand
iconName: roomList.visible ? "up" : "down"
Layout.maximumWidth: 28
Layout.minimumHeight: row.height
onClicked: {
toggleExpand.ToolTip.hide()
roomList.visible = ! roomList.visible
}
}
}
RoomList {
id: roomList
visible: true
interactive: false // no scrolling
forUserId: userId
Layout.minimumHeight:
roomList.visible ?
roomList.contentHeight :
0
Layout.maximumHeight: Layout.minimumHeight
Layout.minimumWidth:
parent.width - Layout.leftMargin - Layout.rightMargin
Layout.maximumWidth: Layout.minimumWidth
Layout.margins: accountList.spacing
Layout.leftMargin:
sidePane.width < 36 + Layout.margins ? 0 : Layout.margins
Layout.rightMargin: 0
}
}