status-desktop/ui/shared/status/StatusGifColumn.qml

70 lines
2.0 KiB
QML
Raw Normal View History

import QtQuick 2.13
import QtQuick.Controls 2.13
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.0
import "../../imports"
Column {
id: root
spacing: 8
property alias gifList: repeater
property var gifWidth: 0
property var gifSelected: function () {}
Repeater {
id: repeater
delegate: Rectangle {
height: animation.status != Image.Ready ? loader.height : animation.height
width: root.gifWidth
color: Style.current.background
border.color: Style.current.border
Rectangle {
id: loader
height: 100
width: root.gifWidth
visible: animation.status != Image.Ready
radius: Style.current.radius
rotation: 90
gradient: Gradient {
GradientStop { position: 0.0; color: "transparent" }
GradientStop { position: 1.0; color: "#E6EEF2" }
}
}
AnimatedImage {
id: animation
visible: animation.status == Image.Ready
source: model.tinyUrl
width: root.gifWidth
fillMode: Image.PreserveAspectFit
layer.enabled: true
layer.effect: OpacityMask {
maskSource: Rectangle {
width: animation.width
height: animation.height
radius: Style.current.radius
color: Style.current.background
border.color: Style.current.border
}
}
}
MouseArea {
anchors.fill: parent
onClicked: function (event) {
root.gifSelected(event, model.url)
}
}
}
}
}
/*##^##
Designer {
D{i:0;formeditorColor:"#ffffff";height:440;width:360}
}
##^##*/