88 lines
1.8 KiB
QML
88 lines
1.8 KiB
QML
pragma ComponentBehavior: Bound
|
|
import QtQuick
|
|
|
|
Item {
|
|
id: root
|
|
anchors.centerIn: parent
|
|
|
|
width: 100
|
|
height: width
|
|
|
|
opacity: 0
|
|
|
|
function trigger() {
|
|
hideTimer.stop();
|
|
root.state = "hidden";
|
|
root.state = "visible";
|
|
hideTimer.start();
|
|
}
|
|
|
|
function get_opacity() {
|
|
return root.opacity
|
|
}
|
|
|
|
function hide() {
|
|
root.opacity = 0;
|
|
root.state = "hidden";
|
|
}
|
|
|
|
// IconImage {
|
|
// id: innerIcon
|
|
// anchors.fill: parent
|
|
// source: videoPlayer.playbackState === MediaPlayer.PlayingState ? "qrc:/App/ui/icons/play.svg" : "qrc:/App/ui/icons/pause.svg"
|
|
// color: "white"
|
|
// fillMode: Image.PreserveAspectFit
|
|
//
|
|
// layer.enabled: true
|
|
// layer.effect: MultiEffect {
|
|
// shadowEnabled: true
|
|
// shadowColor: "black"
|
|
// shadowBlur: 0.5
|
|
// }
|
|
// }
|
|
|
|
states: [
|
|
State {
|
|
name: "visible"
|
|
PropertyChanges {
|
|
root.opacity: 1
|
|
}
|
|
},
|
|
State {
|
|
name: "hidden"
|
|
PropertyChanges {
|
|
root.opacity: 0
|
|
}
|
|
}
|
|
]
|
|
|
|
transitions: [
|
|
Transition {
|
|
from: "hidden"
|
|
to: "visible"
|
|
NumberAnimation {
|
|
properties: "opacity"
|
|
duration: 150
|
|
easing.type: Easing.OutCubic
|
|
}
|
|
},
|
|
Transition {
|
|
from: "visible"
|
|
to: "hidden"
|
|
NumberAnimation {
|
|
properties: "opacity"
|
|
duration: 400
|
|
easing.type: Easing.InOutCubic
|
|
}
|
|
}
|
|
]
|
|
Timer {
|
|
id: hideTimer
|
|
interval: 800
|
|
repeat: false
|
|
onTriggered: {
|
|
root.state = "hidden";
|
|
}
|
|
}
|
|
}
|