attempting to switch to a rotate method of moving slides
This commit is contained in:
parent
f2b1fdd4a6
commit
21e34a1c94
1 changed files with 30 additions and 14 deletions
|
@ -598,10 +598,14 @@ mod slide_model {
|
||||||
self.as_mut().begin_reset_model();
|
self.as_mut().begin_reset_model();
|
||||||
}
|
}
|
||||||
if move_down && count > 1 {
|
if move_down && count > 1 {
|
||||||
self.as_mut()
|
self.as_mut().move_items(
|
||||||
.move_items(first_slide, dest_slide - count + 1, count);
|
first_slide as usize,
|
||||||
|
dest_slide as usize - count as usize + 1,
|
||||||
|
count as usize,
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
self.as_mut().move_items(first_slide, dest_slide, count);
|
self.as_mut()
|
||||||
|
.move_items(first_slide as usize, dest_slide as usize, count as usize);
|
||||||
}
|
}
|
||||||
|
|
||||||
if count > 1 {
|
if count > 1 {
|
||||||
|
@ -672,22 +676,34 @@ mod slide_model {
|
||||||
println!("rust-move: {first_slide} to {dest_slide} with {count} slides");
|
println!("rust-move: {first_slide} to {dest_slide} with {count} slides");
|
||||||
}
|
}
|
||||||
|
|
||||||
fn move_items(mut self: Pin<&mut Self>, source_index: i32, dest_index: i32, count: i32) {
|
fn move_items(
|
||||||
|
mut self: Pin<&mut Self>,
|
||||||
|
source_index: usize,
|
||||||
|
dest_index: usize,
|
||||||
|
count: usize,
|
||||||
|
) {
|
||||||
let end_slide = source_index + count;
|
let end_slide = source_index + count;
|
||||||
println!("rust-end-slide: {:?}", end_slide);
|
println!("rust-end-slide: {:?}", end_slide);
|
||||||
unsafe {
|
unsafe {
|
||||||
self.as_mut().begin_reset_model();
|
self.as_mut().begin_reset_model();
|
||||||
let drained: Vec<Slidey> = self
|
if source_index < dest_index {
|
||||||
.as_mut()
|
let move_amount = dest_index - source_index;
|
||||||
.slides_mut()
|
self.as_mut().slides_mut()[source_index..dest_index].rotate_right(move_amount);
|
||||||
.drain(source_index as usize..end_slide as usize)
|
} else {
|
||||||
.collect();
|
let move_amount = source_index - dest_index;
|
||||||
println!("rust-drained: {:?}", drained);
|
self.as_mut().slides_mut()[source_index..dest_index].rotate_left(move_amount);
|
||||||
for (i, slide) in drained.iter().enumerate() {
|
|
||||||
self.as_mut()
|
|
||||||
.slides_mut()
|
|
||||||
.insert(dest_index as usize + i, slide.clone());
|
|
||||||
}
|
}
|
||||||
|
// let drained: Vec<Slidey> = self
|
||||||
|
// .as_mut()
|
||||||
|
// .slides_mut()
|
||||||
|
// .drain(source_index..end_slide)
|
||||||
|
// .collect();
|
||||||
|
// println!("rust-drained: {:?}", drained);
|
||||||
|
// for (i, slide) in drained.iter().enumerate() {
|
||||||
|
// self.as_mut()
|
||||||
|
// .slides_mut()
|
||||||
|
// .insert(dest_index + i, slide.clone());
|
||||||
|
// }
|
||||||
self.as_mut().end_reset_model();
|
self.as_mut().end_reset_model();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue