Skip to content

Commit

Permalink
Fixed bugs in delete batch operation
Browse files Browse the repository at this point in the history
  • Loading branch information
nimaaskarian committed Mar 11, 2024
1 parent f6fd264 commit 293ad64
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
15 changes: 11 additions & 4 deletions src/todo_app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,20 +50,27 @@ impl App {

pub fn do_commands_on_selected(&mut self) -> bool {
let mut should_write = false;
let mut index_shift = 0;
for (iter_index, sel_index) in self.selected.clone().iter().enumerate() {
if index_shift > *sel_index || index_shift > iter_index {
break
}
let sel_index = *sel_index - index_shift;
let iter_index = iter_index - iter_index;
if let Some(priority) = self.args.set_selected_priority {
self.todo_list[*sel_index].set_priority(priority as i8);
self.todo_list[sel_index].set_priority(priority as i8);
}
if let Some(message) = self.args.set_selected_message.clone() {
self.todo_list[*sel_index].set_message(message);
self.todo_list[sel_index].set_message(message);
}
if self.args.delete_selected {
self.todo_list.remove(*sel_index);
self.todo_list.remove(sel_index);
self.selected.remove(iter_index);
index_shift += 1;
should_write = true;
}
if self.args.done_selected {
self.todo_list[*sel_index].toggle_done();
self.todo_list[sel_index].toggle_done();
if !self.args.show_done {
self.selected.remove(iter_index);
}
Expand Down
3 changes: 2 additions & 1 deletion src/todo_app/todo_list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,8 @@ impl TodoList {
if index < size {
self.undone.remove(index)
} else {
self.done.remove(index - size)
let index = index - size;
self.done.remove(index)
}

}
Expand Down

0 comments on commit 293ad64

Please sign in to comment.