38 lines
992 B
QML
38 lines
992 B
QML
|
import QtQuick
|
||
|
|
||
|
import Status.Assets
|
||
|
import Status.Core.Theme
|
||
|
|
||
|
Item {
|
||
|
id: root
|
||
|
|
||
|
signal animationFinished()
|
||
|
function show() {
|
||
|
splashLogo.playing = true
|
||
|
}
|
||
|
|
||
|
implicitWidth: splashLogo.implicitWidth
|
||
|
implicitHeight: splashLogo.implicitHeight
|
||
|
|
||
|
visible: (opacity > 0.0001)
|
||
|
|
||
|
// TODO: consider bringing POC attempt to use lottie animations
|
||
|
AnimatedImage {
|
||
|
id: splashLogo
|
||
|
anchors.centerIn: parent
|
||
|
scale: 0.5
|
||
|
source: Resources.gif("status_splash_" + Style.theme.name)
|
||
|
|
||
|
readonly property real frameToStartAnimation: frameCount/2
|
||
|
readonly property real animationRange: (frameCount - frameToStartAnimation)
|
||
|
|
||
|
onCurrentFrameChanged: {
|
||
|
if(currentFrame > frameToStartAnimation)
|
||
|
root.opacity = 1 - (currentFrame - frameToStartAnimation)/animationRange
|
||
|
if(currentFrame === (frameCount - 1))
|
||
|
root.animationFinished()
|
||
|
}
|
||
|
playing: false
|
||
|
}
|
||
|
}
|