diff --git a/src/qml/presenter/MainWindow.qml b/src/qml/presenter/MainWindow.qml index 0c656ab..24ad653 100644 --- a/src/qml/presenter/MainWindow.qml +++ b/src/qml/presenter/MainWindow.qml @@ -249,22 +249,6 @@ Controls.Page { console.log("text: " + item.text); console.log("slide_index: " + item.slideIndex); console.log("slide_count: " + item.imageCount); - /* if (item.html) { */ - /* let index = item.slideIndex; */ - /* let count = item.imageCount; */ - /* if (index > 0 && index < count - 1) { */ - /* console.log("I should advance revealy"); */ - /* if (isMoveDown) */ - /* presentation.revealNext() */ - /* else */ - /* presentation.revealPrev() */ - /* return */ - /* } */ - /* } */ - - /* presentation.stopVideo(); */ - /* pWindow.stopVideo(); */ - /* presentation.itemType = item.type; */ console.log("Time to start changing"); ServiceItemModel.activate(currentServiceItem); diff --git a/src/qml/presenter/Presentation.qml b/src/qml/presenter/Presentation.qml index d9ee7bf..bdd92c2 100644 --- a/src/qml/presenter/Presentation.qml +++ b/src/qml/presenter/Presentation.qml @@ -481,9 +481,7 @@ FocusScope { function nextSlideAction() { keyHandler.forceActiveFocus(); - if (SlideModel.next()) { - console.log("VICTORY") - } + SlideModel.next() /* const nextSlideIdx = SlideObject.html && (SlideObject.innerSlideIndex + 1 < SlideObject.slideSize) ? currentSlide : currentSlide + 1; */ /* const nextSlide = SlideModel.getItem(nextSlideIdx); */ /* if (nextSlideIdx > totalSlides || nextSlideIdx < 0) */ @@ -508,19 +506,7 @@ FocusScope { function previousSlideAction() { keyHandler.forceActiveFocus(); - const prevSlideIdx = currentSlide - 1; - const prevSlide = SlideModel.getItem(prevSlideIdx); - if (prevSlideIdx > totalSlides || prevSlideIdx < 0) - return; - console.log("currentServiceItem " + currentServiceItem); - console.log("totalSlides " + totalSlides); - console.log("currentSlide " + currentSlide); - console.log("prevSlideIdx " + prevSlideIdx); - /* changeSlide(prevSlideIdx); */ - if (SlideObject.previous(prevSlide)) { - currentSlide = prevSlideIdx; - currentServiceItem = prevSlide.serviceItemId; - } + SlideModel.prev() } function previousSlide() { diff --git a/src/rust/slide_model.rs b/src/rust/slide_model.rs index e546fec..870a97a 100644 --- a/src/rust/slide_model.rs +++ b/src/rust/slide_model.rs @@ -1122,9 +1122,26 @@ impl slide_model::SlideModel { pub fn next(mut self: Pin<&mut Self>) -> bool { if let Some(object) = unsafe { self.slide_object.as_mut() } { let object = unsafe { Pin::new_unchecked(object) }; - if let Some(slide) = self.rust().slides.get(self.id as usize + 1) { + let id = self.as_ref().id + 1; + if let Some(slide) = self.rust().slides.get(id as usize) { + object.set_slide(slide); + self.as_mut().activate(id); + self.as_mut().rust_mut().id = id; + true + } else { + false + } + } else { + false + } + } + + pub fn prev(mut self: Pin<&mut Self>) -> bool { + if let Some(object) = unsafe { self.slide_object.as_mut() } { + let object = unsafe { Pin::new_unchecked(object) }; + let id = self.as_ref().id - 1; + if let Some(slide) = self.rust().slides.get(id as usize) { object.set_slide(slide); - let id = self.as_ref().id + 1; self.as_mut().activate(id); self.as_mut().rust_mut().id = id; true