From 2336c8428b6fff8f97cb71bfbe4472080ac92938 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Sat, 27 Sep 2014 13:14:11 +0200 Subject: [PATCH] avoid removal of recurrent task due to TW-638 bug of taskwarrior --- NEWS | 3 +++ src/tw.c | 7 +++++++ src/tw.h | 1 + src/ui_taskpanel.c | 14 +++++++++++++- 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 553fd16..37a430d 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,9 @@ v0.0.7 ------ * added support of 2.3.0. * added combo box for project in the new task dialog. + * disable the removal of recurrent tasks which is freezing ptask + because taskwarrior CLI is prompting a confirmation. That's the + consequence of the taskwarrior bug TW-638. v0.0.6 ------ diff --git a/src/tw.c b/src/tw.c index 6719c02..3049c0b 100644 --- a/src/tw.c +++ b/src/tw.c @@ -240,6 +240,12 @@ struct task **tw_get_all_tasks(const char *status) = parse_time(json_object_get_string(json)); else tasks[i]->start = NULL; + + json = json_object_object_get(jtask, "recur"); + if (json) + tasks[i]->recur = strdup(json_object_get_string(json)); + else + tasks[i]->recur = NULL; } tasks[n] = NULL; @@ -461,6 +467,7 @@ static void task_free(struct task *task) free(task->entry); free(task->due); free(task->start); + free(task->recur); free(task); } diff --git a/src/tw.h b/src/tw.h index 6790b96..18e3720 100644 --- a/src/tw.h +++ b/src/tw.h @@ -29,6 +29,7 @@ struct task { char *project; char *priority; char *urgency; + char *recur; struct tm *entry; struct tm *due; struct tm *start; diff --git a/src/ui_taskpanel.c b/src/ui_taskpanel.c index 5edaa54..d243391 100644 --- a/src/ui_taskpanel.c +++ b/src/ui_taskpanel.c @@ -41,7 +41,19 @@ static void enable(int enable) gtk_widget_set_sensitive(GTK_WIDGET(w_tasksave_btn), enable); gtk_widget_set_sensitive(GTK_WIDGET(w_taskdone_btn), enable); - gtk_widget_set_sensitive(GTK_WIDGET(w_taskremove_btn), enable); + + if (current_task && current_task->recur) { + gtk_widget_set_sensitive(GTK_WIDGET(w_taskremove_btn), FALSE); + gtk_widget_set_tooltip_text + (w_taskremove_btn, + "The removal of recurrent tasks is not supported due " + "to the taskwarrior bug TW-638"); + gtk_widget_set_has_tooltip(w_taskremove_btn, TRUE); + } else { + gtk_widget_set_sensitive(GTK_WIDGET(w_taskremove_btn), enable); + gtk_widget_set_has_tooltip(w_taskremove_btn, FALSE); + } + gtk_widget_set_sensitive(GTK_WIDGET(w_taskcancel_btn), enable); buf = gtk_text_view_get_buffer(w_note); -- 2.7.4