Skip to content
118 changes: 83 additions & 35 deletions package/contents/ui/config.qml
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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: {
Expand Down