import QtQuick import QtQuick.Controls as Control import QtQuick.Layouts // import QtMultimedia import Linphone import UtilsCpp import 'qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js' as Utils // ============================================================================= Rectangle { id: mainItem color: DefaultStyle.grey_1000 property ChatMessageContentGui contentGui property string filePath: contentGui && contentGui.core.filePath // property var fillMode: playbackState === MediaPlayer.PlayingState ? VideoOutput.PreserveAspectFit : VideoOutput.PreserveAspectCrop // property alias videoOutput: output // property string source: mediaPlayer.source // MediaPlayer { // id: mediaPlayer // source: UtilsCpp.isVideo(mainItem.filePath) ? "file:///" + mainItem.filePath : "" // position: 100 // videoOutput: output // } // VideoOutput { // id: output // fillMode: mainItem.fillMode // endOfStreamPolicy: VideoOutput.KeepLastFrame // width: mainItem.width // height: mainItem.height // Component.onCompleted: { // // We need to start the video so the content rect of the // // video output is updated // mediaPlayer.play() // mediaPlayer.pause() // } // Text { // z: parent.z + 1 // property int timeDisplayed: mediaPlayer.playbackState === MediaPlayer.PlayingState ? mediaPlayer.position : mediaPlayer.duration // anchors.bottom: parent.bottom // anchors.left: parent.left // anchors.bottomMargin: Utils.getSizeWithScreenRatio(6) // anchors.leftMargin: Utils.getSizeWithScreenRatio(6) // text: UtilsCpp.formatDuration(timeDisplayed) // color: DefaultStyle.grey_0 // font { // pixelSize: Typography.d1.pixelSize // weight: Typography.d1.weight // } // } // } MouseArea { propagateComposedEvents: false enabled: mainItem.visible anchors.fill: parent hoverEnabled: true acceptedButtons: Qt.LeftButton cursorShape: containsMouse ? Qt.PointingHandCursor : Qt.ArrowCursor // Changing cursor in MouseArea seems not to work with the Loader // Use override cursor for this case onContainsMouseChanged: { if (containsMouse) UtilsCpp.setGlobalCursor(Qt.PointingHandCursor) else UtilsCpp.restoreGlobalCursor() } onPressed: (mouse) => { mouse.accepted = true mainItem.contentGui.core.lOpenFile() } } EffectImage { anchors.centerIn: parent // visible: mediaPlayer.playbackState !== MediaPlayer.PlayingState width: Utils.getSizeWithScreenRatio(24) height: Utils.getSizeWithScreenRatio(24) imageSource: AppIcons.playFill colorizationColor: DefaultStyle.main2_0 } }