X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fui_taskpanel.c;h=1071f766decad608c3d4eb504f929202ecdd3f3c;hb=3dcd5c6e78cc4d92c69ce584b524cd85ad830193;hp=f1cbc1cfa168bd7958c1196c964c70b4cdc7782d;hpb=f6bf5fdf1ad7d86e996d9cd04643b5ddbcd2645b;p=ptask.git diff --git a/src/ui_taskpanel.c b/src/ui_taskpanel.c index f1cbc1c..1071f76 100644 --- a/src/ui_taskpanel.c +++ b/src/ui_taskpanel.c @@ -29,6 +29,7 @@ static GtkEntry *w_description; static GtkEntry *w_project; static GtkComboBox *w_priority; static GtkButton *w_tasksave_btn; +static GtkButton *w_taskremove_btn; static GtkButton *w_taskdone_btn; static GtkButton *w_taskcancel_btn; @@ -40,6 +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); + + if (current_task && current_task->recur) { + gtk_widget_set_sensitive(GTK_WIDGET(w_taskremove_btn), FALSE); + gtk_widget_set_tooltip_text + (GTK_WIDGET(w_taskremove_btn), + "The removal of recurrent tasks is not supported due " + "to the taskwarrior bug TW-638"); + gtk_widget_set_has_tooltip(GTK_WIDGET(w_taskremove_btn), TRUE); + } else { + gtk_widget_set_sensitive(GTK_WIDGET(w_taskremove_btn), enable); + gtk_widget_set_has_tooltip(GTK_WIDGET(w_taskremove_btn), FALSE); + } + gtk_widget_set_sensitive(GTK_WIDGET(w_taskcancel_btn), enable); buf = gtk_text_view_get_buffer(w_note); @@ -73,7 +87,7 @@ static int tasksave_clicked_cbk(GtkButton *btn, gpointer data) task = current_task; - log_fct(__func__, "%d", task->id); + log_fct("%d", task->id); buf = gtk_text_view_get_buffer(w_note); @@ -121,7 +135,7 @@ static int tasksave_clicked_cbk(GtkButton *btn, gpointer data) void ui_taskpanel_init(GtkBuilder *builder) { - log_fct(__func__, "ENTER"); + log_fct("ENTER"); w_note = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "tasknote")); @@ -133,6 +147,9 @@ void ui_taskpanel_init(GtkBuilder *builder) w_tasksave_btn = GTK_BUTTON(gtk_builder_get_object(builder, "tasksave")); + w_taskremove_btn = GTK_BUTTON(gtk_builder_get_object(builder, + "taskremove")); + g_signal_connect(w_tasksave_btn, "clicked", (GCallback)tasksave_clicked_cbk, @@ -145,7 +162,7 @@ void ui_taskpanel_init(GtkBuilder *builder) enable(0); - log_fct(__func__, "EXIT"); + log_fct("EXIT"); } static int priority_to_int(const char *str) @@ -195,3 +212,38 @@ void ui_taskpanel_update(struct task *task) } } +int taskdone_clicked_cbk(GtkButton *btn, gpointer data) +{ + if (current_task) { + tw_task_done(current_task->uuid); + refresh(); + } + + return FALSE; +} + +int taskremove_clicked_cbk(GtkButton *btn, gpointer data) +{ + log_fct_enter(); + + if (current_task) { + log_fct("uuid=%d", current_task->uuid); + tw_task_remove(current_task->uuid); + refresh(); + } + + log_fct_exit(); + + return FALSE; +} + +int taskpanel_cancel_clicked_cbk(GtkButton *btn, gpointer data) +{ + log_fct_enter(); + + ui_taskpanel_update(current_task); + + log_fct_exit(); + + return FALSE; +}