Turn MilkTask into a proper GObject and use it directly in MilkTaskModel
[milk] / src / milk-main-window.c
index 91faeed..be74c98 100644 (file)
@@ -25,6 +25,7 @@
 #include <hildon/hildon.h>
 
 #include "milk-main-window.h"
+#include "milk-task.h"
 #include "milk-task-model.h"
 
 G_DEFINE_TYPE (MilkMainWindow, milk_main_window, HILDON_TYPE_WINDOW)
@@ -403,6 +404,26 @@ create_menu (gpointer user_data)
 }
 
 static void
+contact_column_render_func (GtkCellLayout   *cell_layout,
+                            GtkCellRenderer *renderer,
+                            GtkTreeModel    *model,
+                            GtkTreeIter     *iter,
+                            gpointer         user_data)
+{
+        MilkTask *task;
+        char *title;
+
+        gtk_tree_model_get (
+                        model, iter, MILK_TASK_MODEL_COLUMN_TASK, &task, -1);
+
+        g_object_get (task, "title", &title, NULL);
+        g_object_set (renderer, "text", title, NULL);
+
+        g_free (title);
+        g_object_unref (task);
+}
+
+static void
 milk_main_window_constructed (GObject* object)
 {
         MilkMainWindow *self = MILK_MAIN_WINDOW (object);
@@ -434,18 +455,21 @@ milk_main_window_constructed (GObject* object)
         model = GTK_TREE_MODEL (milk_task_model_new ());
         w = hildon_touch_selector_new ();
 
+
         renderer = gtk_cell_renderer_text_new ();
         g_object_set (renderer,
                         "ellipsize", PANGO_ELLIPSIZE_END,
                         NULL);
-        col = hildon_touch_selector_append_column (HILDON_TOUCH_SELECTOR (w),
-                        model, renderer,
-                        "text", MILK_TASK_MODEL_COLUMN_TITLE,
+
+        col = hildon_touch_selector_append_column (
+                        HILDON_TOUCH_SELECTOR (w), model, NULL, NULL);
+        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (col), renderer, TRUE);
+        gtk_cell_layout_set_cell_data_func (
+                        GTK_CELL_LAYOUT (col), renderer,
+                        (GtkTreeCellDataFunc) contact_column_render_func, self,
                         NULL);
         g_object_unref (model);
 
-        hildon_touch_selector_column_set_text_column (
-                        col, MILK_TASK_MODEL_COLUMN_TITLE);
         hildon_touch_selector_set_column_selection_mode (
                         HILDON_TOUCH_SELECTOR (w),
                         HILDON_TOUCH_SELECTOR_SELECTION_MODE_MULTIPLE);