import QtQuick import qs.config Item { id: root required property var entity signal addRequested(string id) width: parent ? parent.width : 620 implicitHeight: 62 Column { anchors.left: parent.left anchors.right: stateCopy.left anchors.rightMargin: 16 anchors.verticalCenter: parent.verticalCenter spacing: 3 Text { width: parent.width text: root.entity.sourceName color: Theme.fg font.family: Theme.fontFamily font.pixelSize: Theme.fontSize font.weight: Font.Medium elide: Text.ElideRight } Text { width: parent.width text: root.entity.id color: Theme.fgDim font.family: Theme.fontFamily font.pixelSize: Theme.fontSizeSmall elide: Text.ElideMiddle } } Text { id: stateCopy anchors.right: addButton.left anchors.rightMargin: 14 anchors.verticalCenter: parent.verticalCenter width: 92 text: root.entity.available === false ? "Unavailable" : String(root.entity.state || "Unknown") color: root.entity.available === false ? Theme.fgMuted : Theme.fgDim font.family: Theme.fontFamily font.pixelSize: Theme.fontSizeSmall horizontalAlignment: Text.AlignRight elide: Text.ElideRight } SettingsButton { id: addButton anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter text: "Add" tone: "accent" activeFocusOnTab: true border.width: activeFocus ? 2 : 0 border.color: activeFocus ? Theme.fg : Theme.alpha(Theme.fg, 0) onClicked: root.addRequested(root.entity.id) Keys.onReturnPressed: root.addRequested(root.entity.id) Keys.onSpacePressed: root.addRequested(root.entity.id) } Rectangle { anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom height: 1 color: Theme.alpha(Theme.fg, 0.06) } }