diff --git a/src/qml/presenter/MainWindow.qml b/src/qml/presenter/MainWindow.qml index a893f67..392a577 100644 --- a/src/qml/presenter/MainWindow.qml +++ b/src/qml/presenter/MainWindow.qml @@ -174,7 +174,7 @@ Controls.Page { console.log("change-service-item: " + index); const item = ServiceItemC.getRust(index, ServiceItemModel); currentServiceItem = index; - const slideId = SlideModel.findSlideIdFromServItm(index); + const slideId = SlideMod.getSlideFromService(index); currentSlide = slideId; const slide = SlideModel.getItemRust(slideId, SlideMod); console.log("index grabbed: " + index); @@ -187,7 +187,7 @@ Controls.Page { ServiceItemModel.activate(index); console.log("%%%%%%%%%"); - console.log(slide); + console.log(slideId); /* SlideObject.changeSlide(slide, slideId); */ slideHelper.chngSlide(slide, slideId, SlideObject); console.log("%%%%%%%%%"); diff --git a/src/qml/presenter/Presentation.qml b/src/qml/presenter/Presentation.qml index 1903f84..bf64d3f 100644 --- a/src/qml/presenter/Presentation.qml +++ b/src/qml/presenter/Presentation.qml @@ -341,6 +341,15 @@ FocusScope { } } + /* Connections { */ + /* target: ServiceItemModel */ + /* function onActivateChanged(index) { */ + /* console.log("$$$$$$$$$$$$$$$$$$$$"); */ + /* const slide = SlideModel.getSlideFromService(index); */ + /* SlideMod.activate(slide); */ + /* } */ + /* } */ + Timer { interval: 500 running: false diff --git a/src/qml/presenter/PreviewSlideListDelegate.qml b/src/qml/presenter/PreviewSlideListDelegate.qml index f651a46..c698234 100644 --- a/src/qml/presenter/PreviewSlideListDelegate.qml +++ b/src/qml/presenter/PreviewSlideListDelegate.qml @@ -11,6 +11,7 @@ Item { implicitHeight: Kirigami.Units.gridUnit * 6.5 implicitWidth: Kirigami.Units.gridUnit * 9 property bool showVidBG + /* property var previewSlidesList: parent */ /* Component.onCompleted: { */ /* if (model.videoBackground != "") */ /* SlideModel.thumbnailVideoRust(model.videoBackground, model.serviceItemId, index, SlideMod); */ @@ -89,6 +90,8 @@ Item { target: SlideMod function onActiveChanged() { if (active) { + console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"); + console.log(index); previewSlidesList.currentIndex = index; previewSlidesList.positionViewAtIndex(index, ListView.Center); } diff --git a/src/rust/service_item_model.rs b/src/rust/service_item_model.rs index aeab708..84c751c 100644 --- a/src/rust/service_item_model.rs +++ b/src/rust/service_item_model.rs @@ -120,7 +120,9 @@ mod service_item_model { bottom_right: &'a QModelIndex, roles: &'a QVector_i32, }, - ActiveChanged, + ActiveChanged { + index: &'a i32, + }, SelectedChanged, ItemInserted { index: &'a i32, @@ -630,7 +632,7 @@ mod service_item_model { ); // We use this signal generated by our signals enum to tell QML that // the active service_item has changed which is used to reposition views. - self.as_mut().emit_active_changed(); + self.as_mut().emit_active_changed(&index); true } else { false @@ -676,7 +678,7 @@ mod service_item_model { ); // We use this signal generated by our signals enum to tell QML that // the active service_item has changed which is used to reposition views. - self.as_mut().emit_active_changed(); + // self.as_mut().emit_active_changed(index); true } else { false diff --git a/src/rust/slide_model.rs b/src/rust/slide_model.rs index 5a27b0b..de6ca42 100644 --- a/src/rust/slide_model.rs +++ b/src/rust/slide_model.rs @@ -864,6 +864,28 @@ mod slide_model { qvariantmap } + #[qinvokable] + pub fn get_slide_from_service( + self: Pin<&mut Self>, + index: i32, + ) -> i32 { + let slides = self.slides().clone(); + let slides_iter = slides.iter(); + debug!( + service_item = index, + "Getting slide from this item" + ); + let mut id = 0; + for (i, slide) in slides_iter + .filter(|slide| slide.service_item_id == index) + .enumerate() + { + id = i as i32; + break; + } + id + } + #[qinvokable] pub fn activate( mut self: Pin<&mut Self>, @@ -883,16 +905,21 @@ mod slide_model { if let Some(slide) = self.as_mut().slides_mut().get_mut(index as usize) { - println!("slide is activating {:?}", index); - println!("slide-title: {:?}", slide.service_item_id); - println!( - "slide-image-background: {:?}", - slide.image_background - ); - println!( - "slide-video-background: {:?}", - slide.video_background + debug!( + slide = index, + service_item = slide.service_item_id, + "This slide is activating" ); + // println!("slide is activating {:?}", index); + // println!("slide-title: {:?}", slide.service_item_id); + // println!( + // "slide-image-background: {:?}", + // slide.image_background + // ); + // println!( + // "slide-video-background: {:?}", + // slide.video_background + // ); slide.active = true; self.as_mut().emit_data_changed( tl,