Add a basic member list pane to rooms

This commit is contained in:
miruka
2019-05-12 13:17:42 -04:00
parent 8f965a3e72
commit 97c1dda4ba
17 changed files with 216 additions and 51 deletions

View File

@@ -0,0 +1,37 @@
import QtQuick 2.7
import QtQuick.Layouts 1.3
import "../../Base"
MouseArea {
id: memberDelegate
width: memberList.width
height: childrenRect.height
property var member: Backend.users.get(modelData)
HRowLayout {
width: parent.width
spacing: memberList.spacing
HAvatar {
id: memberAvatar
name: member.displayName.value
}
HColumnLayout {
Layout.fillWidth: true
Layout.maximumWidth:
parent.width - parent.totalSpacing - memberAvatar.width
HLabel {
id: memberName
text: member.displayName.value
elide: Text.ElideRight
maximumLineCount: 1
verticalAlignment: Qt.AlignVCenter
Layout.maximumWidth: parent.width
}
}
}
}

View File

@@ -0,0 +1,30 @@
import QtQuick 2.7
import QtQuick.Layouts 1.3
import "../../Base"
Column {
property int normalSpacing: 8
property bool collapsed:
width < roomSidePane.Layout.minimumWidth + normalSpacing
leftPadding: collapsed ? 0 : normalSpacing
rightPadding: leftPadding
ListView {
width: parent.width
height: parent.height
id: memberList
spacing: collapsed ? 0 : normalSpacing
topMargin: spacing
bottomMargin: topMargin
Behavior on spacing {
NumberAnimation { duration: 150 }
}
model: chatPage.roomInfo.members
delegate: MemberDelegate {}
}
}

View File

@@ -0,0 +1,16 @@
import QtQuick 2.7
import QtQuick.Layouts 1.3
import "../../Base"
HRectangle {
id: roomSidePane
HColumnLayout {
anchors.fill: parent
MembersView {
Layout.fillHeight: true
Layout.fillWidth: true
}
}
}