attempt at fixing bug with slides not activating with service item

This commit is contained in:
Chris Cochrun 2023-11-16 11:21:00 -06:00
parent 4685c9eb70
commit c6700907b1
5 changed files with 55 additions and 14 deletions

View file

@ -174,7 +174,7 @@ Controls.Page {
console.log("change-service-item: " + index); console.log("change-service-item: " + index);
const item = ServiceItemC.getRust(index, ServiceItemModel); const item = ServiceItemC.getRust(index, ServiceItemModel);
currentServiceItem = index; currentServiceItem = index;
const slideId = SlideModel.findSlideIdFromServItm(index); const slideId = SlideMod.getSlideFromService(index);
currentSlide = slideId; currentSlide = slideId;
const slide = SlideModel.getItemRust(slideId, SlideMod); const slide = SlideModel.getItemRust(slideId, SlideMod);
console.log("index grabbed: " + index); console.log("index grabbed: " + index);
@ -187,7 +187,7 @@ Controls.Page {
ServiceItemModel.activate(index); ServiceItemModel.activate(index);
console.log("%%%%%%%%%"); console.log("%%%%%%%%%");
console.log(slide); console.log(slideId);
/* SlideObject.changeSlide(slide, slideId); */ /* SlideObject.changeSlide(slide, slideId); */
slideHelper.chngSlide(slide, slideId, SlideObject); slideHelper.chngSlide(slide, slideId, SlideObject);
console.log("%%%%%%%%%"); console.log("%%%%%%%%%");

View file

@ -341,6 +341,15 @@ FocusScope {
} }
} }
/* Connections { */
/* target: ServiceItemModel */
/* function onActivateChanged(index) { */
/* console.log("$$$$$$$$$$$$$$$$$$$$"); */
/* const slide = SlideModel.getSlideFromService(index); */
/* SlideMod.activate(slide); */
/* } */
/* } */
Timer { Timer {
interval: 500 interval: 500
running: false running: false

View file

@ -11,6 +11,7 @@ Item {
implicitHeight: Kirigami.Units.gridUnit * 6.5 implicitHeight: Kirigami.Units.gridUnit * 6.5
implicitWidth: Kirigami.Units.gridUnit * 9 implicitWidth: Kirigami.Units.gridUnit * 9
property bool showVidBG property bool showVidBG
/* property var previewSlidesList: parent */
/* Component.onCompleted: { */ /* Component.onCompleted: { */
/* if (model.videoBackground != "") */ /* if (model.videoBackground != "") */
/* SlideModel.thumbnailVideoRust(model.videoBackground, model.serviceItemId, index, SlideMod); */ /* SlideModel.thumbnailVideoRust(model.videoBackground, model.serviceItemId, index, SlideMod); */
@ -89,6 +90,8 @@ Item {
target: SlideMod target: SlideMod
function onActiveChanged() { function onActiveChanged() {
if (active) { if (active) {
console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
console.log(index);
previewSlidesList.currentIndex = index; previewSlidesList.currentIndex = index;
previewSlidesList.positionViewAtIndex(index, ListView.Center); previewSlidesList.positionViewAtIndex(index, ListView.Center);
} }

View file

@ -120,7 +120,9 @@ mod service_item_model {
bottom_right: &'a QModelIndex, bottom_right: &'a QModelIndex,
roles: &'a QVector_i32, roles: &'a QVector_i32,
}, },
ActiveChanged, ActiveChanged {
index: &'a i32,
},
SelectedChanged, SelectedChanged,
ItemInserted { ItemInserted {
index: &'a i32, index: &'a i32,
@ -630,7 +632,7 @@ mod service_item_model {
); );
// We use this signal generated by our signals enum to tell QML that // 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. // 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 true
} else { } else {
false false
@ -676,7 +678,7 @@ mod service_item_model {
); );
// We use this signal generated by our signals enum to tell QML that // 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. // 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 true
} else { } else {
false false

View file

@ -864,6 +864,28 @@ mod slide_model {
qvariantmap 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] #[qinvokable]
pub fn activate( pub fn activate(
mut self: Pin<&mut Self>, mut self: Pin<&mut Self>,
@ -883,16 +905,21 @@ mod slide_model {
if let Some(slide) = if let Some(slide) =
self.as_mut().slides_mut().get_mut(index as usize) self.as_mut().slides_mut().get_mut(index as usize)
{ {
println!("slide is activating {:?}", index); debug!(
println!("slide-title: {:?}", slide.service_item_id); slide = index,
println!( service_item = slide.service_item_id,
"slide-image-background: {:?}", "This slide is activating"
slide.image_background
);
println!(
"slide-video-background: {:?}",
slide.video_background
); );
// 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; slide.active = true;
self.as_mut().emit_data_changed( self.as_mut().emit_data_changed(
tl, tl,