chore(StatusQ): make StatusLoadingIndicator use Animator
Animator based animations can animate on scene graph's rendering thread even when the UI thread is blocked.
This commit is contained in:
parent
36940cc81e
commit
9b099c13d4
|
@ -2,17 +2,16 @@ import QtQuick 2.13
|
|||
import StatusQ.Core 0.1
|
||||
|
||||
StatusIcon {
|
||||
id: statusIcon
|
||||
id: root
|
||||
icon: "loading"
|
||||
height: 17
|
||||
width: 17
|
||||
RotationAnimation {
|
||||
target: statusIcon;
|
||||
from: 0;
|
||||
to: 360;
|
||||
RotationAnimator {
|
||||
target: root
|
||||
from: 0
|
||||
to: 360
|
||||
duration: 1200
|
||||
running: visible
|
||||
loops: Animation.Infinite
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,10 +2,11 @@ import QtQuick 2.13
|
|||
import QtGraphicalEffects 1.13
|
||||
|
||||
Image {
|
||||
id: root
|
||||
|
||||
property string icon: ""
|
||||
property color color: "transparent"
|
||||
|
||||
id: statusIcon
|
||||
width: 24
|
||||
height: 24
|
||||
// SVGs must have sourceSize, PNGs not; otherwise blurry
|
||||
|
@ -16,7 +17,7 @@ Image {
|
|||
if(icon.startsWith("data:image/") || icon.startsWith("https://")) {
|
||||
//raw image data
|
||||
source = icon
|
||||
objectName = "custom-icon"
|
||||
objectName = "custom-icon"
|
||||
}
|
||||
else if (icon !== "") {
|
||||
source = "../../assets/img/icons/" + icon+ ".svg";
|
||||
|
@ -24,10 +25,13 @@ Image {
|
|||
}
|
||||
}
|
||||
|
||||
layer.smooth: true
|
||||
layer.format: ShaderEffectSource.RGBA
|
||||
layer.enabled: !Qt.colorEqual(statusIcon.color, "transparent")
|
||||
layer.effect: ColorOverlay {
|
||||
color: statusIcon.color
|
||||
Loader {
|
||||
anchors.fill: root
|
||||
active: !Qt.colorEqual(root.color, "transparent")
|
||||
sourceComponent: ColorOverlay {
|
||||
source: root
|
||||
color: root.color
|
||||
smooth: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue