83 lines
2.5 KiB
QML
83 lines
2.5 KiB
QML
import QtQuick 2.14
|
|
|
|
import utils 1.0
|
|
|
|
Item {
|
|
id: root
|
|
implicitHeight: 240
|
|
implicitWidth: 240
|
|
|
|
states: [
|
|
State {
|
|
name: Constants.startupState.profileFetching
|
|
PropertyChanges { target: loadingAnimation; opacity: 1; }
|
|
PropertyChanges { target: completedImage; opacity: 0 }
|
|
PropertyChanges { target: errorImage; opacity: 0 }
|
|
|
|
},
|
|
State {
|
|
name: Constants.startupState.profileFetchingCompleted
|
|
PropertyChanges { target: loadingAnimation; opacity: 0;}
|
|
PropertyChanges { target: completedImage; opacity: 1 }
|
|
PropertyChanges { target: errorImage; opacity: 0 }
|
|
},
|
|
State {
|
|
name: Constants.startupState.profileFetchingError
|
|
PropertyChanges { target: loadingAnimation; opacity: 0;}
|
|
PropertyChanges { target: completedImage; opacity: 0 }
|
|
PropertyChanges { target: errorImage; opacity: 1 }
|
|
}
|
|
]
|
|
|
|
transitions: [
|
|
Transition {
|
|
from: Constants.startupState.profileFetching
|
|
to: Constants.startupState.profileFetchingCompleted
|
|
ParallelAnimation {
|
|
NumberAnimation { target: completedImage; property: "opacity"; duration: 100 }
|
|
NumberAnimation { target: loadingAnimation; property: "opacity"; duration: 100 }
|
|
}
|
|
},
|
|
Transition {
|
|
from: Constants.startupState.profileFetching
|
|
to: Constants.startupState.profileFetchingError
|
|
ParallelAnimation {
|
|
NumberAnimation { target: errorImage; property: "opacity"; duration: 100 }
|
|
NumberAnimation { target: loadingAnimation; property: "opacity"; duration: 100 }
|
|
}
|
|
}
|
|
]
|
|
|
|
SpriteSequence {
|
|
id: loadingAnimation
|
|
anchors.fill: root
|
|
running: visible
|
|
visible: opacity > 0
|
|
|
|
Sprite {
|
|
id: sprite
|
|
frameCount: 94
|
|
frameWidth: 240
|
|
frameHeight: 240
|
|
frameRate: 30
|
|
source: Style.png(Constants.onboarding.profileFetching.imgInProgress)
|
|
}
|
|
}
|
|
|
|
Image {
|
|
id: completedImage
|
|
anchors.fill: loadingAnimation
|
|
visible: opacity > 0
|
|
opacity: 0
|
|
source: Style.png(Constants.onboarding.profileFetching.imgCompleted)
|
|
}
|
|
|
|
Image {
|
|
id: errorImage
|
|
anchors.fill: loadingAnimation
|
|
visible: opacity > 0
|
|
opacity: 0
|
|
source: Style.png(Constants.onboarding.profileFetching.imgError)
|
|
}
|
|
}
|