status-desktop/ui/app/AppLayouts/Profile/controls/BloomSelectorButton.qml

68 lines
1.5 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
2021-07-21 13:11:27 +00:00
import StatusQ.Core.Theme 0.1
import StatusQ.Controls 0.1
2021-07-21 13:11:27 +00:00
Rectangle {
id: root
2021-07-21 13:11:27 +00:00
property var buttonGroup
property string btnText: qsTr("TODO")
2021-07-21 13:11:27 +00:00
property bool checkedByDefault: false
2022-02-09 09:43:23 +00:00
2021-07-21 13:11:27 +00:00
signal checked()
signal toggled(bool checked)
function toggle() {
2021-07-21 13:11:27 +00:00
radioBtn.toggle()
}
border.color: mouseArea.containsMouse || radioBtn.checked ? Theme.palette.primaryColor1 : Theme.palette.border
2021-07-21 13:11:27 +00:00
border.width: 1
color: Theme.palette.transparent
implicitWidth: 130
implicitHeight: 120
radius: Theme.radius
2021-07-21 13:11:27 +00:00
StatusRadioButton {
id: radioBtn
ButtonGroup.group: buttonGroup
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
anchors.topMargin: 14
checked: root.checkedByDefault
onCheckedChanged: {
if (checked) {
root.checked()
}
}
}
StyledText {
id: txt
text: btnText
font.pixelSize: 15
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: radioBtn.bottom
anchors.topMargin: 6
}
MouseArea {
id: mouseArea
anchors.fill: parent
hoverEnabled: true
onClicked: {
if (radioBtn.checked)
return
2021-07-21 13:11:27 +00:00
radioBtn.toggle()
root.toggled(radioBtn.checked)
}
}
}