Compare commits

...

2 Commits

Author SHA1 Message Date
xeruf 49d8eef29c fix(tasks): wrong position for immediate task entering 2024-10-15 15:42:17 +02:00
xeruf 74fff5a2b1 fix(main): only parse single-digit view depths 2024-10-15 03:28:40 +02:00
2 changed files with 12 additions and 8 deletions

View File

@ -686,15 +686,20 @@ async fn main() -> Result<()> {
} else { } else {
tasks.clear_filters(); tasks.clear_filters();
} }
} else if let Ok(depth) = remaining.parse::<usize>() { } else {
match remaining.parse::<usize>() {
Ok(depth) if depth < 10 => {
if pos != tasks.get_position_ref() { if pos != tasks.get_position_ref() {
tasks.move_to(pos.cloned()); tasks.move_to(pos.cloned());
} }
tasks.set_view_depth(depth); tasks.set_view_depth(depth);
} else { }
_ => {
tasks.filter_or_create(pos.cloned().as_ref(), &remaining).map(|id| tasks.move_to(Some(id))); tasks.filter_or_create(pos.cloned().as_ref(), &remaining).map(|id| tasks.move_to(Some(id)));
} }
} }
}
}
Some('/') => if arg.is_none() { Some('/') => if arg.is_none() {
tasks.move_to(None); tasks.move_to(None);

View File

@ -702,9 +702,8 @@ impl TasksRelay {
if filtered.is_empty() { if filtered.is_empty() {
filtered = filtered_fuzzy; filtered = filtered_fuzzy;
} }
let pos = self.get_position_ref();
let immediate = filtered.iter().filter( let immediate = filtered.iter().filter(
|t| self.get_by_id(t).is_some_and(|t| t.parent_id() == pos)).collect_vec(); |t| self.get_by_id(t).is_some_and(|t| t.parent_id() == position)).collect_vec();
if immediate.len() == 1 { if immediate.len() == 1 {
return immediate.into_iter().cloned().collect_vec(); return immediate.into_iter().cloned().collect_vec();
} }