X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fui_taskpanel.c;h=d2433910785b39f569f051a1b3e6063e1ddbe899;hb=2336c8428b6fff8f97cb71bfbe4472080ac92938;hp=f6c27cfd804dd2be271b7361b2d624a78fb13c7d;hpb=b74d6f14292a5c1bc859fb52f3e4ab6cb5848f9c;p=ptask.git diff --git a/src/ui_taskpanel.c b/src/ui_taskpanel.c index f6c27cf..d243391 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 + (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); @@ -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,9 +147,12 @@ void ui_taskpanel_init(GtkBuilder *builder) w_tasksave_btn = GTK_BUTTON(gtk_builder_get_object(builder, "tasksave")); - g_signal_connect(w_tasksave_btn, - "clicked", - (GCallback)tasksave_clicked_cbk, + w_taskremove_btn = GTK_BUTTON(gtk_builder_get_object(builder, + "taskremove")); + + g_signal_connect(w_tasksave_btn, + "clicked", + (GCallback)tasksave_clicked_cbk, NULL); w_taskdone_btn = GTK_BUTTON(gtk_builder_get_object(builder, @@ -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; +}