// Copyright 2019 miruka // This file is part of harmonyqml, licensed under LGPLv3. import QtQuick 2.12 import QtQuick.Layouts 1.12 import "../Base" Column { id: accountDelegate width: parent.width property var userInfo: users.find(model.userId) property bool expanded: true HInteractiveRectangle { width: parent.width height: childrenRect.height normalColor: theme.sidePane.account.background TapHandler { onTapped: pageStack.showPage( "EditAccount/EditAccount", { "userId": model.userId } ) } HRowLayout { id: row width: parent.width HUserAvatar { id: avatar // Need to do this because conflict with the model property Component.onCompleted: userId = model.userId } HColumnLayout { Layout.fillWidth: true Layout.fillHeight: true HLabel { id: accountLabel text: userInfo.displayName || model.userId leftPadding: sidePane.currentSpacing rightPadding: leftPadding elide: HLabel.ElideRight Layout.fillWidth: true } HTextField { id: statusEdit text: userInfo.statusMessage placeholderText: qsTr("Set status message") font.pixelSize: theme.fontSize.small background: null padding: 0 leftPadding: accountLabel.leftPadding rightPadding: leftPadding Layout.fillWidth: true onEditingFinished: { //Backend.setStatusMessage(model.userId, text) TODO pageStack.forceActiveFocus() } } } ExpandButton { id: expandButton expandableItem: accountDelegate 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: userInfo.userId Behavior on height { HNumberAnimation { id: heightAnimation } } } }