62 lines
1.5 KiB
QML
62 lines
1.5 KiB
QML
import QtQuick
|
|
import QtQuick.Controls.impl
|
|
import QtQuick.Controls
|
|
import QtQuick.Templates as T
|
|
|
|
T.ToolButton {
|
|
id: control
|
|
|
|
property string target
|
|
|
|
checkable: true
|
|
icon.color: Colors.foreground
|
|
icon.height: 36
|
|
icon.width: 36
|
|
implicitHeight: 90
|
|
implicitWidth: 100
|
|
topPadding: 20
|
|
|
|
contentItem: Column {
|
|
readonly property color color: control.checked ? Colors.primaryShade : control.hovered ? Colors.primary : Colors.foreground
|
|
|
|
IconLabel {
|
|
color: parent.color
|
|
icon.color: parent.color
|
|
icon.height: control.icon.height
|
|
icon.source: control.icon.source
|
|
icon.width: control.icon.width
|
|
x: parent.width * .5 - width * .5
|
|
}
|
|
Label {
|
|
color: parent.color
|
|
font: Typography.smaller
|
|
text: control.text
|
|
x: parent.width * .5 - width * .5
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
anchors.bottom: parent.bottom
|
|
anchors.left: parent.left
|
|
anchors.top: parent.top
|
|
color: control.checked ? Colors.primaryShade : Colors.primary
|
|
implicitWidth: 6
|
|
visible: control.checked || control.hovered
|
|
}
|
|
MouseArea {
|
|
id: mouseArea
|
|
|
|
anchors.fill: parent
|
|
cursorShape: Qt.PointingHandCursor
|
|
|
|
onPressed: mouse => mouse.accepted = false
|
|
}
|
|
|
|
onClicked: {
|
|
if(!target) {
|
|
return
|
|
}
|
|
contentStack.replace(target)
|
|
}
|
|
}
|