From 1b216870ebb7d424f80d7ff2ff17c3b43a7f4521 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Sun, 4 Jun 2023 03:22:57 +0200 Subject: [PATCH] Fix playable media playback --- .../qml/delegates/PlayableMediaMessage.qml | 35 +++++++++---------- resources/qml/ui/media/MediaControls.qml | 12 +++---- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/resources/qml/delegates/PlayableMediaMessage.qml b/resources/qml/delegates/PlayableMediaMessage.qml index 60a61372..fb7bf0cc 100644 --- a/resources/qml/delegates/PlayableMediaMessage.qml +++ b/resources/qml/delegates/PlayableMediaMessage.qml @@ -25,9 +25,9 @@ Item { property double divisor: isReply ? 4 : 2 property int tempWidth: originalWidth < 1? 400: originalWidth implicitWidth: type == MtxEvent.VideoMessage ? Math.round(tempWidth*Math.min((timelineView.height/divisor)/(tempWidth*proportionalHeight), 1)) : 500 - width: Math.min(parent.width, implicitWidth) + width: Math.min(parent?.width ?? implicitWidth, implicitWidth) height: (type == MtxEvent.VideoMessage ? width*proportionalHeight : 80) + fileInfoLabel.height - implicitHeight: height + //implicitHeight: height property int metadataWidth property bool fitsMetadata: (parent.width - fileInfoLabel.width) > metadataWidth+4 @@ -73,29 +73,28 @@ Item { } - } + MediaControls { + id: mediaControls - MediaControls { - id: mediaControls - - anchors.left: content.left - anchors.right: content.right - anchors.bottom: fileInfoLabel.top - playingVideo: type == MtxEvent.VideoMessage - positionValue: mxcmedia.position - duration: mediaLoaded ? mxcmedia.duration : content.duration - mediaLoaded: mxcmedia.loaded - mediaState: mxcmedia.state - onPositionChanged: mxcmedia.position = position - onPlayPauseActivated: mxcmedia.state == MediaPlayer.PlayingState ? mxcmedia.pause() : mxcmedia.play() - onLoadActivated: mxcmedia.eventId = eventId + anchors.left: videoContainer.left + anchors.right: videoContainer.right + anchors.bottom: videoContainer.bottom + playingVideo: type == MtxEvent.VideoMessage + positionValue: mxcmedia.position + duration: mediaLoaded ? mxcmedia.duration : content.duration + mediaLoaded: mxcmedia.loaded + mediaState: mxcmedia.playbackState + onPositionChanged: mxcmedia.position = position + onPlayPauseActivated: mxcmedia.playbackState == MediaPlayer.PlayingState ? mxcmedia.pause() : mxcmedia.play() + onLoadActivated: mxcmedia.eventId = eventId + } } // information about file name and file size Label { id: fileInfoLabel - anchors.bottom: content.bottom + anchors.top: videoContainer.bottom text: body + " [" + filesize + "]" textFormat: Text.RichText elide: Text.ElideRight diff --git a/resources/qml/ui/media/MediaControls.qml b/resources/qml/ui/media/MediaControls.qml index a48f15ea..bd5f6ddc 100644 --- a/resources/qml/ui/media/MediaControls.qml +++ b/resources/qml/ui/media/MediaControls.qml @@ -4,11 +4,11 @@ import "../" import "../../" -import QtMultimedia 5.15 -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import im.nheko 1.0 +import QtMultimedia +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import im.nheko Rectangle { id: control @@ -130,7 +130,7 @@ Rectangle { NhekoSlider { id: volumeSlider - property real desiredVolume: QtMultimedia.convertVolume(volumeSlider.value, QtMultimedia.LogarithmicVolumeScale, QtMultimedia.LinearVolumeScale) + property real desiredVolume: volumeSlider.value state: "" Layout.alignment: Qt.AlignLeft