[gnome-control-center] universal-access: Migrate mouse settings to GSettings



commit 10d65280f655f968848eda5e19dc08d42b59047d
Author: Rodrigo Moya <rodrigo gnome-db org>
Date:   Tue Nov 30 14:09:20 2010 +0100

    universal-access: Migrate mouse settings to GSettings

 panels/universal-access/cc-ua-panel.c |   89 ++++++++-------------------------
 1 files changed, 21 insertions(+), 68 deletions(-)
---
diff --git a/panels/universal-access/cc-ua-panel.c b/panels/universal-access/cc-ua-panel.c
index 0309c18..d8ab968 100644
--- a/panels/universal-access/cc-ua-panel.c
+++ b/panels/universal-access/cc-ua-panel.c
@@ -31,8 +31,6 @@
 
 #define CONFIG_ROOT "/desktop/gnome/accessibility"
 
-#define MOUSE_CONFIG_ROOT CONFIG_ROOT "/mouse"
-
 #define WID(b, w) (GtkWidget *) gtk_builder_get_object (b, w)
 
 
@@ -211,47 +209,13 @@ cc_ua_panel_section_toggled (GtkToggleButton *button,
     }
 }
 
-static GConfValue*
-cc_ua_panel_toggle_radios (GConfPropertyEditor *peditor,
-                           const GConfValue    *value)
-{
-  GtkWidget *radio;
-  gboolean enabled;
-
-  enabled = gconf_value_get_bool (value);
-  radio = (GtkWidget*) gconf_property_editor_get_ui_control (peditor);
-
-  if (!enabled)
-    {
-      GSList *list, *l;
-
-      list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio));
-
-      if (list)
-        {
-          /* activate the "off" button */
-          for (l = list; l; l = l->next)
-            {
-              if (l->data == radio)
-                continue;
-
-              gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (l->data),
-                                            TRUE);
-            }
-        }
-    }
-
-  return gconf_value_copy (value);
-}
-
 static void
