Files
dotfiles/.config/quickshell/nucleus-shell/modules/components/MaterialSymbolButton.qml

57 lines
1.2 KiB
QML

import QtQuick
import Quickshell
import qs.config
MaterialSymbol {
id: root
// Expose mouse props
property alias enabled: ma.enabled
property alias hoverEnabled: ma.hoverEnabled
property alias pressed: ma.pressed
property string tooltipText: ""
// Renamed signals (no collisions possible)
signal buttonClicked()
signal buttonEntered()
signal buttonExited()
signal buttonPressAndHold()
signal buttonPressedChanged(bool pressed)
MouseArea {
id: ma
anchors.fill: parent
hoverEnabled: true
onClicked: root.buttonClicked()
onEntered: root.buttonEntered()
onExited: root.buttonExited()
onPressAndHold: root.buttonPressAndHold()
onPressedChanged: root.buttonPressedChanged(pressed)
}
HoverHandler {
id: hover
enabled: root.tooltipText !== ""
}
LazyLoader {
active: root.tooltipText !== ""
StyledPopout {
hoverTarget: hover
hoverDelay: Metrics.chronoDuration(500)
Component {
StyledText {
text: root.tooltipText
}
}
}
}
}