monero-gui/components/SettingsListItem.qml

119 lines
3.7 KiB
QML
Raw Normal View History

import QtQuick 2.9
import QtQuick.Layouts 1.1
2019-12-21 13:37:15 +00:00
import FontAwesome 1.0
import "../components" as MoneroComponents
ColumnLayout {
2019-12-21 13:37:15 +00:00
id: settingsListItem
property alias iconText: iconLabel.text
property alias description: area.text
property alias title: header.text
property bool isLast: false
property bool enabled: true
signal clicked()
Layout.fillWidth: true
spacing: 0
Rectangle {
2019-12-21 13:37:15 +00:00
id: root
Layout.fillWidth: true
2019-12-21 13:37:15 +00:00
Layout.minimumHeight: 75
Layout.preferredHeight: rect.height + 15
color: "transparent"
2019-12-21 13:37:15 +00:00
Rectangle {
id: divider
anchors.topMargin: 0
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: MoneroComponents.Style.dividerColor
opacity: MoneroComponents.Style.dividerOpacity
}
Rectangle {
id: rect
width: parent.width
height: header.height + area.contentHeight
color: "transparent";
opacity: settingsListItem.enabled ? 1 : 0.25
2019-12-21 13:37:15 +00:00
anchors.left: parent.left
anchors.bottomMargin: 4
anchors.topMargin: 4
anchors.verticalCenter: parent.verticalCenter
2019-12-21 13:37:15 +00:00
Rectangle {
id: icon
color: "transparent"
height: 32
width: 32
anchors.left: parent.left
anchors.leftMargin: 16
anchors.verticalCenter: parent.verticalCenter
MoneroComponents.Label {
id: iconLabel
fontSize: 32
fontFamily: FontAwesome.fontFamilySolid
anchors.centerIn: parent
fontColor: MoneroComponents.Style.defaultFontColor
styleName: "Solid"
}
}
MoneroComponents.TextPlain {
2019-12-21 13:37:15 +00:00
id: header
anchors.left: icon.right
anchors.leftMargin: 16
anchors.top: parent.top
color: MoneroComponents.Style.defaultFontColor
opacity: MoneroComponents.Style.blackTheme ? 1.0 : 0.8
font.bold: true
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 16
}
2019-12-21 13:37:15 +00:00
Text {
id: area
anchors.top: header.bottom
anchors.topMargin: 4
anchors.left: icon.right
anchors.leftMargin: 16
color: MoneroComponents.Style.dimmedFontColor
2019-12-21 13:37:15 +00:00
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 15
horizontalAlignment: TextInput.AlignLeft
2019-12-21 13:37:15 +00:00
wrapMode: Text.WordWrap;
leftPadding: 0
topPadding: 0
width: parent.width - (icon.width + icon.anchors.leftMargin + anchors.leftMargin)
}
}
2019-12-21 13:37:15 +00:00
Rectangle {
id: bottomDivider
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: MoneroComponents.Style.dividerColor
opacity: MoneroComponents.Style.dividerOpacity
visible: settingsListItem.isLast
}
MouseArea {
visible: settingsListItem.enabled
2019-12-21 13:37:15 +00:00
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
hoverEnabled: true
onEntered: root.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: root.color = "transparent"
onClicked: {
settingsListItem.clicked()
}
}
}
}