-static struct task *get_selected_task(GtkTreeView *treeview)
-{
- GtkTreePath *path;
- GtkTreeViewColumn *cols;
- struct task **tasks_cur;
- GtkTreeIter iter;
- GtkTreeModel *model;
- GValue value = {0,};
- const char *uuid;
-
- printf("get_selected_task\n");
-
- gtk_tree_view_get_cursor(treeview, &path, &cols);
-
- if (path) {
- model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
- gtk_tree_model_get_iter(model, &iter, path);
- gtk_tree_model_get_value(model, &iter, COL_UUID, &value);
-
- uuid = g_value_get_string(&value);
-
- for (tasks_cur = tasks; *tasks_cur; tasks_cur++)
- if (!strcmp((*tasks_cur)->uuid, uuid))
- return *tasks_cur;
-
- gtk_tree_path_free(path);
- }
-
- return NULL;
-}
-
-static void clear_task_panel()
-{
- GtkTextBuffer *buf;
-
- gtk_widget_set_sensitive(w_tasksave_btn, 0);
- gtk_widget_set_sensitive(w_taskdone_btn, 0);
-
- buf = gtk_text_view_get_buffer(w_note);
- gtk_text_buffer_set_text(buf, "", 0);
- gtk_widget_set_sensitive(GTK_WIDGET(w_note), 0);
-
- gtk_entry_set_text(w_description, "");
- gtk_widget_set_sensitive(GTK_WIDGET(w_description), 0);
-
- gtk_entry_set_text(w_project, "");
- gtk_widget_set_sensitive(GTK_WIDGET(w_project), 0);
-
- gtk_combo_box_set_active(w_priority, 0);
- gtk_widget_set_sensitive(GTK_WIDGET(w_priority), 0);
-}
-
-static void refresh()
-{
- GtkTreeModel *model;
- struct task **tasks_cur;
- struct task *task;
- int i;
- GtkTreeIter iter;
- int status;
- const char *project;
-
- printf("refresh\n");
- clear_task_panel();
-
- status = gtk_combo_box_get_active(w_status);
- printf("status: %d\n", status);
-
- if (tasks)
- tw_task_list_free(tasks);
-
- switch (status) {
- case 0:
- tasks = tw_get_all_tasks("pending");
- break;
- case 1:
- tasks = tw_get_all_tasks("completed");
- break;
- default:
- tasks = tw_get_all_tasks("pending");
- }
-
- model = gtk_tree_view_get_model(GTK_TREE_VIEW(w_treeview));
- gtk_list_store_clear(GTK_LIST_STORE(model));
- for (tasks_cur = tasks, i = 0; *tasks_cur; tasks_cur++, i++) {
- task = (*tasks_cur);
-
- gtk_list_store_append(GTK_LIST_STORE(model), &iter);
-
- if (task->project)
- project = task->project;
- else
- project = "";
-
- gtk_list_store_set(GTK_LIST_STORE(model),
- &iter,
- COL_ID, (*tasks_cur)->id,
- COL_DESCRIPTION, (*tasks_cur)->description,
- COL_PROJECT, project,
- COL_UUID, (*tasks_cur)->uuid,
- COL_PRIORITY, (*tasks_cur)->priority,
- -1);
- }
- printf("refresh done\n");
-}
-
-int taskdone_clicked_cbk(GtkButton *btn, gpointer data)
-{
- struct task *task;
-
- task = get_selected_task(GTK_TREE_VIEW(w_treeview));
- tw_done(task->uuid);
- refresh();
-
- return FALSE;
-}
-
-static int tasksave_clicked_cbk(GtkButton *btn, gpointer data)