[gnome-todo] task-list: move binding code to set_property



commit 9268da66a21afe4486f3e62228d8b78ee34ca274
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Sun Aug 23 18:32:50 2015 -0300

    task-list: move binding code to set_property

 src/gtd-task-list.c |  122 +++++++++++++++++++++++---------------------------
 1 files changed, 56 insertions(+), 66 deletions(-)
---
diff --git a/src/gtd-task-list.c b/src/gtd-task-list.c
index a927cc1..b700f66 100644
--- a/src/gtd-task-list.c
+++ b/src/gtd-task-list.c
@@ -110,6 +110,42 @@ save_task_list (GtdTaskList *list)
                   list);
 }
 
+
+static gboolean
+color_to_string (GBinding     *binding,
+                 const GValue *from_value,
+                 GValue       *to_value,
+                 gpointer      user_data)
+{
+  GdkRGBA *color;
+  gchar *color_str;
+
+  color = g_value_get_boxed (from_value);
+  color_str = gdk_rgba_to_string (color);
+
+  g_value_set_string (to_value, color_str);
+
+  g_free (color_str);
+
+  return TRUE;
+}
+
+static gboolean
+string_to_color (GBinding     *binding,
+                 const GValue *from_value,
+                 GValue       *to_value,
+                 gpointer      user_data)
+{
+  GdkRGBA color;
+
+  if (!gdk_rgba_parse (&color, g_value_get_string (from_value)))
+    gdk_rgba_parse (&color, "#ffffff"); /* calendar default colour */
+
+  g_value_set_boxed (to_value, &color);
+
+  return TRUE;
+}
+
 static void
 gtd_task_list_finalize (GObject *object)
 {
@@ -183,6 +219,26 @@ gtd_task_list_set_property (GObject      *object,
 
     case PROP_SOURCE:
       g_set_object (&self->priv->source, g_value_get_object (value));
+
+      if (self->priv->source)
+        {
+          ESourceSelectable *selectable;
+
+          selectable = E_SOURCE_SELECTABLE (e_source_get_extension (self->priv->source, 
E_SOURCE_EXTENSION_TASK_LIST));
+
+          /* We are always showing the task lists */
+          e_source_selectable_set_selected (selectable, TRUE);
+
+          g_object_bind_property_full (object,
+                                       "color",
+                                       selectable,
+                                       "color",
+                                       G_BINDING_BIDIRECTIONAL,
+                                       color_to_string,
+                                       string_to_color,
+                                       object,
+                                       NULL);
+        }
       break;
 
     default:
@@ -190,78 +246,12 @@ gtd_task_list_set_property (GObject      *object,
     }
 }
 
-static gboolean
-color_to_string (GBinding     *binding,
-                 const GValue *from_value,
-                 GValue       *to_value,
-                 gpointer      user_data)
-{
-  GdkRGBA *color;
-  gchar *color_str;
-
-  color = g_value_get_boxed (from_value);
-  color_str = gdk_rgba_to_string (color);
-
-  g_value_set_string (to_value, color_str);
-
-  g_free (color_str);
-
-  return TRUE;
-}
-
-static gboolean
-string_to_color (GBinding     *binding,
-                 const GValue *from_value,
-                 GValue       *to_value,
-                 gpointer      user_data)
-{
-  GdkRGBA color;
-
-  if (!gdk_rgba_parse (&color, g_value_get_string (from_value)))
-    gdk_rgba_parse (&color, "#ffffff"); /* calendar default colour */
-
-  g_value_set_boxed (to_value, &color);
-
-  return TRUE;
-}
-
-static void
-gtd_task_list_constructed (GObject *object)
-{
-  GtdTaskListPrivate *priv;
-  GtdTaskList *list;
-
-  list = GTD_TASK_LIST (object);
-  priv = list->priv;
-
-  G_OBJECT_CLASS (gtd_task_list_parent_class)->constructed (object);
-
-  if (priv->source)
-    {
-      ESourceSelectable *selectable;
-
-      selectable = E_SOURCE_SELECTABLE (e_source_get_extension (list->priv->source, 
E_SOURCE_EXTENSION_TASK_LIST));
-
-
-      g_object_bind_property_full (object,
-                                   "color",
-                                   selectable,
-                                   "color",
-                                   G_BINDING_BIDIRECTIONAL,
-                                   color_to_string,
-                                   string_to_color,
-                                   object,
-                                   NULL);
-    }
-}
-
 static void
 gtd_task_list_class_init (GtdTaskListClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
   object_class->finalize = gtd_task_list_finalize;
-  object_class->constructed = gtd_task_list_constructed;
   object_class->get_property = gtd_task_list_get_property;
   object_class->set_property = gtd_task_list_set_property;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]