This commit is contained in:
Chris Cochrun 2023-04-14 17:08:37 -05:00
parent 21e34a1c94
commit a8552f272d

View file

@ -576,20 +576,36 @@ mod slide_model {
} }
} }
for (i, slide) in slides_iter.enumerate() { if move_down {
if slide.service_item_id == destination_index { for (i, slide) in slides_iter.enumerate().rev() {
if count > 1 { if slide.service_item_id == destination_index {
dest_slide = i as i32 - count // if count > 1 {
} else { // dest_slide = i as i32 - count
// } else {
dest_slide = i as i32; dest_slide = i as i32;
println!("RUST_dest_slide: {:?}", dest_slide);
// }
break;
}
}
} else {
for (i, slide) in slides_iter.enumerate() {
if slide.service_item_id == destination_index {
// if count > 1 {
// dest_slide = i as i32 - count
// } else {
dest_slide = i as i32;
println!("RUST_dest_slide: {:?}", dest_slide);
// }
break;
} }
break;
} }
} }
println!("RUST_COUNT: {:?}", count); println!("RUST_COUNT: {:?}", count);
println!("RUST_first_slide: {:?}", first_slide); println!("RUST_first_slide: {:?}", first_slide);
println!("RUST_dest_slide: {:?}", dest_slide); println!("RUST_dest_slide: {:?}", dest_slide);
println!("RUST_len: {:?}", self.rust().slides.len());
let slides = self.slides().clone(); let slides = self.slides().clone();
let slides_iter = slides.iter(); let slides_iter = slides.iter();
@ -597,16 +613,8 @@ mod slide_model {
unsafe { unsafe {
self.as_mut().begin_reset_model(); self.as_mut().begin_reset_model();
} }
if move_down && count > 1 { self.as_mut()
self.as_mut().move_items( .move_items(first_slide as usize, dest_slide as usize, count as usize);
first_slide as usize,
dest_slide as usize - count as usize + 1,
count as usize,
);
} else {
self.as_mut()
.move_items(first_slide as usize, dest_slide as usize, count as usize);
}
if count > 1 { if count > 1 {
for (i, slide) in slides_iter for (i, slide) in slides_iter
@ -684,21 +692,24 @@ mod slide_model {
) { ) {
let end_slide = source_index + count; let end_slide = source_index + count;
println!("rust-end-slide: {:?}", end_slide); println!("rust-end-slide: {:?}", end_slide);
println!("rust-dest-slide: {:?}", dest_index);
unsafe { unsafe {
self.as_mut().begin_reset_model(); self.as_mut().begin_reset_model();
if source_index < dest_index { if source_index < dest_index {
let move_amount = dest_index - source_index; let slice_end = dest_index - end_slide;
self.as_mut().slides_mut()[source_index..dest_index].rotate_right(move_amount); // println!("rust-move_amount: {:?}", move_amount);
self.as_mut().slides_mut()[source_index..=dest_index].rotate_right(count);
} else { } else {
let move_amount = source_index - dest_index; let move_amount = source_index - dest_index;
self.as_mut().slides_mut()[source_index..dest_index].rotate_left(move_amount); println!("rust-move_amount: {:?}", move_amount);
self.as_mut().slides_mut()[dest_index..=source_index].rotate_left(count);
} }
// let drained: Vec<Slidey> = self // let drained: Vec<Slidey> = self
// .as_mut() // .as_mut()
// .slides_mut() // .slides_mut()
// .drain(source_index..end_slide) // .drain(source_index..end_slide)
// .collect(); // .collect();
// println!("rust-drained: {:?}", drained); // println!("rust-drained: {:?}", drained.len());
// for (i, slide) in drained.iter().enumerate() { // for (i, slide) in drained.iter().enumerate() {
// self.as_mut() // self.as_mut()
// .slides_mut() // .slides_mut()