From 4659cb6de52b7242058acafecada1eaf5e18ff3d Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Wed, 18 Sep 2024 09:35:06 -0500 Subject: [PATCH] trying to fix the slides not showing a newly created video_thumbnail --- .../presenter/PreviewSlideListDelegate.qml | 6 +++++ src/rust/slide_model.rs | 24 ++++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/qml/presenter/PreviewSlideListDelegate.qml b/src/qml/presenter/PreviewSlideListDelegate.qml index 8f48701..bc34a4e 100644 --- a/src/qml/presenter/PreviewSlideListDelegate.qml +++ b/src/qml/presenter/PreviewSlideListDelegate.qml @@ -50,6 +50,12 @@ Item { chosenFont: model.font text: model.text pdfIndex: model.slideIndex + Connections { + target: slideModel + function onDataChanged() { + Utils.dbg("hi") + } + } } /* WebEngineView { */ diff --git a/src/rust/slide_model.rs b/src/rust/slide_model.rs index cf2098f..8aac8bf 100644 --- a/src/rust/slide_model.rs +++ b/src/rust/slide_model.rs @@ -315,10 +315,16 @@ impl slide_model::SlideModel { mut self: Pin<&mut Self>, index: i32, ) -> bool { - let (id, index, roles) = self.as_mut().get_indices(index, SlideRoles::VideoThumbnail); + let mut vector_roles = QVector_i32::default(); + vector_roles.append(self.get_role(SlideRoles::VideoThumbnail)); + vector_roles.append(self.get_role(SlideRoles::VideoBackground)); + vector_roles.append(self.get_role(SlideRoles::ImageBackground)); + let rc = self.as_ref().count() - 1; + let tl = self.as_ref().index(0, 0, &QModelIndex::default()); + let br = self.as_ref().index(rc, 0, &QModelIndex::default()); let thread = self.qt_thread(); if let Some(slide) = - self.as_mut().rust_mut().slides.get_mut(id) + self.as_mut().rust_mut().slides.get_mut(index as usize) { if !slide.video_background.is_empty() { let path = @@ -340,9 +346,9 @@ impl slide_model::SlideModel { match thread.queue(move |mut slide_model| { slide_model.as_mut().data_changed( - &index, - &index, - &roles, + &tl, + &br, + &vector_roles, ) }) { Ok(_o) => { @@ -1223,15 +1229,15 @@ impl slide_model::SlideModel { ) -> (usize, QModelIndex, QVector_i32) { let mut vector_roles = QVector_i32::default(); vector_roles.append(self.as_ref().get_role(role)); - if let Some(index) = - self.as_ref().slides.iter().enumerate().nth(item_id) + if let Some(_slide) = + self.as_ref().slides.get(item_id as usize) { let model_index = self.as_ref().index( - index as i32, + item_id, 0, &QModelIndex::default(), ); - (index, model_index, vector_roles) + (item_id as usize, model_index, vector_roles) } else { error!(item_id, "This item appears to be missing"); (0, QModelIndex::default(), vector_roles)