1// SPDX-FileCopyrightText: 2021 Nheko Contributors
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5import QtQuick 2.9
6import QtQuick.Controls 2.3
7import QtQuick.Layouts 1.2
8import im.nheko 1.0
9
10BusyIndicator {
11    id: control
12
13    contentItem: Item {
14        implicitWidth: 64
15        implicitHeight: 64
16
17        Item {
18            id: item
19
20            height: Math.min(parent.height, parent.width)
21            width: height
22            opacity: control.running ? 1 : 0
23
24            RotationAnimator {
25                target: item
26                running: control.visible && control.running
27                from: 0
28                to: 360
29                loops: Animation.Infinite
30                duration: 2000
31            }
32
33            Repeater {
34                id: repeater
35
36                model: 6
37
38                Rectangle {
39                    implicitWidth: radius * 2
40                    implicitHeight: radius * 2
41                    radius: item.height / 6
42                    color: Nheko.colors.text
43                    opacity: (index + 2) / (repeater.count + 2)
44                    transform: [
45                        Translate {
46                            y: -Math.min(item.width, item.height) * 0.5 + item.height / 6
47                        },
48                        Rotation {
49                            angle: index / repeater.count * 360
50                            origin.x: item.height / 2
51                            origin.y: item.height / 2
52                        }
53                    ]
54                }
55
56            }
57
58            Behavior on opacity {
59                OpacityAnimator {
60                    duration: 250
61                }
62
63            }
64
65        }
66
67    }
68
69}
70