[gnome-control-center] universal access: Re-add gconf_on_off_editor stuff for the metacity settings
- From: Rodrigo Moya <rodrigo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] universal access: Re-add gconf_on_off_editor stuff for the metacity settings
- Date: Tue, 30 Nov 2010 13:34:19 +0000 (UTC)
commit 3fe7ff72c32551fdbd15c09aaf6c9fbc7a346683
Author: Rodrigo Moya <rodrigo gnome-db org>
Date: Tue Nov 30 14:27:45 2010 +0100
universal access: Re-add gconf_on_off_editor stuff for the metacity settings
panels/universal-access/cc-ua-panel.c | 77 ++++++++++++++++++++++++++------
1 files changed, 62 insertions(+), 15 deletions(-)
---
diff --git a/panels/universal-access/cc-ua-panel.c b/panels/universal-access/cc-ua-panel.c
index 2aedf21..55a290b 100644
--- a/panels/universal-access/cc-ua-panel.c
+++ b/panels/universal-access/cc-ua-panel.c
@@ -28,9 +28,6 @@
#include "gconf-property-editor.h"
-
-#define CONFIG_ROOT "/desktop/gnome/accessibility"
-
#define WID(b, w) (GtkWidget *) gtk_builder_get_object (b, w)
@@ -236,6 +233,64 @@ settings_on_off_editor_new (CcUaPanelPrivate *priv,
g_settings_bind (settings, key, widget, "active", G_SETTINGS_BIND_DEFAULT);
}
+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)
+{
+ GObject *peditor;
+
+ /* set data to enable/disable the section this on/off switch controls */
+ if (section)
+ {
+ g_object_set_data (G_OBJECT (widget), "section-widgets", section);
+ g_signal_connect (widget, "toggled",
+ G_CALLBACK (cc_ua_panel_section_toggled),
+ priv->builder);
+ }
+
+ /* 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);
+}
+
/* seeing section */
#define GTK_THEME_KEY "gtk-theme"
#define ICON_THEME_KEY "icon-theme"
@@ -257,7 +312,7 @@ settings_on_off_editor_new (CcUaPanelPrivate *priv,
* DPI_HIGH_REASONABLE_VALUE], then we assume that it is lying and we use
* DPI_FALLBACK instead.
*
- * See get_dpi_from_gconf_or_server() below, and also
+ * See get_dpi_from_x_server() below, and also
* https://bugzilla.novell.com/show_bug.cgi?id=217790
*/
#define DPI_LOW_REASONABLE_VALUE 50
@@ -471,9 +526,6 @@ cc_ua_panel_init_seeing (CcUaPanel *self)
{
CcUaPanelPrivate *priv = self->priv;
- gconf_client_add_dir (priv->client, "/desktop/gnome/font_rendering",
- GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-
g_signal_connect (priv->font_settings, "changed", G_CALLBACK (dpi_notify_cb), self);
g_signal_connect (WID (priv->builder, "seeing_contrast_combobox"), "changed",
@@ -482,11 +534,9 @@ cc_ua_panel_init_seeing (CcUaPanel *self)
g_signal_connect (WID (priv->builder, "seeing_text_size_combobox"), "changed",
G_CALLBACK (dpi_combo_box_changed), self);
- gconf_peditor_new_boolean (NULL,
- "/desktop/gnome/accessibility/keyboard/togglekeys_enable",
- WID (priv->builder,
- "seeing_enable_toggle_keys_checkbutton"),
- NULL);
+ g_settings_bind (priv->kb_settings, "togglekeys-enable",
+ WID (priv->builder, "seeing_enable_toggle_keys_checkbutton"), "active",
+ G_SETTINGS_BIND_DEFAULT);
}
@@ -715,9 +765,6 @@ cc_ua_panel_init (CcUaPanel *self)
priv->client = gconf_client_get_default ();
- gconf_client_add_dir (priv->client, CONFIG_ROOT,
- GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-
priv->interface_settings = g_settings_new ("org.gnome.desktop.interface");
g_signal_connect (priv->interface_settings, "changed",
G_CALLBACK (interface_settings_changed_cb), self);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]