diff options
author | Anatasof Wirapraja <anatasof.wirapraja@gmail.com> | 2023-02-22 19:24:32 +0700 |
---|---|---|
committer | Anatasof Wirapraja <anatasof.wirapraja@gmail.com> | 2023-02-22 19:24:32 +0700 |
commit | fb7f1d8c6611f2220de7cb74207054e7c8a95968 (patch) | |
tree | 76bb2192fb1e15d57e6ee2aa4f77b415a78de6fd /BusyLoader.qml | |
parent | f85053146108267bb9c0720ae872e99f3dd5773b (diff) |
add busy loader (generic design for now)
Diffstat (limited to 'BusyLoader.qml')
-rw-r--r-- | BusyLoader.qml | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/BusyLoader.qml b/BusyLoader.qml new file mode 100644 index 0000000..6bfc28f --- /dev/null +++ b/BusyLoader.qml @@ -0,0 +1,59 @@ +import QtQuick 2.12 +import QtQuick.Controls 2.12 + +BusyIndicator { + id: spinning + + contentItem: Item { + implicitWidth: 64 + implicitHeight: 64 + + Item { + id: loader + x: parent.width / 2 - 32 + y: parent.height / 2 - 32 + width: 64 + height: 64 + opacity: control.running ? 1 : 0 + + Behavior on opacity { + OpacityAnimator { + duration: 250 + } + } + + RotationAnimator { + target: item + running: control.visible && control.running + from: 0 + to: 360 + loops: Animation.Infinite + duration: 1250 + } + + Repeater { + id: repeater + model: 6 + + Rectangle { + x: item.width / 2 - width / 2 + y: item.height / 2 - height / 2 + implicitWidth: 10 + implicitHeight: 10 + radius: 5 + color: "#0555a1" + transform: [ + Translate { + y: -Math.min(item.width, item.height) * 0.5 + 5 + }, + Rotation { + angle: index / repeater.count * 360 + origin.x: 5 + origin.y: 5 + } + ] + } + } + } + } +}
\ No newline at end of file |