Files
Panama/config/dot/quickshell/modules/settings/SettingRow.qml
T

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)
}
}