avoid removal of recurrent task due to TW-638 bug of taskwarrior
authorJean-Philippe Orsini <jeanfi@gmail.com>
Sat, 27 Sep 2014 11:14:11 +0000 (13:14 +0200)
committerJean-Philippe Orsini <jeanfi@gmail.com>
Sat, 27 Sep 2014 11:14:11 +0000 (13:14 +0200)
NEWS
src/tw.c
src/tw.h
src/ui_taskpanel.c

diff --git a/NEWS b/NEWS
index 553fd16..37a430d 100644 (file)
--- 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
 ------
index 6719c02..3049c0b 100644 (file)
--- 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);
 }
index 6790b96..18e3720 100644 (file)
--- 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;
index 5edaa54..d243391 100644 (file)
@@ -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);