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