-gconf_on_off_peditor_new (CcUaPanelPrivate  *priv,
-                          const gchar       *key,
-                          GtkWidget         *widget,
-                          gchar            **section)
+settings_on_off_editor_new (CcUaPanelPrivate  *priv,
+                            GSettings         *settings,
+                            const gchar       *key,
+                            GtkWidget         *widget,
+                            gchar            **section)
 {
-  GObject *peditor;
-
   /* set data to enable/disable the section this on/off switch controls */
   if (section)
     {
@@ -262,12 +226,7 @@ gconf_on_off_peditor_new (CcUaPanelPrivate  *priv,
     }
 
   /* set up the boolean editor */
-  peditor = gconf_peditor_new_boolean (NULL, key, widget, NULL);
-  g_object_set (peditor, "conv-to-widget-cb", cc_ua_panel_toggle_radios, NULL);
-
-  /* emit the notify on the key, so that the conv-to-widget-cb callback is run
-   */
-  gconf_client_notify (priv->client, key);
+  g_settings_bind (settings, key, widget, "active", G_SETTINGS_BIND_DEFAULT);
 }
 
 /* seeing section */
@@ -618,17 +577,15 @@ static void
 cc_ua_panel_init_keyboard (CcUaPanel *self)
 {
   CcUaPanelPrivate *priv = self->priv;
-  GConfChangeSet *changeset = NULL;
   GtkWidget *w;
 
-
   /* enable shortcuts */
   w = WID (priv->builder, "typing_keyboard_toggle_checkbox");
   g_settings_bind (priv->kb_settings, "enable", w, "active", G_SETTINGS_BIND_DEFAULT);
 
   /* sticky keys */
   w = WID (priv->builder, "typing_sticky_keys_on_radiobutton");
-  g_settings_bind (priv->kb_settings, "stickykeys-enable", w, "active", G_SETTINGS_BIND_DEFAULT);
+  settings_on_off_editor_new (priv, priv->kb_settings, "stickykeys-enable", w, sticky_keys_section);
 
   w = WID (priv->builder, "typing_sticky_keys_disable_two_keys_checkbutton");
   g_settings_bind (priv->kb_settings, "stickykeys-two-key-off", w, "active", G_SETTINGS_BIND_DEFAULT);
@@ -638,7 +595,7 @@ cc_ua_panel_init_keyboard (CcUaPanel *self)
 
   /* slow keys */
   w = WID (priv->builder, "typing_slow_keys_on_radiobutton");
-  g_settings_bind (priv->kb_settings, "slowkeys-enable", w, "active", G_SETTINGS_BIND_DEFAULT);
+  settings_on_off_editor_new (priv, priv->kb_settings, "slowkeys-enable", w, slow_keys_section);
 
   w = WID (priv->builder, "typing_slowkeys_delay_scale");
   g_settings_bind (priv->kb_settings, "slowkeys-delay",
@@ -656,7 +613,7 @@ cc_ua_panel_init_keyboard (CcUaPanel *self)
 
   /* bounce keys */
   w = WID (priv->builder, "typing_bounce_keys_on_radiobutton");
-  g_settings_bind (priv->kb_settings, "bouncekeys-enable", w, "active", G_SETTINGS_BIND_DEFAULT);
+  settings_on_off_editor_new (priv, priv->kb_settings, "bouncekeys-enable", w, bounce_keys_section);
 
   w = WID (priv->builder, "typing_bouncekeys_delay_scale");
   g_settings_bind (priv->kb_settings, "bouncekeys-delay",
@@ -686,38 +643,34 @@ static void
 cc_ua_panel_init_mouse (CcUaPanel *self)
 {
   CcUaPanelPrivate *priv = self->priv;
-  GConfChangeSet *changeset = NULL;
   GtkWidget *w;
 
   /* mouse keys */
   w = WID (priv->builder, "pointing_mouse_keys_on_radiobutton");
-  g_settings_bind (priv->kb_settings, "mousekeys-enable", w, "active", G_SETTINGS_BIND_DEFAULT);
+  settings_on_off_editor_new (priv, priv->kb_settings, "mousekeys-enable", w, NULL);
 
   /* simulated secondary click */
   w = WID (priv->builder, "pointing_second_click_on_radiobutton");
-  gconf_on_off_peditor_new (priv, MOUSE_CONFIG_ROOT "/delay_enable", w,
-                            secondary_click_section);
+  settings_on_off_editor_new (priv, priv->mouse_settings, "secondary-click-enabled", w, secondary_click_section);
 
   w = WID (priv->builder, "pointing_secondary_click_delay_scale");
-  gconf_peditor_new_numeric_range (changeset,
-                                   MOUSE_CONFIG_ROOT "/delay_time", w,
-                                   NULL);
-
+  g_settings_bind (priv->mouse_settings, "secondary-click-time",
+                   gtk_range_get_adjustment (GTK_RANGE (w)), "value",
+                   G_SETTINGS_BIND_DEFAULT);
 
   /* dwell click */
   w = WID (priv->builder, "pointing_hover_click_on_radiobutton");
-  gconf_on_off_peditor_new (priv,MOUSE_CONFIG_ROOT "/dwell_enable", w,
-                            dwell_click_section);
+  settings_on_off_editor_new (priv, priv->mouse_settings, "dwell-click-enabled", w, dwell_click_section);
 
   w = WID (priv->builder, "pointing_dwell_delay_scale");
-  gconf_peditor_new_numeric_range (changeset,
-                                   MOUSE_CONFIG_ROOT "/dwell_time", w,
-                                   NULL);
+  g_settings_bind (priv->mouse_settings, "dwell-time",
+                   gtk_range_get_adjustment (GTK_RANGE (w)), "value",
+                   G_SETTINGS_BIND_DEFAULT);
 
   w = WID (priv->builder, "pointing_dwell_threshold_scale");
-  gconf_peditor_new_numeric_range (changeset,
-                                   MOUSE_CONFIG_ROOT "/threshold", w,
-                                   NULL);
+  g_settings_bind (priv->mouse_settings, "dwell-threshold",
+                   gtk_range_get_adjustment (GTK_RANGE (w)), "value",
+                   G_SETTINGS_BIND_DEFAULT);
 
   /* mouse preferences button */
   g_signal_connect (WID (priv->builder, "pointing_mouse_preferences_button"),



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