From 1117d6eea2ebb50ac7b27c90e05d8078ab8db847 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Sun, 31 Mar 2024 14:34:43 -0500 Subject: [PATCH] pdf and html now properly work in slides --- src/qml/presenter/Presentation.qml | 4 ++-- src/rust/slide_model.rs | 2 ++ src/rust/slide_object.rs | 20 +++++++++++++------- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/qml/presenter/Presentation.qml b/src/qml/presenter/Presentation.qml index dbf3423..29f1106 100644 --- a/src/qml/presenter/Presentation.qml +++ b/src/qml/presenter/Presentation.qml @@ -128,7 +128,7 @@ FocusScope { chosenFont: SlideObject.font textSize: SlideObject.fontSize text: SlideObject.text - pdfIndex: SlideObject.slideIndex + pdfIndex: SlideObject.innerSlideIndex vidLoop: SlideObject.looping vidStartTime: SlideObject.videoStartTime vidEndTime: SlideObject.videoEndTime @@ -483,7 +483,7 @@ FocusScope { function nextSlideAction() { keyHandler.forceActiveFocus(); - const nextSlideIdx = currentSlide + 1; + const nextSlideIdx = SlideObject.html && (SlideObject.innerSlideIndex + 1 < SlideObject.slideSize) ? currentSlide : currentSlide + 1; const nextSlide = SlideModel.getItem(nextSlideIdx); if (nextSlideIdx > totalSlides || nextSlideIdx < 0) return; diff --git a/src/rust/slide_model.rs b/src/rust/slide_model.rs index 76bd789..90ced01 100644 --- a/src/rust/slide_model.rs +++ b/src/rust/slide_model.rs @@ -414,6 +414,8 @@ impl slide_model::SlideModel { .insert(index as usize, slide); self.as_mut().end_insert_rows(); } + let count = self.as_ref().count; + self.as_mut().set_count(count + 1); let thread = self.qt_thread(); thread::spawn(move || { thread diff --git a/src/rust/slide_object.rs b/src/rust/slide_object.rs index 1b7222e..0df456f 100644 --- a/src/rust/slide_object.rs +++ b/src/rust/slide_object.rs @@ -154,12 +154,9 @@ impl slide_object::SlideObject { let slindex = item .get(&QString::from("slideIndex")) .unwrap_or(QVariant::from(&0)); - // let slide_index = slindex.value::().unwrap_or_default(); + let inner_slide_index = + slindex.value::().unwrap_or_default(); - // let html = item - // .get(&QString::from("html")) - // .unwrap_or(QVariant::from(&false)); - // if let Some(html) = html.value::() { // if html { // debug!(?html, count, slide_index); // if slide_index > 0 && slide_index < count - 1 { @@ -175,7 +172,7 @@ impl slide_object::SlideObject { // } // } // } - debug!(slide_index, "Changing slide"); + debug!(slide_index, inner_slide_index, "Changing slide"); println!("## Slide Details ##"); let text = item @@ -322,7 +319,16 @@ impl slide_object::SlideObject { ); self.as_mut().set_html(html); - self.as_mut().set_inner_slide_index(0); + let html = item + .get(&QString::from("html")) + .unwrap_or(QVariant::from(&false)); + if let Some(html) = html.value::() { + if !html { + self.as_mut().set_inner_slide_index(inner_slide_index) + } else { + self.as_mut().set_inner_slide_index(0); + } + } self.as_mut().set_slide_index(slide_index);