import QtQuick 2.7 import QtQuick.Layouts 1.3 import "../Base" Column { id: accountDelegate width: parent.width property string roomCategoriesListUserId: userId property bool expanded: true HRowLayout { width: parent.width height: childrenRect.height id: row HAvatar { id: avatar name: displayName } HColumnLayout { Layout.fillWidth: true Layout.fillHeight: true HLabel { id: accountLabel text: displayName.value || userId elide: HLabel.ElideRight maximumLineCount: 1 Layout.fillWidth: true leftPadding: 6 rightPadding: leftPadding } HTextField { id: statusEdit text: statusMessage || "" placeholderText: qsTr("Set status message") font.pixelSize: HStyle.fontSize.small background: null padding: 0 leftPadding: accountLabel.leftPadding rightPadding: leftPadding Layout.fillWidth: true onEditingFinished: { //Backend.setStatusMessage(userId, text) pageStack.forceActiveFocus() } } } HButton { id: toggleExpand iconName: roomCategoriesList.visible ? "up" : "down" iconDimension: 16 backgroundColor: "transparent" onClicked: accountDelegate.expanded = ! accountDelegate.expanded Layout.preferredHeight: row.height } } RoomCategoriesList { id: roomCategoriesList interactive: false // no scrolling visible: height > 0 width: parent.width height: childrenRect.height * (accountDelegate.expanded ? 1 : 0) clip: heightAnimation.running userId: roomCategoriesListUserId Behavior on height { NumberAnimation { id: heightAnimation; duration: 100 } } } }