getting closer to working move function

This commit is contained in:
Chris Cochrun 2023-04-13 15:09:27 -05:00
parent cf20c94c17
commit cf20d1aeb7

View file

@ -560,6 +560,7 @@ mod slide_model {
return; return;
} }
let move_down = source_index < destination_index;
let slides = self.slides().clone(); let slides = self.slides().clone();
let slides_iter = slides.iter(); let slides_iter = slides.iter();
@ -567,6 +568,23 @@ mod slide_model {
let mut dest_slide = 0; let mut dest_slide = 0;
let mut count = 0; let mut count = 0;
if move_down {
for (i, slide) in slides_iter.clone().enumerate() {
if slide.service_item_id == source_index {
first_slide = i as i32;
count = slide.slide_count;
println!("RUST_COUNT: {:?}", count);
break;
}
}
for (i, slide) in slides_iter.enumerate().rev() {
if slide.service_item_id == destination_index {
dest_slide = i as i32;
break;
}
}
} else {
for (i, slide) in slides_iter.clone().enumerate() { for (i, slide) in slides_iter.clone().enumerate() {
if slide.service_item_id == source_index { if slide.service_item_id == source_index {
first_slide = i as i32; first_slide = i as i32;
@ -582,19 +600,33 @@ mod slide_model {
break; break;
} }
} }
}
unsafe { unsafe {
self.as_mut().begin_reset_model(); self.as_mut().begin_reset_model();
} }
let slides = self.slides().clone();
let slides_iter = slides.iter();
self.as_mut().move_items(first_slide, dest_slide, count); self.as_mut().move_items(first_slide, dest_slide, count);
if count > 1 {
for (i, slide) in slides_iter
.clone()
.enumerate()
.filter(|x| x.0 >= dest_slide as usize)
.filter(|x| x.0 < (dest_slide + count) as usize)
{
if let Some(slide) = self.as_mut().slides_mut().get_mut(i) {
slide.service_item_id = destination_index;
}
println!("this one right here officer.");
}
} else {
if let Some(slide) = self.as_mut().slides_mut().get_mut(dest_slide as usize) { if let Some(slide) = self.as_mut().slides_mut().get_mut(dest_slide as usize) {
slide.service_item_id = destination_index; slide.service_item_id = destination_index;
} }
}
let slides = self.slides().clone();
let slides_iter = slides.iter();
let move_down = source_index < destination_index;
if move_down { if move_down {
for (i, slide) in slides_iter for (i, slide) in slides_iter