removing slides properly

By reversing order I'm removing the slides correctly now.
This commit is contained in:
Chris Cochrun 2023-04-11 15:18:38 -05:00
parent 28d6564648
commit 5470a5c0a7

View file

@ -171,12 +171,23 @@ mod slide_model {
index: i32, index: i32,
service_item: &QMap_QString_QVariant, service_item: &QMap_QString_QVariant,
) { ) {
let slides = self.rust().slides.clone(); println!("Rusty-Removal-Time: {:?}", index);
let slides = self.slides().clone();
let slides_iter = slides.iter(); let slides_iter = slides.iter();
for slide in slides_iter { for (i, slide) in slides_iter.enumerate().rev() {
if slide.service_item_id == index { if slide.service_item_id == index {
self.as_mut().remove_item(slide.slide_index); self.as_mut().remove_item(i as i32);
println!("Removing: {:?}", slide.slide_index); println!("Removing-slide: {:?}", i);
} else if slide.service_item_id > index {
if let Some(slide) = self.as_mut().slides_mut().get_mut(i) {
println!("changing-serviceid-of: {:?}", i);
println!(
"changing-serviceid-fromandto: {:?}-{:?}",
slide.service_item_id,
slide.service_item_id - 1
);
slide.service_item_id -= 1;
}
} }
} }
} }
@ -193,6 +204,7 @@ mod slide_model {
self.as_mut().slides_mut().remove(index as usize); self.as_mut().slides_mut().remove(index as usize);
self.as_mut().end_remove_rows(); self.as_mut().end_remove_rows();
} }
println!("removed-row: {:?}", index);
} }
#[qinvokable] #[qinvokable]
@ -287,7 +299,8 @@ mod slide_model {
} }
fn insert_slide(mut self: Pin<&mut Self>, slide: &Slidey, id: i32) { fn insert_slide(mut self: Pin<&mut Self>, slide: &Slidey, id: i32) {
let slide = slide.clone(); let mut slide = slide.clone();
slide.slide_index = id;
unsafe { unsafe {
self.as_mut() self.as_mut()
.begin_insert_rows(&QModelIndex::default(), id, id); .begin_insert_rows(&QModelIndex::default(), id, id);