telephant/qml/MediaPopup.qml
2021-01-30 19:45:41 +01:00

71 lines
1.9 KiB
QML

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Material 2.12
import QtQuick.Layouts 1.11
import QtMultimedia 5.12
Popup {
property var url
id: popup
modal: true
focus: true
height: mediaItem.height + 16
width: mediaItem.width + 16
anchors.centerIn: mainWindow.overlay
Item {
id: mediaItem
anchors.centerIn: parent
width: image.visible ?
image.width :
video.width
height: image.visible ?
image.height :
video.height
Image {
id: image
width: Math.min(sourceSize.width, mainWindow.width * 0.8)
height: Math.min(sourceSize.height, mainWindow.height * 0.8)
anchors.centerIn: parent
smooth: true
fillMode: Image.PreserveAspectFit
source: visible ? url : ""
visible: !(url.endsWith(".webm") || url.endsWith(".mp4"))
}
Video {
id: video
width: metaData.resolution ? Math.min(metaData.resolution.width, mainWindow.width * 0.8) : 0
height: metaData.resolution ? Math.min(metaData.resolution.height, mainWindow.height * 0.8) : 0
autoLoad: true
autoPlay: false
loops: MediaPlayer.Infinite
anchors.centerIn: parent
fillMode: VideoOutput.PreserveAspectFit
source: visible ? url : ""
visible: url.endsWith(".webm") || url.endsWith(".mp4")
onStatusChanged: {
if (status == MediaPlayer.Loaded)
video.play()
}
/*
MouseArea {
anchors.fill: parent
onClicked: {
if (video.playbackState != MediaPlayer.PausedState) {
video.play()
} else {
video.pause()
}
}
}
*/
}
}
}