diff options
author | Loren Burkholder <computersemiexpert@outlook.com> | 2023-03-09 20:07:19 -0500 |
---|---|---|
committer | Loren Burkholder <computersemiexpert@outlook.com> | 2023-03-24 11:51:27 -0400 |
commit | 3a122782f273b3317d5b50b1b7aa7442b22874f8 (patch) | |
tree | 072916c06a8ff087a33fe507d07217fa36e87f0f /resources | |
parent | Translated using Weblate (Turkish) (diff) | |
download | nheko-3a122782f273b3317d5b50b1b7aa7442b22874f8.tar.xz |
Overhaul switch appearance
Diffstat (limited to 'resources')
-rw-r--r-- | resources/qml/ToggleButton.qml | 67 |
1 files changed, 60 insertions, 7 deletions
diff --git a/resources/qml/ToggleButton.qml b/resources/qml/ToggleButton.qml index 20e82ad6..6b43bec5 100644 --- a/resources/qml/ToggleButton.qml +++ b/resources/qml/ToggleButton.qml @@ -12,6 +12,57 @@ Switch { implicitWidth: indicatorItem.width + state: checked ? "on" : "off" + states: [ + State { + name: "off" + + PropertyChanges { + target: track + border.color: "#767676" + } + + PropertyChanges { + target: handle + x: 0 + } + }, + State { + name: "on" + + PropertyChanges { + target: track + border.color: Nheko.colors.highlight + } + + PropertyChanges { + target: handle + x: indicatorItem.width - handle.width + } + } + ] + transitions: [ + Transition { + to: "off" + reversible: true + + ParallelAnimation { + NumberAnimation { + target: handle + property: "x" + duration: 200 + easing.type: Easing.InOutQuad + } + + ColorAnimation { + target: track + properties: "color,border.color" + duration: 200 + } + } + } + ] + indicator: Item { id: indicatorItem @@ -20,23 +71,25 @@ Switch { y: parent.height / 2 - height / 2 Rectangle { - height: 3 * parent.height / 4 + id: track + + height: parent.height * 0.6 radius: height / 2 width: parent.width - height x: radius y: parent.height / 2 - height / 2 - color: toggleButton.checked ? Nheko.colors.highlight : "grey" - border.color: "#cccccc" + color: Qt.rgba(border.color.r, border.color.g, border.color.b, 0.6) } Rectangle { - x: toggleButton.checked ? parent.width - width : 0 + id: handle + y: parent.height / 2 - height / 2 - width: parent.height + width: parent.height * 0.9 height: width radius: width / 2 - color: toggleButton.enabled ? "whitesmoke" : "#cccccc" - border.color: "#ebebeb" + color: Nheko.colors.button + border.color: "#767676" } } |