status-desktop/ui/imports/shared/controls/DisabledTooltipButton.qml

60 lines
1.4 KiB
QML

import QtQuick 2.15
import StatusQ.Controls 0.1
Item {
id: root
property string aliasedObjectName
property string text
property string icon
property alias tooltipText: tooltip.text
property int buttonType: DisabledTooltipButton.Normal
property bool interactive: true
signal clicked()
enum Type {
Normal, // 0
Flat // 1
}
implicitWidth: buttonLoader.item.width
implicitHeight: buttonLoader.item.height
Loader {
id: buttonLoader
anchors.centerIn: parent
sourceComponent: buttonType === DisabledTooltipButton.Normal ? normalButton : flatButton
active: root.visible
}
HoverHandler {
id: hoverHandler
enabled: !root.interactive
cursorShape: Qt.PointingHandCursor
}
StatusToolTip {
id: tooltip
visible: hoverHandler.hovered
}
Component{
id: flatButton
StatusFlatButton {
objectName: root.aliasedObjectName
icon.name: root.icon
text: root.text
enabled: root.interactive
onClicked: root.clicked()
}
}
Component{
id: normalButton
StatusButton {
objectName: root.aliasedObjectName
icon.name: root.icon
text: root.text
enabled: root.interactive
onClicked: root.clicked()
}
}
}