fixed i18n support
[ptask.git] / src / main.c
index 18c46eb..8dc68f6 100644 (file)
 
 #include <json/json.h>
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
+#include "note.h"
 #include "tw.h"
 
 static struct task **tasks;
@@ -112,6 +114,9 @@ static void refresh()
        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");
@@ -171,17 +176,16 @@ static int tasksave_clicked_cbk(GtkButton *btn, gpointer data)
 
        printf("tasksave_clicked_cbk %d\n", task->id);
 
-       if (task->note) {
-               buf = gtk_text_view_get_buffer(w_note);
+       buf = gtk_text_view_get_buffer(w_note);
 
-               gtk_text_buffer_get_iter_at_offset(buf, &sIter, 0);
-               gtk_text_buffer_get_iter_at_offset(buf, &eIter, -1);
-               txt = gtk_text_buffer_get_text(buf, &sIter, &eIter, TRUE);
+       gtk_text_buffer_get_iter_at_offset(buf, &sIter, 0);
+       gtk_text_buffer_get_iter_at_offset(buf, &eIter, -1);
+       txt = gtk_text_buffer_get_text(buf, &sIter, &eIter, TRUE);
 
-               txt = escape(txt);
+       printf("note=%s\n", txt);
 
-               printf("%s\n", txt);
-       }
+       if (!task->note || strcmp(txt, task->note))
+               note_put(task->uuid, txt);
 
        ctxt = gtk_entry_get_text(w_description);
        if (!task->description || strcmp(ctxt, task->description))
@@ -224,6 +228,15 @@ int refresh_clicked_cbk(GtkButton *btn, gpointer data)
        return FALSE;
 }
 
+static gboolean delete_event_cbk(GtkWidget *w, GdkEvent *evt, gpointer data)
+{
+       gtk_widget_destroy(w);
+       gtk_main_quit();
+
+       return FALSE;
+}
+
+
 int newtask_clicked_cbk(GtkButton *btn, gpointer data)
 {
        gint result;
@@ -237,7 +250,7 @@ int newtask_clicked_cbk(GtkButton *btn, gpointer data)
        builder = gtk_builder_new();
        gtk_builder_add_from_file
                (builder,
-                PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "gtask.glade",
+                PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "ptask.glade",
                 NULL);
        diag = GTK_DIALOG(gtk_builder_get_object(builder, "diag_tasknew"));
        gtk_builder_connect_signals(builder, NULL);
@@ -364,14 +377,24 @@ int main(int argc, char **argv)
        GtkBuilder *builder;
        GtkTreeModel *model;
 
+       setlocale(LC_ALL, "");
+
+#if ENABLE_NLS
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+#endif
+
        gtk_init(NULL, NULL);
        builder = gtk_builder_new();
        gtk_builder_add_from_file
                (builder,
-                PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "gtask.glade",
+                PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "ptask.glade",
                 NULL);
        window = GTK_WIDGET(gtk_builder_get_object(builder, "window"));
 
+       g_signal_connect(window, "delete_event",
+                        G_CALLBACK(delete_event_cbk), NULL);
+
        w_treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "treeview"));
        model = gtk_tree_view_get_model(GTK_TREE_VIEW(w_treeview));
        gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(model),