/*
- * Copyright (C) 2012-2013 jeanfi@gmail.com
+ * Copyright (C) 2012-2016 jeanfi@gmail.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
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;
+static GtkLabel *w_tasktags;
static struct task *current_task;
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);
gtk_widget_set_sensitive(GTK_WIDGET(w_project), enable);
if (!enable)
+ gtk_label_set_label(w_tasktags, "");
+
+ if (!enable)
gtk_combo_box_set_active(w_priority, 0);
gtk_widget_set_sensitive(GTK_WIDGET(w_priority), enable);
}
task = current_task;
- log_fct(__func__, "%d", task->id);
+ log_fct("%d", task->id);
buf = gtk_text_view_get_buffer(w_note);
void ui_taskpanel_init(GtkBuilder *builder)
{
- log_fct(__func__, "ENTER");
+ log_fct("ENTER");
w_note = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "tasknote"));
-
+ w_tasktags = GTK_LABEL(gtk_builder_get_object(builder, "tasktags"));
w_description = GTK_ENTRY(gtk_builder_get_object(builder,
"taskdescription"));
w_project = GTK_ENTRY(gtk_builder_get_object(builder, "taskproject"));
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,
enable(0);
- log_fct(__func__, "EXIT");
+ log_fct("EXIT");
}
static int priority_to_int(const char *str)
{
GtkTextBuffer *buf;
int priority;
+ char **tags;
+ gchar *tmp, *gtags;
if (task) {
current_task = task;
priority = priority_to_int(task->priority);
gtk_combo_box_set_active(w_priority, priority);
+ tags = task->tags;
+ gtags = NULL;
+ if (tags) {
+ while (*tags) {
+ if (gtags) {
+ tmp = g_strconcat(gtags,
+ " ",
+ *tags,
+ NULL);
+ g_free(gtags);
+ gtags = tmp;
+ } else {
+ gtags = g_strdup(*tags);
+ }
+ tags++;
+ }
+ gtk_label_set_label(w_tasktags, gtags);
+ } else {
+ gtk_label_set_label(w_tasktags, "");
+ }
+
enable(1);
} else {
current_task = NULL;
}
}
+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;
+}