Cut unnecessary MilkTask class.
[milk] / src / milk-task-model.c
index 605e4a5..a1d6594 100644 (file)
@@ -27,7 +27,6 @@
 
 #include "milk-task-model.h"
 #include "milk-auth.h"
-#include "milk-task.h"
 
 static void
 milk_task_model_tree_model_init (GtkTreeModelIface *iface);
@@ -84,7 +83,7 @@ milk_task_model_get_column_type (GtkTreeModel *model,
 {
         switch (column) {
                 case MILK_TASK_MODEL_COLUMN_TASK:
-                        return MILK_TYPE_TASK;
+                        return RTM_TYPE_TASK;
 
                 default:
                         g_warning (G_STRLOC ": invalid column: %d", column);
@@ -257,15 +256,14 @@ model_store_find_task (MilkTaskModel *model,
         valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (priv->store),
                         &iter);
         while (valid && !found) {
-                MilkTask *task;
-                char *task_id;
+                RtmTask *task;
 
                 gtk_tree_model_get (GTK_TREE_MODEL (priv->store), &iter,
                                         MILK_TASK_MODEL_COLUMN_TASK, &task,
                                         -1);
-                g_object_get (task, "id", &task_id, NULL);
 
-                if (!g_strcmp0 (rtm_task_get_id (task_in), task_id)) {
+                if (!g_strcmp0 (rtm_task_get_id (task_in),
+                                rtm_task_get_id (task))) {
                         *iter_in = iter;
                         found = TRUE;
                 }
@@ -310,7 +308,6 @@ update_model (MilkTaskModel *model)
         for (l = rtm_tasks; l; l = g_list_delete_link (l, l)) {
                 GtkTreeIter iter;
                 RtmTask *rtm_task;
-                MilkTask *task;
                 const char *id;
                 gboolean task_in_store;
 
@@ -329,15 +326,20 @@ update_model (MilkTaskModel *model)
                         }
                 /* Task has been changed */
                 } else if (task_in_store) {
+                        RtmTask *old_task;
                         GtkTreePath *path;
 
+                        /* rtm-glib doesn't re-use task structs when they're
+                         * updated, so we have to replace the changed */
                         gtk_tree_model_get (
                                         GTK_TREE_MODEL (priv->store), &iter,
-                                        MILK_TASK_MODEL_COLUMN_TASK, &task,
+                                        MILK_TASK_MODEL_COLUMN_TASK, &old_task,
                                         -1);
 
-                        milk_task_set_title (task,
-                                        rtm_task_get_name (rtm_task));
+                        gtk_list_store_set (
+                                        priv->store, &iter,
+                                        MILK_TASK_MODEL_COLUMN_TASK, rtm_task,
+                                        -1);
 
                         path = gtk_tree_model_get_path (
                                         GTK_TREE_MODEL (priv->store), &iter);
@@ -346,22 +348,14 @@ update_model (MilkTaskModel *model)
                                         path, &iter);
                         gtk_tree_path_free (path);
 
-                        g_object_unref (task);
+                        g_object_unref (old_task);
 
                 /* Task is new */
                 } else {
-                        /* FIXME: remove the MilkTask class; just use RtmTask
-                         * directly */
-                        task = milk_task_new (id, rtm_task_get_name (rtm_task),
-                                        /* FIXME: switch priority from int to
-                                         * string */
-                                        g_ascii_strtod (rtm_task_get_priority
-                                                        (rtm_task), NULL));
-
                         gtk_list_store_append (priv->store, &iter);
                         gtk_list_store_set (
                                         priv->store, &iter,
-                                        MILK_TASK_MODEL_COLUMN_TASK, task,
+                                        MILK_TASK_MODEL_COLUMN_TASK, rtm_task,
                                         -1);
                 }
         }
@@ -571,7 +565,7 @@ milk_task_model_init (MilkTaskModel *self)
                         g_free, g_object_unref);
 
         priv->store = gtk_list_store_new (
-                        MILK_TASK_MODEL_N_COLUMNS, MILK_TYPE_TASK);
+                        MILK_TASK_MODEL_N_COLUMNS, RTM_TYPE_TASK);
 
         g_signal_connect (priv->store, "row-changed",
                         G_CALLBACK (row_changed_cb), self);