(no commit message)
[ptask.git] / src / main.c
index 78beb8f..b39f554 100644 (file)
@@ -69,14 +69,14 @@ static void clear_task_panel()
        GtkTextBuffer *buf;
 
        gtk_widget_set_sensitive(w_tasksave_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);
 }
@@ -94,16 +94,16 @@ static void refresh()
 
        status = gtk_combo_box_get_active(w_status);
        printf("status: %d\n", status);
-       
+
        switch (status) {
        case 0:
-               tasks = get_all_tasks("pending");
+               tasks = tw_get_all_tasks("pending");
                break;
        case 1:
-               tasks = get_all_tasks("completed");
+               tasks = tw_get_all_tasks("completed");
                break;
        default:
-               tasks = get_all_tasks("pending");
+               tasks = tw_get_all_tasks("pending");
        }
 
        model = gtk_tree_view_get_model(GTK_TREE_VIEW(w_treeview));
@@ -131,7 +131,7 @@ static int tasksave_clicked_cbk(GtkButton *btn, gpointer data)
 {
        struct task *task;
        GtkTextBuffer *buf;
-       char *txt, *opts;
+       char *txt;
        GtkTextIter sIter, eIter;
        const char *ctxt;
 
@@ -152,26 +152,19 @@ static int tasksave_clicked_cbk(GtkButton *btn, gpointer data)
        }
 
        ctxt = gtk_entry_get_text(w_description);
-       txt = escape(ctxt);
+       if (!task->description || strcmp(ctxt, task->description))
+               tw_modify_description(task->uuid, ctxt);
 
-       opts = malloc(1
-                     + strlen(task->uuid)
-                     + strlen(" modify description:\"")
-                     + strlen(txt)
-                     + strlen("\"")
-                     + 1);
-       sprintf(opts, " %s modify \"%s\"", task->uuid, txt);
-
-       task_exec(opts);
-
-       free(txt);
+       ctxt = gtk_entry_get_text(w_project);
+       if (!task->project || strcmp(ctxt, task->project))
+               tw_modify_project(task->uuid, ctxt);
 
        refresh();
 
        return FALSE;
 }
 
-static int refresh_clicked_cbk(GtkButton *btn, gpointer data)
+int refresh_clicked_cbk(GtkButton *btn, gpointer data)
 {
        printf("refresh_clicked_cbk\n");
        refresh();
@@ -250,6 +243,8 @@ int main(int argc, char **argv)
 
        refresh();
 
+       gtk_builder_connect_signals(builder, NULL);
+
        g_signal_connect(w_treeview,
                         "cursor-changed", (GCallback)cursor_changed_cbk,
                         tasks);
@@ -262,9 +257,9 @@ int main(int argc, char **argv)
        gtk_widget_set_sensitive(btn, 0);
        w_tasksave_btn = btn;
 
-       btn = GTK_WIDGET(gtk_builder_get_object(builder, "refresh"));
+       /*btn = GTK_WIDGET(gtk_builder_get_object(builder, "refresh"));
        g_signal_connect(btn,
-                        "clicked", (GCallback)refresh_clicked_cbk, tasks);
+       "clicked", (GCallback)refresh_clicked_cbk, tasks);*/
 
        g_object_unref(G_OBJECT(builder));