diff options
Diffstat (limited to 'src/quickcontrols/material/impl/RadioIndicator.qml')
-rw-r--r-- | src/quickcontrols/material/impl/RadioIndicator.qml | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/src/quickcontrols/material/impl/RadioIndicator.qml b/src/quickcontrols/material/impl/RadioIndicator.qml index 9570065692..2cf46a69cb 100644 --- a/src/quickcontrols/material/impl/RadioIndicator.qml +++ b/src/quickcontrols/material/impl/RadioIndicator.qml @@ -12,19 +12,42 @@ Rectangle { implicitHeight: 20 radius: width / 2 border.width: 2 - border.color: !control.enabled ? control.Material.hintTextColor - : control.checked || control.down ? control.Material.accentColor : control.Material.secondaryTextColor + border.color: targetColor color: "transparent" + // Store the target color in a separate property, because there are two animations that depend on it. + readonly property color targetColor: !control.enabled ? control.Material.hintTextColor + : control.checked || control.down ? control.Material.accentColor : control.Material.secondaryTextColor + property T.AbstractButton control + Behavior on border.color { + ColorAnimation { + duration: 100 + easing.type: Easing.OutCubic + } + } + Rectangle { x: (parent.width - width) / 2 y: (parent.height - height) / 2 width: 10 height: 10 radius: width / 2 - color: parent.border.color - visible: indicator.control.checked || indicator.control.down + color: indicator.targetColor + scale: indicator.control.checked || indicator.control.down ? 1 : 0 + + Behavior on color { + ColorAnimation { + duration: 100 + easing.type: Easing.OutCubic + } + } + + Behavior on scale { + NumberAnimation { + duration: 100 + } + } } } |