89 lines
2.3 KiB
QML
89 lines
2.3 KiB
QML
import QtQuick
|
|
import qs.config
|
|
|
|
Item {
|
|
id: root
|
|
|
|
default property alias trailingData: trailing.data
|
|
property string icon: ""
|
|
property string label: ""
|
|
property string detail: ""
|
|
property string value: ""
|
|
property bool divider: true
|
|
property int controlWidth: 150
|
|
|
|
width: parent ? parent.width : 620
|
|
implicitHeight: Math.max(56, copy.implicitHeight + 20)
|
|
|
|
Text {
|
|
id: iconLabel
|
|
anchors.left: parent.left
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
width: root.icon === "" ? 0 : 28
|
|
visible: root.icon !== ""
|
|
text: root.icon
|
|
color: Theme.accent
|
|
font.family: Theme.fontMono
|
|
font.pixelSize: 17
|
|
horizontalAlignment: Text.AlignHCenter
|
|
}
|
|
|
|
Column {
|
|
id: copy
|
|
anchors.left: iconLabel.visible ? iconLabel.right : parent.left
|
|
anchors.leftMargin: iconLabel.visible ? 10 : 0
|
|
anchors.right: trailing.left
|
|
anchors.rightMargin: 16
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
spacing: 3
|
|
|
|
Text {
|
|
width: parent.width
|
|
text: root.label
|
|
color: Theme.fg
|
|
font.family: Theme.fontFamily
|
|
font.pixelSize: Theme.fontSize
|
|
font.weight: Font.Medium
|
|
elide: Text.ElideRight
|
|
}
|
|
|
|
Text {
|
|
width: parent.width
|
|
visible: root.detail !== ""
|
|
text: root.detail
|
|
color: Theme.fgDim
|
|
font.family: Theme.fontFamily
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
wrapMode: Text.WordWrap
|
|
}
|
|
}
|
|
|
|
Item {
|
|
id: trailing
|
|
anchors.right: parent.right
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
width: root.controlWidth
|
|
height: 32
|
|
|
|
Text {
|
|
anchors.right: parent.right
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
visible: root.value !== ""
|
|
text: root.value
|
|
color: Theme.fgDim
|
|
font.family: Theme.fontFamily
|
|
font.features: Theme.tabularFigures
|
|
font.pixelSize: Theme.fontSize
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
anchors.left: copy.left
|
|
anchors.right: parent.right
|
|
anchors.bottom: parent.bottom
|
|
height: 1
|
|
visible: root.divider
|
|
color: Theme.alpha(Theme.fg, 0.065)
|
|
}
|
|
}
|