From ea74fda36340b30232bdf06de85779e2a4b8a22d Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Fri, 19 May 2023 16:01:08 -0500 Subject: [PATCH] :bug: need to get video start and end times working This is waiting till service_item_model.rs is the model actually used for ServiceList. Right now we are still using C++ so once that switches, we can add it in service_item_model. This way we don't add anymore C++ code that we are likely to throw away. --- src/qml/presenter/Presentation.qml | 2 ++ src/qml/presenter/PresentationWindow.qml | 2 ++ src/qml/presenter/Slide.qml | 3 +++ src/rust/slide_obj.rs | 6 ++++++ 4 files changed, 13 insertions(+) diff --git a/src/qml/presenter/Presentation.qml b/src/qml/presenter/Presentation.qml index ea1a701..fe82862 100644 --- a/src/qml/presenter/Presentation.qml +++ b/src/qml/presenter/Presentation.qml @@ -130,6 +130,8 @@ FocusScope { text: SlideObject.text pdfIndex: SlideObject.slideIndex vidLoop: SlideObject.looping + vidStartTime: SlideObject.videoStartTime + vidEndTime: SlideObject.videoEndTime preview: true } diff --git a/src/qml/presenter/PresentationWindow.qml b/src/qml/presenter/PresentationWindow.qml index 048f65d..2b2c386 100644 --- a/src/qml/presenter/PresentationWindow.qml +++ b/src/qml/presenter/PresentationWindow.qml @@ -59,6 +59,8 @@ Item { pdfIndex: SlideObj.slideIndex itemType: SlideObj.ty vidLoop: SlideObj.looping + vidStartTime: SlideObj.videoStartTime + vidEndTime: SlideObj.videoEndTime } Connections { diff --git a/src/qml/presenter/Slide.qml b/src/qml/presenter/Slide.qml index 11383c8..be79ff0 100644 --- a/src/qml/presenter/Slide.qml +++ b/src/qml/presenter/Slide.qml @@ -24,6 +24,8 @@ Item { property url videoSource property url audioSource property bool vidLoop + property real vidStartTime + property real vidEndTime property int pdfIndex property string chosenFont: "Quicksand" property string text @@ -85,6 +87,7 @@ Item { onTriggered: { /* showPassiveNotification("YIPPEEE!") */ mpv.loadFile(videoSource.toString()); + mpv.seek(vidStartTime) if (editMode) { console.log("WHY AREN'T YOU PASUING!"); pauseTimer.restart(); diff --git a/src/rust/slide_obj.rs b/src/rust/slide_obj.rs index 6137d20..b862bb3 100644 --- a/src/rust/slide_obj.rs +++ b/src/rust/slide_obj.rs @@ -211,6 +211,12 @@ mod slide_obj { self.as_mut().set_slide_size(slide_size); } } + let video_start_time = item + .get(&QString::from("videoStartTime")) + .unwrap_or(QVariant::from(&0.0)); + if let Some(int) = video_start_time.value::() { + self.as_mut().set_video_start_time(int) + } let icount = item .get(&QString::from("imageCount")) .unwrap_or(QVariant::from(&1));