From 1a4bf2b0a2a54393c401522611f85c2637d1de88 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Sun, 17 Jan 2016 20:04:25 +0100 Subject: Add a "hide completed" view to the todo panel Add a second view to the todo panel that hides all completed items. Signed-off-by: Lukas Fleischer --- src/todo.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/todo.c') diff --git a/src/todo.c b/src/todo.c index 9869a1e..707628c 100644 --- a/src/todo.c +++ b/src/todo.c @@ -43,10 +43,23 @@ llist_t todolist; +static int todo_is_uncompleted(struct todo *todo, void *cbdata) +{ + return todo->id >= 0; +} + /* Returns a structure containing the selected item. */ -struct todo *todo_get_item(int item_number) +struct todo *todo_get_item(int item_number, int skip_completed) { - return LLIST_GET_DATA(LLIST_NTH(&todolist, item_number)); + llist_item_t *i; + + if (skip_completed) + i = LLIST_FIND_NTH(&todolist, item_number, NULL, + todo_is_uncompleted); + else + i = LLIST_NTH(&todolist, item_number); + + return LLIST_GET_DATA(i); } static int todo_cmp_id(struct todo *a, struct todo *b) -- cgit v1.2.3-54-g00ecf