status-desktop/ui/imports/shared/status/StatusImageRadioButton.qml

58 lines
1.4 KiB
QML
Raw Normal View History

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import utils 1.0
import shared 1.0
import shared.panels 1.0
2020-11-24 12:14:20 +00:00
import StatusQ.Controls 0.1 as StatusQControls
import StatusQ.Core.Theme 0.1
2020-11-24 12:14:20 +00:00
Rectangle {
id: root
2022-02-09 09:43:23 +00:00
property int padding: Theme.halfPadding
2020-11-24 12:14:20 +00:00
property alias control: radioControl
property alias image: img
property bool isHovered: false
signal radioCheckedChanged(bool checked)
2020-11-24 12:14:20 +00:00
implicitWidth: 208
implicitHeight: layout.height
color: radioControl.checked ? Theme.palette.secondaryBackground :
(isHovered ? Theme.palette.backgroundHover : Theme.palette.transparent)
2020-11-24 12:14:20 +00:00
radius: Theme.radius
2020-11-24 12:14:20 +00:00
ColumnLayout {
id: layout
width: parent.width
spacing: root.padding
SVGImage {
id: img
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: root.width - root.padding*2
}
2020-11-24 12:14:20 +00:00
StatusQControls.StatusRadioButton {
id: radioControl
Layout.fillWidth: true
Layout.leftMargin: root.padding
Layout.rightMargin: root.padding
}
2020-11-24 12:14:20 +00:00
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: root.isHovered = true
onExited: root.isHovered = false
onClicked: {
root.radioCheckedChanged(!radioControl.checked)
}
cursorShape: Qt.PointingHandCursor
}
2020-11-24 12:14:20 +00:00
}