aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/gconf-bridge.c
diff options
context:
space:
mode:
Diffstat (limited to 'e-util/gconf-bridge.c')
-rw-r--r--e-util/gconf-bridge.c1238
1 files changed, 619 insertions, 619 deletions
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);
}