diff options
Diffstat (limited to 'e-util')
-rw-r--r-- | e-util/e-icon-factory.c | 12 | ||||
-rw-r--r-- | e-util/e-signature.c | 2 | ||||
-rw-r--r-- | e-util/gconf-bridge.c | 1238 |
3 files changed, 626 insertions, 626 deletions
diff --git a/e-util/e-icon-factory.c b/e-util/e-icon-factory.c index 33e62a842a..a374a6dcfe 100644 --- a/e-util/e-icon-factory.c +++ b/e-util/e-icon-factory.c @@ -110,14 +110,14 @@ e_icon_factory_get_icon (const gchar *icon_name, g_clear_error (&error); /* Fallback to missing image */ - pixbuf = gtk_icon_theme_load_icon ( - icon_theme, GTK_STOCK_MISSING_IMAGE, + pixbuf = gtk_icon_theme_load_icon ( + icon_theme, GTK_STOCK_MISSING_IMAGE, height, 0, &error); - if (error != NULL) { + if (error != NULL) { g_error ("%s", error->message); g_clear_error (&error); - } + } } return pixbuf; @@ -164,8 +164,8 @@ gchar * e_icon_factory_create_thumbnail (const gchar *filename) { static GnomeDesktopThumbnailFactory *thumbnail_factory = NULL; - struct stat file_stat; - gchar *thumbnail = NULL; + struct stat file_stat; + gchar *thumbnail = NULL; g_return_val_if_fail (filename != NULL, NULL); diff --git a/e-util/e-signature.c b/e-util/e-signature.c index 1ac5616eef..07e4b2ea33 100644 --- a/e-util/e-signature.c +++ b/e-util/e-signature.c @@ -117,7 +117,7 @@ xml_set_content (xmlNodePtr node, gchar *buf, *new_val; buf = (gchar *)xmlNodeGetContent (node); - new_val = g_strdup (buf); + new_val = g_strdup (buf); xmlFree (buf); /* We can use strcmp here whether the value is UTF8 or diff --git a/e-util/gconf-bridge.c b/e-util/gconf-bridge.c index e2e83246a5..ee2f33e231 100644 --- a/e-util/gconf-bridge.c +++ b/e-util/gconf-bridge.c @@ -114,10 +114,10 @@ static GConfBridge *bridge = NULL; /* Global GConfBridge object */ static void destroy_bridge (void) { - g_hash_table_destroy (bridge->bindings); - g_object_unref (bridge->client); + g_hash_table_destroy (bridge->bindings); + g_object_unref (bridge->client); - g_free (bridge); + g_free (bridge); } /** @@ -130,20 +130,20 @@ destroy_bridge (void) GConfBridge * gconf_bridge_get (void) { - if (bridge) - return bridge; + if (bridge) + return bridge; - gconf_bridge_install_default_error_handler (); + gconf_bridge_install_default_error_handler (); - bridge = g_new (GConfBridge, 1); + bridge = g_new (GConfBridge, 1); - bridge->client = gconf_client_get_default (); - bridge->bindings = g_hash_table_new_full (NULL, NULL, NULL, - (GDestroyNotify) unbind); + bridge->client = gconf_client_get_default (); + bridge->bindings = g_hash_table_new_full (NULL, NULL, NULL, + (GDestroyNotify) unbind); - g_atexit (destroy_bridge); + g_atexit (destroy_bridge); - return bridge; + return bridge; } /** @@ -158,20 +158,20 @@ gconf_bridge_get (void) GConfClient * gconf_bridge_get_client (GConfBridge *bridge) { - g_return_val_if_fail (bridge != NULL, NULL); + g_return_val_if_fail (bridge != NULL, NULL); - return bridge->client; + return bridge->client; } /* Generate an ID for a new binding */ static guint new_id (void) { - static guint id_counter = 0; + static guint id_counter = 0; - id_counter++; + id_counter++; - return id_counter; + return id_counter; } /* @@ -183,186 +183,186 @@ static void prop_binding_sync_pref_to_prop (PropBinding *binding, GConfValue *pref_value) { - GValue src_value, value; + GValue src_value, value; /* Make sure we don't enter an infinite synchronizing loop */ - g_signal_handler_block (binding->object, binding->prop_notify_id); + g_signal_handler_block (binding->object, binding->prop_notify_id); - memset (&src_value, 0, sizeof (GValue)); + memset (&src_value, 0, sizeof (GValue)); /* First, convert GConfValue to GValue */ - switch (pref_value->type) { - case GCONF_VALUE_STRING: - g_value_init (&src_value, G_TYPE_STRING); - g_value_set_string (&src_value, - gconf_value_get_string (pref_value)); - break; - case GCONF_VALUE_INT: - g_value_init (&src_value, G_TYPE_INT); - g_value_set_int (&src_value, - gconf_value_get_int (pref_value)); - break; - case GCONF_VALUE_BOOL: - g_value_init (&src_value, G_TYPE_BOOLEAN); - g_value_set_boolean (&src_value, - gconf_value_get_bool (pref_value)); - break; - case GCONF_VALUE_FLOAT: - g_value_init (&src_value, G_TYPE_FLOAT); - g_value_set_float (&src_value, - gconf_value_get_float (pref_value)); - break; - default: + switch (pref_value->type) { + case GCONF_VALUE_STRING: + g_value_init (&src_value, G_TYPE_STRING); + g_value_set_string (&src_value, + gconf_value_get_string (pref_value)); + break; + case GCONF_VALUE_INT: + g_value_init (&src_value, G_TYPE_INT); + g_value_set_int (&src_value, + gconf_value_get_int (pref_value)); + break; + case GCONF_VALUE_BOOL: + g_value_init (&src_value, G_TYPE_BOOLEAN); + g_value_set_boolean (&src_value, + gconf_value_get_bool (pref_value)); + break; + case GCONF_VALUE_FLOAT: + g_value_init (&src_value, G_TYPE_FLOAT); + g_value_set_float (&src_value, + gconf_value_get_float (pref_value)); + break; + default: g_warning ("prop_binding_sync_pref_to_prop: Unhandled value " "type '%d'.\n", pref_value->type); - return; - } + return; + } /* Then convert to the type expected by the object, if necessary */ - memset (&value, 0, sizeof (GValue)); - g_value_init (&value, - G_PARAM_SPEC_VALUE_TYPE (binding->prop)); + memset (&value, 0, sizeof (GValue)); + g_value_init (&value, + G_PARAM_SPEC_VALUE_TYPE (binding->prop)); - if (src_value.g_type != value.g_type) { - if (!g_value_transform (&src_value, &value)) { + if (src_value.g_type != value.g_type) { + if (!g_value_transform (&src_value, &value)) { g_warning ("prop_binding_sync_pref_to_prop: Failed to " "transform a \"%s\" to a \"%s\".", - g_type_name (src_value.g_type), - g_type_name (value.g_type)); + g_type_name (src_value.g_type), + g_type_name (value.g_type)); - goto done; - } + goto done; + } - g_object_set_property (binding->object, - binding->prop->name, &value); - } else { - g_object_set_property (binding->object, - binding->prop->name, &src_value); - } + g_object_set_property (binding->object, + binding->prop->name, &value); + } else { + g_object_set_property (binding->object, + binding->prop->name, &src_value); + } done: - g_value_unset (&src_value); - g_value_unset (&value); + g_value_unset (&src_value); + g_value_unset (&value); - g_signal_handler_unblock (binding->object, binding->prop_notify_id); + g_signal_handler_unblock (binding->object, binding->prop_notify_id); } /* Syncs an object property to GConf */ static void prop_binding_sync_prop_to_pref (PropBinding *binding) { - GValue value; - GConfValue *gconf_value; - - memset (&value, 0, sizeof (GValue)); - - g_value_init (&value, - G_PARAM_SPEC_VALUE_TYPE (binding->prop)); - g_object_get_property (binding->object, - binding->prop->name, - &value); - - switch (value.g_type) { - case G_TYPE_STRING: - gconf_value = gconf_value_new (GCONF_VALUE_STRING); - gconf_value_set_string (gconf_value, - g_value_get_string (&value)); - break; - case G_TYPE_INT: - gconf_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (gconf_value, - g_value_get_int (&value)); - break; - case G_TYPE_UINT: - gconf_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (gconf_value, - g_value_get_uint (&value)); - break; - case G_TYPE_LONG: - gconf_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (gconf_value, - g_value_get_long (&value)); - break; - case G_TYPE_ULONG: - gconf_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (gconf_value, - g_value_get_ulong (&value)); - break; - case G_TYPE_INT64: - gconf_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (gconf_value, - g_value_get_int64 (&value)); - break; - case G_TYPE_UINT64: - gconf_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (gconf_value, - g_value_get_uint64 (&value)); - break; - case G_TYPE_CHAR: - gconf_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (gconf_value, - g_value_get_char (&value)); - break; - case G_TYPE_UCHAR: - gconf_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (gconf_value, - g_value_get_uchar (&value)); - break; - case G_TYPE_ENUM: - gconf_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (gconf_value, - g_value_get_enum (&value)); - break; - case G_TYPE_BOOLEAN: - gconf_value = gconf_value_new (GCONF_VALUE_BOOL); - gconf_value_set_bool (gconf_value, - g_value_get_boolean (&value)); - break; - case G_TYPE_DOUBLE: - gconf_value = gconf_value_new (GCONF_VALUE_FLOAT); + GValue value; + GConfValue *gconf_value; + + memset (&value, 0, sizeof (GValue)); + + g_value_init (&value, + G_PARAM_SPEC_VALUE_TYPE (binding->prop)); + g_object_get_property (binding->object, + binding->prop->name, + &value); + + switch (value.g_type) { + case G_TYPE_STRING: + gconf_value = gconf_value_new (GCONF_VALUE_STRING); + gconf_value_set_string (gconf_value, + g_value_get_string (&value)); + break; + case G_TYPE_INT: + gconf_value = gconf_value_new (GCONF_VALUE_INT); + gconf_value_set_int (gconf_value, + g_value_get_int (&value)); + break; + case G_TYPE_UINT: + gconf_value = gconf_value_new (GCONF_VALUE_INT); + gconf_value_set_int (gconf_value, + g_value_get_uint (&value)); + break; + case G_TYPE_LONG: + gconf_value = gconf_value_new (GCONF_VALUE_INT); + gconf_value_set_int (gconf_value, + g_value_get_long (&value)); + break; + case G_TYPE_ULONG: + gconf_value = gconf_value_new (GCONF_VALUE_INT); + gconf_value_set_int (gconf_value, + g_value_get_ulong (&value)); + break; + case G_TYPE_INT64: + gconf_value = gconf_value_new (GCONF_VALUE_INT); + gconf_value_set_int (gconf_value, + g_value_get_int64 (&value)); + break; + case G_TYPE_UINT64: + gconf_value = gconf_value_new (GCONF_VALUE_INT); + gconf_value_set_int (gconf_value, + g_value_get_uint64 (&value)); + break; + case G_TYPE_CHAR: + gconf_value = gconf_value_new (GCONF_VALUE_INT); + gconf_value_set_int (gconf_value, + g_value_get_char (&value)); + break; + case G_TYPE_UCHAR: + gconf_value = gconf_value_new (GCONF_VALUE_INT); + gconf_value_set_int (gconf_value, + g_value_get_uchar (&value)); + break; + case G_TYPE_ENUM: + gconf_value = gconf_value_new (GCONF_VALUE_INT); + gconf_value_set_int (gconf_value, + g_value_get_enum (&value)); + break; + case G_TYPE_BOOLEAN: + gconf_value = gconf_value_new (GCONF_VALUE_BOOL); + gconf_value_set_bool (gconf_value, + g_value_get_boolean (&value)); + break; + case G_TYPE_DOUBLE: + gconf_value = gconf_value_new (GCONF_VALUE_FLOAT); #ifdef HAVE_CORBA_GCONF /* FIXME we cast to a gfloat explicitly as CORBA GConf * uses doubles in its API, but treats them as floats * when transporting them over CORBA. See #322837 */ - gconf_value_set_float (gconf_value, - (gfloat) g_value_get_double (&value)); + gconf_value_set_float (gconf_value, + (gfloat) g_value_get_double (&value)); #else - gconf_value_set_float (gconf_value, - g_value_get_double (&value)); + gconf_value_set_float (gconf_value, + g_value_get_double (&value)); #endif - break; - case G_TYPE_FLOAT: - gconf_value = gconf_value_new (GCONF_VALUE_FLOAT); - gconf_value_set_float (gconf_value, - g_value_get_float (&value)); - break; - default: - if (g_type_is_a (value.g_type, G_TYPE_ENUM)) { - gconf_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (gconf_value, - g_value_get_enum (&value)); - } else { + break; + case G_TYPE_FLOAT: + gconf_value = gconf_value_new (GCONF_VALUE_FLOAT); + gconf_value_set_float (gconf_value, + g_value_get_float (&value)); + break; + default: + if (g_type_is_a (value.g_type, G_TYPE_ENUM)) { + gconf_value = gconf_value_new (GCONF_VALUE_INT); + gconf_value_set_int (gconf_value, + g_value_get_enum (&value)); + } else { g_warning ("prop_binding_sync_prop_to_pref: " "Unhandled value type '%s'.\n", - g_type_name (value.g_type)); + g_type_name (value.g_type)); - goto done; - } + goto done; + } - break; - } + break; + } /* Set to GConf */ - gconf_client_set (bridge->client, binding->key, gconf_value, NULL); + gconf_client_set (bridge->client, binding->key, gconf_value, NULL); /* Store until change notification comes in, so that we are able * to ignore it */ - binding->val_changes = g_slist_append (binding->val_changes, - gconf_value); + binding->val_changes = g_slist_append (binding->val_changes, + gconf_value); done: - g_value_unset (&value); + g_value_unset (&value); } /* Called when a GConf value bound to an object property has changed */ @@ -372,30 +372,30 @@ prop_binding_pref_changed (GConfClient *client, GConfEntry *entry, gpointer user_data) { - GConfValue *gconf_value; - PropBinding *binding; - GSList *l; + GConfValue *gconf_value; + PropBinding *binding; + GSList *l; - gconf_value = gconf_entry_get_value (entry); - if (!gconf_value) - return; /* NULL means that the value has been unset */ + gconf_value = gconf_entry_get_value (entry); + if (!gconf_value) + return; /* NULL means that the value has been unset */ - binding = (PropBinding *) user_data; + binding = (PropBinding *) user_data; /* Check that this notification is not caused by sync_prop_to_pref() */ - l = g_slist_find_custom (binding->val_changes, - gconf_value, - (GCompareFunc) gconf_value_compare); - if (l) { - gconf_value_free (l->data); + l = g_slist_find_custom (binding->val_changes, + gconf_value, + (GCompareFunc) gconf_value_compare); + if (l) { + gconf_value_free (l->data); - binding->val_changes = g_slist_delete_link - (binding->val_changes, l); + binding->val_changes = g_slist_delete_link + (binding->val_changes, l); - return; - } + return; + } - prop_binding_sync_pref_to_prop (binding, gconf_value); + prop_binding_sync_pref_to_prop (binding, gconf_value); } /* Performs a scheduled prop-to-pref sync for a prop binding in @@ -403,13 +403,13 @@ prop_binding_pref_changed (GConfClient *client, static gboolean prop_binding_perform_scheduled_sync (PropBinding *binding) { - prop_binding_sync_prop_to_pref (binding); + prop_binding_sync_prop_to_pref (binding); - binding->sync_timeout_id = 0; + binding->sync_timeout_id = 0; - g_object_unref (binding->object); + g_object_unref (binding->object); - return FALSE; + return FALSE; } #define PROP_BINDING_SYNC_DELAY 100 /* Delay for bindings with "delayed" @@ -421,25 +421,25 @@ prop_binding_prop_changed (GObject *object, GParamSpec *param_spec, PropBinding *binding) { - if (binding->delayed_mode) { + if (binding->delayed_mode) { /* Just schedule a sync */ - if (binding->sync_timeout_id == 0) { + if (binding->sync_timeout_id == 0) { /* We keep a reference on the object as long as * we haven't synced yet to make sure we don't * lose any data */ - g_object_ref (binding->object); - - binding->sync_timeout_id = - g_timeout_add - (PROP_BINDING_SYNC_DELAY, - (GSourceFunc) - prop_binding_perform_scheduled_sync, - binding); - } - } else { + g_object_ref (binding->object); + + binding->sync_timeout_id = + g_timeout_add + (PROP_BINDING_SYNC_DELAY, + (GSourceFunc) + prop_binding_perform_scheduled_sync, + binding); + } + } else { /* Directly sync */ - prop_binding_sync_prop_to_pref (binding); - } + prop_binding_sync_prop_to_pref (binding); + } } /* Called when an object is destroyed */ @@ -447,14 +447,14 @@ static void prop_binding_object_destroyed (gpointer user_data, GObject *where_the_object_was) { - PropBinding *binding; + PropBinding *binding; - binding = (PropBinding *) user_data; - binding->object = NULL; /* Don't do anything with the object + binding = (PropBinding *) user_data; + binding->object = NULL; /* Don't do anything with the object * at unbind() */ - g_hash_table_remove (bridge->bindings, - GUINT_TO_POINTER (binding->id)); + g_hash_table_remove (bridge->bindings, + GUINT_TO_POINTER (binding->id)); } /** @@ -485,70 +485,70 @@ gconf_bridge_bind_property_full (GConfBridge *bridge, const gchar *prop, gboolean delayed_sync) { - GParamSpec *pspec; - PropBinding *binding; - gchar *signal; - GConfValue *val; + GParamSpec *pspec; + PropBinding *binding; + gchar *signal; + GConfValue *val; - g_return_val_if_fail (bridge != NULL, 0); - g_return_val_if_fail (key != NULL, 0); - g_return_val_if_fail (G_IS_OBJECT (object), 0); - g_return_val_if_fail (prop != NULL, 0); + g_return_val_if_fail (bridge != NULL, 0); + g_return_val_if_fail (key != NULL, 0); + g_return_val_if_fail (G_IS_OBJECT (object), 0); + g_return_val_if_fail (prop != NULL, 0); /* First, try to fetch the propertys GParamSpec off the object */ - pspec = g_object_class_find_property - (G_OBJECT_GET_CLASS (object), prop); - if (G_UNLIKELY (pspec == NULL)) { + pspec = g_object_class_find_property + (G_OBJECT_GET_CLASS (object), prop); + if (G_UNLIKELY (pspec == NULL)) { g_warning ("gconf_bridge_bind_property_full: A property \"%s\" " "was not found. Please make sure you are passing " "the right property name.", prop); - return 0; - } + return 0; + } /* GParamSpec found: All good, create new binding. */ - binding = g_new (PropBinding, 1); + binding = g_new (PropBinding, 1); - binding->type = BINDING_PROP; - binding->id = new_id (); - binding->delayed_mode = delayed_sync; - binding->val_changes = NULL; - binding->key = g_strdup (key); - binding->object = object; - binding->prop = pspec; - binding->sync_timeout_id = 0; + binding->type = BINDING_PROP; + binding->id = new_id (); + binding->delayed_mode = delayed_sync; + binding->val_changes = NULL; + binding->key = g_strdup (key); + binding->object = object; + binding->prop = pspec; + binding->sync_timeout_id = 0; /* Watch GConf key */ - binding->val_notify_id = - gconf_client_notify_add (bridge->client, key, - prop_binding_pref_changed, - binding, NULL, NULL); + binding->val_notify_id = + gconf_client_notify_add (bridge->client, key, + prop_binding_pref_changed, + binding, NULL, NULL); /* Connect to property change notifications */ signal = g_strconcat ("notify::", prop, NULL); - binding->prop_notify_id = - g_signal_connect (object, signal, - G_CALLBACK (prop_binding_prop_changed), - binding); - g_free (signal); + binding->prop_notify_id = + g_signal_connect (object, signal, + G_CALLBACK (prop_binding_prop_changed), + binding); + g_free (signal); /* Sync object to value from GConf, if set */ - val = gconf_client_get (bridge->client, key, NULL); - if (val) { - prop_binding_sync_pref_to_prop (binding, val); - gconf_value_free (val); - } + val = gconf_client_get (bridge->client, key, NULL); + if (val) { + prop_binding_sync_pref_to_prop (binding, val); + gconf_value_free (val); + } /* Handle case where watched object gets destroyed */ - g_object_weak_ref (object, - prop_binding_object_destroyed, binding); + g_object_weak_ref (object, + prop_binding_object_destroyed, binding); /* Insert binding */ - g_hash_table_insert (bridge->bindings, - GUINT_TO_POINTER (binding->id), binding); + g_hash_table_insert (bridge->bindings, + GUINT_TO_POINTER (binding->id), binding); /* Done */ - return binding->id; + return binding->id; } static void @@ -556,13 +556,13 @@ prop_binding_block_cb (gpointer hkey, PropBinding *binding, const gchar *key) { - g_return_if_fail (binding != NULL); - g_return_if_fail (key != NULL); + g_return_if_fail (binding != NULL); + g_return_if_fail (key != NULL); - if (binding->type == BINDING_PROP && binding->key && - g_ascii_strcasecmp (binding->key, key) == 0) - g_signal_handler_block ( - binding->object, binding->prop_notify_id); + if (binding->type == BINDING_PROP && binding->key && + g_ascii_strcasecmp (binding->key, key) == 0) + g_signal_handler_block ( + binding->object, binding->prop_notify_id); } static void @@ -570,71 +570,71 @@ prop_binding_unblock_cb (gpointer hkey, PropBinding *binding, const gchar *key) { - g_return_if_fail (binding != NULL); - g_return_if_fail (key != NULL); + g_return_if_fail (binding != NULL); + g_return_if_fail (key != NULL); - if (binding->type == BINDING_PROP && binding->key && - g_ascii_strcasecmp (binding->key, key) == 0) - g_signal_handler_unblock ( - binding->object, binding->prop_notify_id); + if (binding->type == BINDING_PROP && binding->key && + g_ascii_strcasecmp (binding->key, key) == 0) + g_signal_handler_unblock ( + binding->object, binding->prop_notify_id); } void gconf_bridge_block_property_bindings (GConfBridge *bridge, const gchar *key) { - g_return_if_fail (bridge != NULL); - g_return_if_fail (key != NULL); + g_return_if_fail (bridge != NULL); + g_return_if_fail (key != NULL); - g_hash_table_foreach ( - bridge->bindings, (GHFunc) - prop_binding_block_cb, (gpointer)key); + g_hash_table_foreach ( + bridge->bindings, (GHFunc) + prop_binding_block_cb, (gpointer)key); } void gconf_bridge_unblock_property_bindings (GConfBridge *bridge, const gchar *key) { - g_return_if_fail (bridge != NULL); - g_return_if_fail (key != NULL); + g_return_if_fail (bridge != NULL); + g_return_if_fail (key != NULL); - g_hash_table_foreach ( - bridge->bindings, (GHFunc) - prop_binding_unblock_cb, (gpointer)key); + g_hash_table_foreach ( + bridge->bindings, (GHFunc) + prop_binding_unblock_cb, (gpointer)key); } /* Unbinds a property binding */ static void prop_binding_unbind (PropBinding *binding) { - if (binding->delayed_mode && binding->sync_timeout_id > 0) { + if (binding->delayed_mode && binding->sync_timeout_id > 0) { /* Perform any scheduled syncs */ - g_source_remove (binding->sync_timeout_id); + g_source_remove (binding->sync_timeout_id); /* The object will still be around as we have * a reference */ - prop_binding_perform_scheduled_sync (binding); - } + prop_binding_perform_scheduled_sync (binding); + } - gconf_client_notify_remove (bridge->client, - binding->val_notify_id); - g_free (binding->key); + gconf_client_notify_remove (bridge->client, + binding->val_notify_id); + g_free (binding->key); - while (binding->val_changes) { - gconf_value_free (binding->val_changes->data); + while (binding->val_changes) { + gconf_value_free (binding->val_changes->data); - binding->val_changes = g_slist_delete_link - (binding->val_changes, binding->val_changes); - } + binding->val_changes = g_slist_delete_link + (binding->val_changes, binding->val_changes); + } /* The object might have been destroyed .. */ - if (binding->object) { - g_signal_handler_disconnect (binding->object, - binding->prop_notify_id); + if (binding->object) { + g_signal_handler_disconnect (binding->object, + binding->prop_notify_id); - g_object_weak_unref (binding->object, - prop_binding_object_destroyed, binding); - } + g_object_weak_unref (binding->object, + prop_binding_object_destroyed, binding); + } } /* @@ -645,54 +645,54 @@ prop_binding_unbind (PropBinding *binding) static gboolean window_binding_perform_scheduled_sync (WindowBinding *binding) { - if (binding->bind_size) { - gint width, height; - gchar *key; - GdkWindowState state; - GdkWindow *window; + if (binding->bind_size) { + gint width, height; + gchar *key; + GdkWindowState state; + GdkWindow *window; - window = gtk_widget_get_window (GTK_WIDGET (binding->window)); - state = gdk_window_get_state (window); + window = gtk_widget_get_window (GTK_WIDGET (binding->window)); + state = gdk_window_get_state (window); - if (state & GDK_WINDOW_STATE_MAXIMIZED) { + if (state & GDK_WINDOW_STATE_MAXIMIZED) { key = g_strconcat (binding->key_prefix, "_maximized", NULL); - gconf_client_set_bool (bridge->client, key, TRUE, NULL); - g_free (key); - } else { - gtk_window_get_size (binding->window, &width, &height); + gconf_client_set_bool (bridge->client, key, TRUE, NULL); + g_free (key); + } else { + gtk_window_get_size (binding->window, &width, &height); key = g_strconcat (binding->key_prefix, "_width", NULL); - gconf_client_set_int (bridge->client, key, width, NULL); - g_free (key); + gconf_client_set_int (bridge->client, key, width, NULL); + g_free (key); key = g_strconcat (binding->key_prefix, "_height", NULL); - gconf_client_set_int (bridge->client, key, height, NULL); - g_free (key); + gconf_client_set_int (bridge->client, key, height, NULL); + g_free (key); key = g_strconcat (binding->key_prefix, "_maximized", NULL); - gconf_client_set_bool (bridge->client, key, FALSE, NULL); - g_free (key); - } - } + gconf_client_set_bool (bridge->client, key, FALSE, NULL); + g_free (key); + } + } - if (binding->bind_pos) { - gint x, y; - gchar *key; + if (binding->bind_pos) { + gint x, y; + gchar *key; - gtk_window_get_position (binding->window, &x, &y); + gtk_window_get_position (binding->window, &x, &y); key = g_strconcat (binding->key_prefix, "_x", NULL); - gconf_client_set_int (bridge->client, key, x, NULL); - g_free (key); + gconf_client_set_int (bridge->client, key, x, NULL); + g_free (key); key = g_strconcat (binding->key_prefix, "_y", NULL); - gconf_client_set_int (bridge->client, key, y, NULL); - g_free (key); - } + gconf_client_set_int (bridge->client, key, y, NULL); + g_free (key); + } - binding->sync_timeout_id = 0; + binding->sync_timeout_id = 0; - return FALSE; + return FALSE; } #define WINDOW_BINDING_SYNC_DELAY 1 /* Delay before syncing new window @@ -705,15 +705,15 @@ window_binding_configure_event_cb (GtkWindow *window, WindowBinding *binding) { /* re-postpone by cancel of the previous request */ - if (binding->sync_timeout_id > 0) - g_source_remove (binding->sync_timeout_id); + if (binding->sync_timeout_id > 0) + g_source_remove (binding->sync_timeout_id); /* Schedule a sync */ - binding->sync_timeout_id = g_timeout_add_seconds (WINDOW_BINDING_SYNC_DELAY, - (GSourceFunc) window_binding_perform_scheduled_sync, - binding); + binding->sync_timeout_id = g_timeout_add_seconds (WINDOW_BINDING_SYNC_DELAY, + (GSourceFunc) window_binding_perform_scheduled_sync, + binding); - return FALSE; + return FALSE; } /* Called when the window state is being changed */ @@ -722,12 +722,12 @@ window_binding_state_event_cb (GtkWindow *window, GdkEventWindowState *event, WindowBinding *binding) { - if (binding->sync_timeout_id > 0) - g_source_remove (binding->sync_timeout_id); + if (binding->sync_timeout_id > 0) + g_source_remove (binding->sync_timeout_id); - window_binding_perform_scheduled_sync (binding); + window_binding_perform_scheduled_sync (binding); - return FALSE; + return FALSE; } /* Called when the window is being unmapped */ @@ -736,16 +736,16 @@ window_binding_unmap_cb (GtkWindow *window, WindowBinding *binding) { /* Force sync */ - if (binding->sync_timeout_id > 0) - g_source_remove (binding->sync_timeout_id); + if (binding->sync_timeout_id > 0) + g_source_remove (binding->sync_timeout_id); /* XXX It's too late to record the window position. * gtk_window_get_position() will report (0, 0). */ - binding->bind_pos = FALSE; + binding->bind_pos = FALSE; - window_binding_perform_scheduled_sync (binding); + window_binding_perform_scheduled_sync (binding); - return FALSE; + return FALSE; } /* Called when a window is destroyed */ @@ -753,17 +753,17 @@ static void window_binding_window_destroyed (gpointer user_data, GObject *where_the_object_was) { - WindowBinding *binding; + WindowBinding *binding; - binding = (WindowBinding *) user_data; - binding->window = NULL; /* Don't do anything with the window + binding = (WindowBinding *) user_data; + binding->window = NULL; /* Don't do anything with the window * at unbind() */ - if (binding->sync_timeout_id > 0) - g_source_remove (binding->sync_timeout_id); + if (binding->sync_timeout_id > 0) + g_source_remove (binding->sync_timeout_id); - g_hash_table_remove (bridge->bindings, - GUINT_TO_POINTER (binding->id)); + g_hash_table_remove (bridge->bindings, + GUINT_TO_POINTER (binding->id)); } /** @@ -791,140 +791,140 @@ gconf_bridge_bind_window (GConfBridge *bridge, gboolean bind_size, gboolean bind_pos) { - WindowBinding *binding; + WindowBinding *binding; - g_return_val_if_fail (bridge != NULL, 0); - g_return_val_if_fail (key_prefix != NULL, 0); - g_return_val_if_fail (GTK_IS_WINDOW (window), 0); + g_return_val_if_fail (bridge != NULL, 0); + g_return_val_if_fail (key_prefix != NULL, 0); + g_return_val_if_fail (GTK_IS_WINDOW (window), 0); /* Create new binding. */ - binding = g_new (WindowBinding, 1); + binding = g_new (WindowBinding, 1); - binding->type = BINDING_WINDOW; - binding->id = new_id (); - binding->bind_size = bind_size; - binding->bind_pos = bind_pos; - binding->key_prefix = g_strdup (key_prefix); - binding->window = window; - binding->sync_timeout_id = 0; + binding->type = BINDING_WINDOW; + binding->id = new_id (); + binding->bind_size = bind_size; + binding->bind_pos = bind_pos; + binding->key_prefix = g_strdup (key_prefix); + binding->window = window; + binding->sync_timeout_id = 0; /* Set up GConf keys & sync window to GConf values */ - if (bind_size) { - gchar *key; - GConfValue *width_val, *height_val, *maximized_val; + if (bind_size) { + gchar *key; + GConfValue *width_val, *height_val, *maximized_val; key = g_strconcat (key_prefix, "_width", NULL); - width_val = gconf_client_get (bridge->client, key, NULL); - g_free (key); + width_val = gconf_client_get (bridge->client, key, NULL); + g_free (key); key = g_strconcat (key_prefix, "_height", NULL); - height_val = gconf_client_get (bridge->client, key, NULL); - g_free (key); + height_val = gconf_client_get (bridge->client, key, NULL); + g_free (key); key = g_strconcat (key_prefix, "_maximized", NULL); - maximized_val = gconf_client_get (bridge->client, key, NULL); - g_free (key); - - if (width_val && height_val) { - gtk_window_resize (window, - gconf_value_get_int (width_val), - gconf_value_get_int (height_val)); - - gconf_value_free (width_val); - gconf_value_free (height_val); - } else if (width_val) { - gconf_value_free (width_val); - } else if (height_val) { - gconf_value_free (height_val); - } - - if (maximized_val) { - if (gconf_value_get_bool (maximized_val)) { - gtk_window_maximize (window); - } - gconf_value_free (maximized_val); - } - } - - if (bind_pos) { - gchar *key; - GConfValue *x_val, *y_val; + maximized_val = gconf_client_get (bridge->client, key, NULL); + g_free (key); + + if (width_val && height_val) { + gtk_window_resize (window, + gconf_value_get_int (width_val), + gconf_value_get_int (height_val)); + + gconf_value_free (width_val); + gconf_value_free (height_val); + } else if (width_val) { + gconf_value_free (width_val); + } else if (height_val) { + gconf_value_free (height_val); + } + + if (maximized_val) { + if (gconf_value_get_bool (maximized_val)) { + gtk_window_maximize (window); + } + gconf_value_free (maximized_val); + } + } + + if (bind_pos) { + gchar *key; + GConfValue *x_val, *y_val; key = g_strconcat (key_prefix, "_x", NULL); - x_val = gconf_client_get (bridge->client, key, NULL); - g_free (key); + x_val = gconf_client_get (bridge->client, key, NULL); + g_free (key); key = g_strconcat (key_prefix, "_y", NULL); - y_val = gconf_client_get (bridge->client, key, NULL); - g_free (key); - - if (x_val && y_val) { - gtk_window_move (window, - gconf_value_get_int (x_val), - gconf_value_get_int (y_val)); - - gconf_value_free (x_val); - gconf_value_free (y_val); - } else if (x_val) { - gconf_value_free (x_val); - } else if (y_val) { - gconf_value_free (y_val); - } - } + y_val = gconf_client_get (bridge->client, key, NULL); + g_free (key); + + if (x_val && y_val) { + gtk_window_move (window, + gconf_value_get_int (x_val), + gconf_value_get_int (y_val)); + + gconf_value_free (x_val); + gconf_value_free (y_val); + } else if (x_val) { + gconf_value_free (x_val); + } else if (y_val) { + gconf_value_free (y_val); + } + } /* Connect to window size change notifications */ - binding->configure_event_id = - g_signal_connect (window, + binding->configure_event_id = + g_signal_connect (window, "configure-event", - G_CALLBACK - (window_binding_configure_event_cb), - binding); + G_CALLBACK + (window_binding_configure_event_cb), + binding); - binding->window_state_event_id = - g_signal_connect (window, + binding->window_state_event_id = + g_signal_connect (window, "window_state_event", - G_CALLBACK - (window_binding_state_event_cb), - binding); - binding->unmap_id = - g_signal_connect (window, + G_CALLBACK + (window_binding_state_event_cb), + binding); + binding->unmap_id = + g_signal_connect (window, "unmap", - G_CALLBACK (window_binding_unmap_cb), - binding); + G_CALLBACK (window_binding_unmap_cb), + binding); /* Handle case where window gets destroyed */ - g_object_weak_ref (G_OBJECT (window), - window_binding_window_destroyed, binding); + g_object_weak_ref (G_OBJECT (window), + window_binding_window_destroyed, binding); /* Insert binding */ - g_hash_table_insert (bridge->bindings, - GUINT_TO_POINTER (binding->id), binding); + g_hash_table_insert (bridge->bindings, + GUINT_TO_POINTER (binding->id), binding); /* Done */ - return binding->id; + return binding->id; } /* Unbinds a window binding */ static void window_binding_unbind (WindowBinding *binding) { - if (binding->sync_timeout_id > 0) - g_source_remove (binding->sync_timeout_id); + if (binding->sync_timeout_id > 0) + g_source_remove (binding->sync_timeout_id); - g_free (binding->key_prefix); + g_free (binding->key_prefix); /* The window might have been destroyed .. */ - if (binding->window) { - g_signal_handler_disconnect (binding->window, - binding->configure_event_id); - g_signal_handler_disconnect (binding->window, - binding->window_state_event_id); - g_signal_handler_disconnect (binding->window, - binding->unmap_id); - - g_object_weak_unref (G_OBJECT (binding->window), - window_binding_window_destroyed, binding); - } + if (binding->window) { + g_signal_handler_disconnect (binding->window, + binding->configure_event_id); + g_signal_handler_disconnect (binding->window, + binding->window_state_event_id); + g_signal_handler_disconnect (binding->window, + binding->unmap_id); + + g_object_weak_unref (G_OBJECT (binding->window), + window_binding_window_destroyed, binding); + } } /* @@ -936,85 +936,85 @@ static void list_store_binding_sync_pref_to_store (ListStoreBinding *binding, GConfValue *value) { - GSList *list, *l; - GtkTreeIter iter; + GSList *list, *l; + GtkTreeIter iter; /* Make sure we don't enter an infinite synchronizing loop */ - g_signal_handler_block (binding->list_store, - binding->row_inserted_id); - g_signal_handler_block (binding->list_store, - binding->row_deleted_id); - - gtk_list_store_clear (binding->list_store); - - list = gconf_value_get_list (value); - for (l = list; l; l = l->next) { - GConfValue *l_value; - const gchar *string; - - l_value = (GConfValue *) l->data; - string = gconf_value_get_string (l_value); - - gtk_list_store_insert_with_values (binding->list_store, - &iter, -1, - 0, string, - -1); - } - - g_signal_handler_unblock (binding->list_store, - binding->row_inserted_id); - g_signal_handler_unblock (binding->list_store, - binding->row_deleted_id); + g_signal_handler_block (binding->list_store, + binding->row_inserted_id); + g_signal_handler_block (binding->list_store, + binding->row_deleted_id); + + gtk_list_store_clear (binding->list_store); + + list = gconf_value_get_list (value); + for (l = list; l; l = l->next) { + GConfValue *l_value; + const gchar *string; + + l_value = (GConfValue *) l->data; + string = gconf_value_get_string (l_value); + + gtk_list_store_insert_with_values (binding->list_store, + &iter, -1, + 0, string, + -1); + } + + g_signal_handler_unblock (binding->list_store, + binding->row_inserted_id); + g_signal_handler_unblock (binding->list_store, + binding->row_deleted_id); } /* Sets a GConf value to the contents of a GtkListStore */ static gboolean list_store_binding_sync_store_to_pref (ListStoreBinding *binding) { - GtkTreeModel *tree_model; - GtkTreeIter iter; - GSList *list; - gint res; - GConfValue *gconf_value; + GtkTreeModel *tree_model; + GtkTreeIter iter; + GSList *list; + gint res; + GConfValue *gconf_value; - tree_model = GTK_TREE_MODEL (binding->list_store); + tree_model = GTK_TREE_MODEL (binding->list_store); /* Build list */ - list = NULL; - res = gtk_tree_model_get_iter_first (tree_model, &iter); - while (res) { - gchar *string; - GConfValue *tmp_value; + list = NULL; + res = gtk_tree_model_get_iter_first (tree_model, &iter); + while (res) { + gchar *string; + GConfValue *tmp_value; - gtk_tree_model_get (tree_model, &iter, - 0, &string, -1); + gtk_tree_model_get (tree_model, &iter, + 0, &string, -1); - tmp_value = gconf_value_new (GCONF_VALUE_STRING); - gconf_value_set_string (tmp_value, string); + tmp_value = gconf_value_new (GCONF_VALUE_STRING); + gconf_value_set_string (tmp_value, string); - list = g_slist_append (list, tmp_value); + list = g_slist_append (list, tmp_value); - res = gtk_tree_model_iter_next (tree_model, &iter); - } + res = gtk_tree_model_iter_next (tree_model, &iter); + } /* Create value */ - gconf_value = gconf_value_new (GCONF_VALUE_LIST); - gconf_value_set_list_type (gconf_value, GCONF_VALUE_STRING); - gconf_value_set_list_nocopy (gconf_value, list); + gconf_value = gconf_value_new (GCONF_VALUE_LIST); + gconf_value_set_list_type (gconf_value, GCONF_VALUE_STRING); + gconf_value_set_list_nocopy (gconf_value, list); /* Set */ - gconf_client_set (bridge->client, binding->key, gconf_value, NULL); + gconf_client_set (bridge->client, binding->key, gconf_value, NULL); /* Store until change notification comes in, so that we are able * to ignore it */ - binding->val_changes = g_slist_append (binding->val_changes, - gconf_value); + binding->val_changes = g_slist_append (binding->val_changes, + gconf_value); - binding->sync_idle_id = 0; + binding->sync_idle_id = 0; - g_object_unref (binding->list_store); + g_object_unref (binding->list_store); - return FALSE; + return FALSE; } /* Pref changed: sync */ @@ -1024,31 +1024,31 @@ list_store_binding_pref_changed (GConfClient *client, GConfEntry *entry, gpointer user_data) { - GConfValue *gconf_value; - ListStoreBinding *binding; - GSList *l; + GConfValue *gconf_value; + ListStoreBinding *binding; + GSList *l; - gconf_value = gconf_entry_get_value (entry); - if (!gconf_value) - return; /* NULL means that the value has been unset */ + gconf_value = gconf_entry_get_value (entry); + if (!gconf_value) + return; /* NULL means that the value has been unset */ - binding = (ListStoreBinding *) user_data; + binding = (ListStoreBinding *) user_data; /* Check that this notification is not caused by * sync_store_to_pref() */ - l = g_slist_find_custom (binding->val_changes, - gconf_value, - (GCompareFunc) gconf_value_compare); - if (l) { - gconf_value_free (l->data); + l = g_slist_find_custom (binding->val_changes, + gconf_value, + (GCompareFunc) gconf_value_compare); + if (l) { + gconf_value_free (l->data); - binding->val_changes = g_slist_delete_link - (binding->val_changes, l); + binding->val_changes = g_slist_delete_link + (binding->val_changes, l); - return; - } + return; + } - list_store_binding_sync_pref_to_store (binding, gconf_value); + list_store_binding_sync_pref_to_store (binding, gconf_value); } /* Called when an object is destroyed */ @@ -1056,27 +1056,27 @@ static void list_store_binding_store_destroyed (gpointer user_data, GObject *where_the_object_was) { - ListStoreBinding *binding; + ListStoreBinding *binding; - binding = (ListStoreBinding *) user_data; - binding->list_store = NULL; /* Don't do anything with the store + binding = (ListStoreBinding *) user_data; + binding->list_store = NULL; /* Don't do anything with the store * at unbind() */ - g_hash_table_remove (bridge->bindings, - GUINT_TO_POINTER (binding->id)); + g_hash_table_remove (bridge->bindings, + GUINT_TO_POINTER (binding->id)); } /* List store changed: Sync */ static void list_store_binding_store_changed_cb (ListStoreBinding *binding) { - if (binding->sync_idle_id == 0) { - g_object_ref (binding->list_store); + if (binding->sync_idle_id == 0) { + g_object_ref (binding->list_store); - binding->sync_idle_id = g_idle_add - ((GSourceFunc) list_store_binding_sync_store_to_pref, - binding); - } + binding->sync_idle_id = g_idle_add + ((GSourceFunc) list_store_binding_sync_store_to_pref, + binding); + } } /** @@ -1097,83 +1097,83 @@ gconf_bridge_bind_string_list_store (GConfBridge *bridge, const gchar *key, GtkListStore *list_store) { - GtkTreeModel *tree_model; - gboolean have_one_column, is_string_column; - ListStoreBinding *binding; - GConfValue *val; + GtkTreeModel *tree_model; + gboolean have_one_column, is_string_column; + ListStoreBinding *binding; + GConfValue *val; - g_return_val_if_fail (bridge != NULL, 0); - g_return_val_if_fail (key != NULL, 0); - g_return_val_if_fail (GTK_IS_LIST_STORE (list_store), 0); + g_return_val_if_fail (bridge != NULL, 0); + g_return_val_if_fail (key != NULL, 0); + g_return_val_if_fail (GTK_IS_LIST_STORE (list_store), 0); /* Check list store suitability */ - tree_model = GTK_TREE_MODEL (list_store); - have_one_column = (gtk_tree_model_get_n_columns (tree_model) == 1); - is_string_column = (gtk_tree_model_get_column_type - (tree_model, 0) == G_TYPE_STRING); - if (G_UNLIKELY (!have_one_column || !is_string_column)) { + tree_model = GTK_TREE_MODEL (list_store); + have_one_column = (gtk_tree_model_get_n_columns (tree_model) == 1); + is_string_column = (gtk_tree_model_get_column_type + (tree_model, 0) == G_TYPE_STRING); + if (G_UNLIKELY (!have_one_column || !is_string_column)) { g_warning ("gconf_bridge_bind_string_list_store: Only " "GtkListStores with exactly one string column are " "supported."); - return 0; - } + return 0; + } /* Create new binding. */ - binding = g_new (ListStoreBinding, 1); + binding = g_new (ListStoreBinding, 1); - binding->type = BINDING_LIST_STORE; - binding->id = new_id (); - binding->key = g_strdup (key); - binding->val_changes = NULL; - binding->list_store = list_store; - binding->sync_idle_id = 0; + binding->type = BINDING_LIST_STORE; + binding->id = new_id (); + binding->key = g_strdup (key); + binding->val_changes = NULL; + binding->list_store = list_store; + binding->sync_idle_id = 0; /* Watch GConf key */ - binding->val_notify_id = - gconf_client_notify_add (bridge->client, key, - list_store_binding_pref_changed, - binding, NULL, NULL); + binding->val_notify_id = + gconf_client_notify_add (bridge->client, key, + list_store_binding_pref_changed, + binding, NULL, NULL); /* Connect to ListStore change notifications */ - binding->row_inserted_id = + binding->row_inserted_id = g_signal_connect_swapped (list_store, "row-inserted", - G_CALLBACK - (list_store_binding_store_changed_cb), - binding); - binding->row_changed_id = + G_CALLBACK + (list_store_binding_store_changed_cb), + binding); + binding->row_changed_id = g_signal_connect_swapped (list_store, "row-changed", - G_CALLBACK - (list_store_binding_store_changed_cb), - binding); - binding->row_deleted_id = + G_CALLBACK + (list_store_binding_store_changed_cb), + binding); + binding->row_deleted_id = g_signal_connect_swapped (list_store, "row-deleted", - G_CALLBACK - (list_store_binding_store_changed_cb), - binding); - binding->rows_reordered_id = + G_CALLBACK + (list_store_binding_store_changed_cb), + binding); + binding->rows_reordered_id = g_signal_connect_swapped (list_store, "rows-reordered", - G_CALLBACK - (list_store_binding_store_changed_cb), - binding); + G_CALLBACK + (list_store_binding_store_changed_cb), + binding); /* Sync object to value from GConf, if set */ - val = gconf_client_get (bridge->client, key, NULL); - if (val) { - list_store_binding_sync_pref_to_store (binding, val); - gconf_value_free (val); - } + val = gconf_client_get (bridge->client, key, NULL); + if (val) { + list_store_binding_sync_pref_to_store (binding, val); + gconf_value_free (val); + } /* Handle case where watched object gets destroyed */ - g_object_weak_ref (G_OBJECT (list_store), - list_store_binding_store_destroyed, binding); + g_object_weak_ref (G_OBJECT (list_store), + list_store_binding_store_destroyed, binding); /* Insert binding */ - g_hash_table_insert (bridge->bindings, - GUINT_TO_POINTER (binding->id), binding); + g_hash_table_insert (bridge->bindings, + GUINT_TO_POINTER (binding->id), binding); /* Done */ - return binding->id; + return binding->id; } /* Unbinds a list store binding */ @@ -1181,37 +1181,37 @@ static void list_store_binding_unbind (ListStoreBinding *binding) { /* Perform any scheduled syncs */ - if (binding->sync_idle_id > 0) { - g_source_remove (binding->sync_idle_id); + if (binding->sync_idle_id > 0) { + g_source_remove (binding->sync_idle_id); /* The store will still be around as we added a reference */ - list_store_binding_sync_store_to_pref (binding); - } + list_store_binding_sync_store_to_pref (binding); + } - g_free (binding->key); + g_free (binding->key); - while (binding->val_changes) { - gconf_value_free (binding->val_changes->data); + while (binding->val_changes) { + gconf_value_free (binding->val_changes->data); - binding->val_changes = g_slist_delete_link - (binding->val_changes, binding->val_changes); - } + binding->val_changes = g_slist_delete_link + (binding->val_changes, binding->val_changes); + } /* The store might have been destroyed .. */ - if (binding->list_store) { - g_signal_handler_disconnect (binding->list_store, - binding->row_inserted_id); - g_signal_handler_disconnect (binding->list_store, - binding->row_changed_id); - g_signal_handler_disconnect (binding->list_store, - binding->row_deleted_id); - g_signal_handler_disconnect (binding->list_store, - binding->rows_reordered_id); - - g_object_weak_unref (G_OBJECT (binding->list_store), - list_store_binding_store_destroyed, - binding); - } + if (binding->list_store) { + g_signal_handler_disconnect (binding->list_store, + binding->row_inserted_id); + g_signal_handler_disconnect (binding->list_store, + binding->row_changed_id); + g_signal_handler_disconnect (binding->list_store, + binding->row_deleted_id); + g_signal_handler_disconnect (binding->list_store, + binding->rows_reordered_id); + + g_object_weak_unref (G_OBJECT (binding->list_store), + list_store_binding_store_destroyed, + binding); + } } /* @@ -1223,22 +1223,22 @@ static void unbind (Binding *binding) { /* Call specialized unbinding function */ - switch (binding->type) { - case BINDING_PROP: - prop_binding_unbind ((PropBinding *) binding); - break; - case BINDING_WINDOW: - window_binding_unbind ((WindowBinding *) binding); - break; - case BINDING_LIST_STORE: - list_store_binding_unbind ((ListStoreBinding *) binding); - break; - default: + switch (binding->type) { + case BINDING_PROP: + prop_binding_unbind ((PropBinding *) binding); + break; + case BINDING_WINDOW: + window_binding_unbind ((WindowBinding *) binding); + break; + case BINDING_LIST_STORE: + list_store_binding_unbind ((ListStoreBinding *) binding); + break; + default: g_warning ("Unknown binding type '%d'\n", binding->type); - break; - } + break; + } - g_free (binding); + g_free (binding); } /** @@ -1252,13 +1252,13 @@ void gconf_bridge_unbind (GConfBridge *bridge, guint binding_id) { - g_return_if_fail (bridge != NULL); - g_return_if_fail (binding_id > 0); + g_return_if_fail (bridge != NULL); + g_return_if_fail (binding_id > 0); /* This will trigger the hash tables value destruction * function, which will take care of further cleanup */ - g_hash_table_remove (bridge->bindings, - GUINT_TO_POINTER (binding_id)); + g_hash_table_remove (bridge->bindings, + GUINT_TO_POINTER (binding_id)); } /* @@ -1270,34 +1270,34 @@ static void error_handler (GConfClient *client, GError *error) { - static gboolean shown_dialog = FALSE; + static gboolean shown_dialog = FALSE; g_warning ("GConf error:\n %s", error->message); - if (!shown_dialog) { - gchar *message; - GtkWidget *dlg; + if (!shown_dialog) { + gchar *message; + GtkWidget *dlg; message = g_strdup_printf (_("GConf error: %s"), - error->message); - dlg = gtk_message_dialog_new (NULL, 0, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, + error->message); + dlg = gtk_message_dialog_new (NULL, 0, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, "%s", - message); - g_free (message); + message); + g_free (message); - gtk_message_dialog_format_secondary_text - (GTK_MESSAGE_DIALOG (dlg), + gtk_message_dialog_format_secondary_text + (GTK_MESSAGE_DIALOG (dlg), _("All further errors shown only on terminal.")); gtk_window_set_title (GTK_WINDOW (dlg), ""); - gtk_dialog_run (GTK_DIALOG (dlg)); + gtk_dialog_run (GTK_DIALOG (dlg)); - gtk_widget_destroy (dlg); + gtk_widget_destroy (dlg); - shown_dialog = TRUE; - } + shown_dialog = TRUE; + } } /** @@ -1309,5 +1309,5 @@ error_handler (GConfClient *client, void gconf_bridge_install_default_error_handler (void) { - gconf_client_set_global_default_error_handler (error_handler); + gconf_client_set_global_default_error_handler (error_handler); } |