status-desktop/ui/shared/status/StatusSettingsLineButton.qml

71 lines
1.7 KiB
QML
Raw Normal View History

import QtQuick 2.13
import QtGraphicalEffects 1.12
import "../../imports"
import ".."
Item {
property string text
property bool isSwitch: false
property bool switchChecked: false
property string currentValue
signal clicked(bool checked)
id: root
height: textItem.height
width: parent.width
StyledText {
id: textItem
text: root.text
font.pixelSize: 15
}
StyledText {
id: valueText
visible: !!root.currentValue
text: root.currentValue
elide: Text.ElideRight
font.pixelSize: 15
horizontalAlignment: Text.AlignRight
color: Style.current.secondaryText
anchors.left: textItem.right
anchors.leftMargin: Style.current.padding
anchors.right: root.isSwitch ? switchItem.left : caret.left
anchors.rightMargin: Style.current.padding
anchors.verticalCenter: textItem.verticalCenter
}
StatusSwitch {
id: switchItem
visible: root.isSwitch
checked: root.switchChecked
anchors.right: parent.right
anchors.verticalCenter: textItem.verticalCenter
}
SVGImage {
id: caret
visible: !root.isSwitch
anchors.right: parent.right
anchors.verticalCenter: textItem.verticalCenter
source: "../../app/img/caret.svg"
width: 13
height: 7
rotation: -90
ColorOverlay {
anchors.fill: caret
source: caret
color: Style.current.darkGrey
}
}
MouseArea {
anchors.fill: parent
onClicked: {
root.clicked(!root.switchChecked)
}
cursorShape: Qt.PointingHandCursor
}
}