diff --git a/package/contents/ui/config.qml b/package/contents/ui/config.qml index 98f3787..f1b28d1 100644 --- a/package/contents/ui/config.qml +++ b/package/contents/ui/config.qml @@ -199,18 +199,20 @@ Kirigami.FormLayout { Utils.updateConfig() } } - Button { - icon.name: "preferences-other" - enabled: true - onClicked: { - dialogPlaybackRateSpeed.value = videosConfig[modelData].playbackRate - videoConfig.filename = videosConfig[modelData].filename - videoConfig.index = index - videoConfig.open() - } + } + + Button { + icon.name: "preferences-other" + enabled: true + onClicked: { + dialogPlaybackRateSpeed.value = videosConfig[modelData].playbackRate + videoConfig.filename = videosConfig[modelData].filename + videoConfig.index = index + videoConfig.open() } } - Button{ + + Button { icon.name: "edit-delete-remove" onClicked: { videosConfig.splice(index,1) @@ -709,41 +711,87 @@ Kirigami.FormLayout { property real speed property string filename: "" - Kirigami.FormLayout { - RowLayout { - Kirigami.FormData.label: i18n("Playback speed:") - Slider { - id: dialogPlaybackRateSpeed - from: 0 - to: 2 - value: videoConfig.speed - onValueChanged: { - videoConfig.speed = value + onOpened: { + videoPlayer.player = Qt.createQmlObject(` + import QtMultimedia + + Video { + id: videoPlayer + anchors.fill: parent + loops: MediaPlayer.Infinite + source: "" + autoPlay: true + }`, + videoPlayer + ) + + videoPlayer.player.source = videoConfig.filename + videoPlayer.player.playbackRate = videoConfig.speed || cfg_PlaybackRate + } + + onSpeedChanged: { + videoPlayer.player.playbackRate = videoConfig.speed || cfg_PlaybackRate + } + + Column { + Rectangle { + //Mini 16/9 + width: 400 + height: 236 + color: "transparent" + + id: videoPlayer + + property var player + } + + Kirigami.FormLayout { + RowLayout { + Kirigami.FormData.label: i18n("Playback speed:") + Slider { + id: dialogPlaybackRateSpeed + from: 0 + to: 2 + value: videoConfig.speed + onValueChanged: { + videoConfig.speed = value + } } - } - Label { - text: parseFloat(dialogPlaybackRateSpeed.value).toFixed(2) - font.features: { "tnum": 1 } - } - Button { - icon.name: "edit-undo-symbolic" - flat: true - onClicked: { - dialogPlaybackRateSpeed.value = 0.0 + Label { + text: parseFloat(dialogPlaybackRateSpeed.value).toFixed(2) + font.features: { "tnum": 1 } + } + Button { + icon.name: "edit-undo-symbolic" + flat: true + onClicked: { + dialogPlaybackRateSpeed.value = 0.0 + } + ToolTip.text: i18n("Reset to default") + ToolTip.visible: hovered + } + Kirigami.ContextualHelpButton { + toolTipText: i18n("A value other than 0.0 overrides the global Playback speed for this video.") } - ToolTip.text: i18n("Reset to default") - ToolTip.visible: hovered - } - Kirigami.ContextualHelpButton { - toolTipText: i18n("A value other than 0.0 overrides the global Playback speed for this video.") } } } + function destroyVideoPlayer(){ + videoPlayer.player.destroy() + videoPlayer.player = null + gc() + } + onAccepted: { videosConfig[index].playbackRate = speed + destroyVideoPlayer() Utils.updateConfig() } + + onRejected: { + destroyVideoPlayer() + } } Component.onCompleted: {