[gnome-todo] task-list: move binding code to set_property
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo] task-list: move binding code to set_property
- Date: Sun, 23 Aug 2015 21:33:11 +0000 (UTC)
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]