import QtQuick 2.12 import QtQuick.Controls 2.12 import Utils 1.0 BusyIndicator { id: control running: true implicitWidth: 86 implicitHeight: 86 contentItem: Item { id: item width: parent.width height: parent.height 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: 5000 } Repeater { id: repeater model: 6 Rectangle { x: item.width / 2 - width / 2 y: item.height / 2 - height / 2 implicitWidth: 12 implicitHeight: 12 radius: 6 color: Palette.alternativeBackgroundColor transform: [ Translate { y: -Math.min(item.width, item.height) * 0.5 + 6 }, Rotation { angle: index / repeater.count * 360 origin.x: 6 origin.y: 6 } ] } } } }