[devhelp/gsettings] migrate to GSettings



commit 8f23702b6161e843bd4815b3f7140b40bf61ea95
Author: Ryan Lortie <desrt desrt ca>
Date:   Sat Sep 19 15:31:06 2009 -0400

    migrate to GSettings
    
    temporarily remove Mac OS config backend.  this should be redone as a
    GSettingsBackend (possibly moved into GIO itself).

 configure.ac           |   11 +-
 data/Makefile.am       |   13 --
 src/Makefile.am        |    8 -
 src/dh-assistant.c     |    3 +-
 src/dh-base.c          |    8 -
 src/dh-preferences.c   |   71 ++--------
 src/dh-util.c          |  250 ++++++++++++-------------------
 src/dh-util.h          |   13 +--
 src/dh-window.c        |    8 +-
 src/ige-conf-gconf.c   |  387 ------------------------------------------------
 src/ige-conf-mac.c     |  342 ------------------------------------------
 src/ige-conf-private.h |   54 -------
 src/ige-conf.c         |  337 -----------------------------------------
 src/ige-conf.h         |   87 -----------
 14 files changed, 117 insertions(+), 1475 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index d34d3f5..46eb5ab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,7 +32,6 @@ AM_PROG_CC_C_O
 IT_PROG_INTLTOOL([0.40.0])
 
 PKG_PROG_PKG_CONFIG
-AM_GCONF_SOURCE_2
 GNOME_COMPILE_WARNINGS
 
 dnl -----------------------------------------------------------
@@ -40,21 +39,18 @@ dnl Platform (GTK+ X11 or GTK OS X)
 dnl -----------------------------------------------------------
 IGE_PLATFORM_CHECK
 if test "x$IGE_PLATFORM" = xx11; then
-   gconf_pkgconfig="gconf-2.0 >= 2.6.0"
    libwnck_pkgconfig="libwnck-1.0 >= 2.10.0"
    igemacintegration_pkgconfig=
    REQUIRES_LIBWNCK=libwnck-1.0
    PLATFORM_CFLAGS=
    PLATFORM_LDFLAGS=
 else
-   gconf_pkgconfig=
    libwnck_pkgconfig=
    igemacintegration_pkgconfig="ige-mac-integration >= 0.8.2"
    REQUIRES_LIBWNCK=
    PLATFORM_CFLAGS=
    PLATFORM_LDFLAGS=
 fi
-AM_CONDITIONAL(GCONF_SCHEMAS_INSTALL, test "x$IGE_PLATFORM" = xx11)
 AC_SUBST(PLATFORM_CFLAGS)
 AC_SUBST(PLATFORM_LDFLAGS)
 AC_SUBST(REQUIRES_LIBWNCK)
@@ -68,12 +64,17 @@ PKG_CHECK_MODULES(DEVHELP, [
 PKG_CHECK_MODULES(LIBDEVHELP, [
   gthread-2.0 >= 2.10.0
   gtk+-2.0 >= 2.10.0
-  $gconf_pkgconfig
   $libwnck_pkgconfig
   $igemacintegration_pkgconfig
   webkit-1.0 >= 1.1.13
+  gio-2.0 >= 2.21.6
 ])
 
+AC_SUBST(gsettingsschemadir,
+         `pkg-config --variable gsettingsschemadir gio-2.0`)
+AC_SUBST(gsettingsupdateschemacache,
+         `pkg-config --variable gsettingsupdateschemacache gio-2.0`)
+
 AC_ARG_WITH(zlib, [  --with-zlib=DIR         use zlib in DIR], zlibdir=$with_zlib)
 have_zlib=no
 if test "x$zlibdir" != x; then
diff --git a/data/Makefile.am b/data/Makefile.am
index ab68948..12ef7e0 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -14,10 +14,6 @@ desktopdir = $(datadir)/applications
 desktop_in_files = devhelp.desktop.in
 desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
 
-schemasdir = $(GCONF_SCHEMA_FILE_DIR)
-schemas_in_files = devhelp.schemas.in
-schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
- INTLTOOL_SCHEMAS_RULE@
 
 defaultsdir = $(datadir)/devhelp
 defaults_DATA = devhelp.defaults
@@ -31,15 +27,6 @@ EXTRA_DIST =			\
 	$(schemas_DATA)		\
 	$(assistant_DATA)
 
-install-data-local: $(schema_DATA)
-if GCONF_SCHEMAS_INSTALL
-	if test -z "$(DESTDIR)" ; then \
-	for p in $^ ; do \
-	GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $$p >&1 > /dev/null; \
-	done \
-	fi
-endif
-
 CLEANFILES =			\
 	$(DESKTOP_FILES)	\
 	$(defaults_DATA)
diff --git a/src/Makefile.am b/src/Makefile.am
index 89b6260..cf71c6c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -84,9 +84,6 @@ libdevhelp_1_la_SOURCES =				\
 	dh-util.h					\
 	eggfindbar.c					\
 	eggfindbar.h					\
-	ige-conf.c					\
-	ige-conf.h					\
-	ige-conf-private.h				\
 	$(conf_platform_sources)
 
 libdevhelp_1_la_CPPFLAGS =				\
@@ -113,10 +110,5 @@ dh-enum-types.c: dh-enum-types.c.template $(INST_H_FILES) $(GLIB_MKENUMS)
 	$(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template dh-enum-types.c.template $(INST_H_FILES)) > $@
 
 if HAVE_PLATFORM_OSX
-conf_platform_sources = ige-conf-mac.c
 libdevhelp_1_la_CPPFLAGS += -xobjective-c
 endif
-if HAVE_PLATFORM_X11
-conf_platform_sources = ige-conf-gconf.c
-endif
-
diff --git a/src/dh-assistant.c b/src/dh-assistant.c
index a311a27..40650c4 100644
--- a/src/dh-assistant.c
+++ b/src/dh-assistant.c
@@ -91,8 +91,7 @@ dh_assistant_init (DhAssistant *assistant)
         gtk_box_pack_start (GTK_BOX (priv->main_box),
                             scrolled_window, TRUE, TRUE, 0);
 
-        dh_util_state_manage_window (GTK_WINDOW (assistant),
-                                     "assistant/window");
+        dh_util_state_manage_window (GTK_WINDOW (assistant), "assistant");
 }
 
 GtkWidget *
diff --git a/src/dh-base.c b/src/dh-base.c
index f539a30..fecfd58 100644
--- a/src/dh-base.c
+++ b/src/dh-base.c
@@ -37,7 +37,6 @@
 #include "dh-preferences.h"
 #include "dh-assistant.h"
 #include "dh-util.h"
-#include "ige-conf.h"
 #include "dh-base.h"
 
 typedef struct {
@@ -92,13 +91,6 @@ static void
 dh_base_init (DhBase *base)
 {
         DhBasePriv *priv = GET_PRIVATE (base);
-        IgeConf    *conf;
-        gchar      *path;
-
-        conf = ige_conf_get ();
-        path = dh_util_build_data_filename ("devhelp", "devhelp.defaults", NULL);
-        ige_conf_add_defaults (conf, path);
-        g_free (path);
 
         priv->book_tree = g_node_new (NULL);
         priv->books = g_hash_table_new_full (g_str_hash, g_str_equal,
diff --git a/src/dh-preferences.c b/src/dh-preferences.c
index acd5463..86f2a8f 100644
--- a/src/dh-preferences.c
+++ b/src/dh-preferences.c
@@ -23,10 +23,10 @@
 #include <string.h>
 #include "dh-util.h" 
 #include "dh-preferences.h"
-#include "ige-conf.h"
 #include "dh-base.h"
 
 typedef struct {
+        GSettings *settings;
 	GtkWidget *dialog;
 
 	GtkWidget *system_fonts_button;
@@ -59,16 +59,6 @@ static void     preferences_use_system_font_notify_cb (IgeConf          *client,
                                                        gpointer          user_data);
 static void     preferences_connect_conf_listeners    (void);
 #endif
-static void     preferences_get_font_names            (gboolean          use_system_fonts,
-                                                       gchar           **variable,
-                                                       gchar           **fixed);
-
-#define DH_CONF_PATH                  "/apps/devhelp"
-#define DH_CONF_USE_SYSTEM_FONTS      DH_CONF_PATH "/ui/use_system_fonts"
-#define DH_CONF_VARIABLE_FONT         DH_CONF_PATH "/ui/variable_font"
-#define DH_CONF_FIXED_FONT            DH_CONF_PATH "/ui/fixed_font"
-#define DH_CONF_SYSTEM_VARIABLE_FONT  "/desktop/gnome/interface/font_name"
-#define DH_CONF_SYSTEM_FIXED_FONT     "/desktop/gnome/interface/monospace_font_name"
 
 static DhPreferences *prefs;
 
@@ -77,6 +67,8 @@ preferences_init (void)
 {
 	if (!prefs) {
                 prefs = g_new0 (DhPreferences, 1);
+                /* XXX unsupported use of gsettings */
+                prefs->settings = g_settings_new ("org.gnome.devhelp/ui");
         }
 }
 
@@ -85,17 +77,14 @@ preferences_font_set_cb (GtkFontButton *button, gpointer user_data)
 {
 	DhPreferences *prefs = user_data;
 	const gchar   *font_name;
-	const gchar   *key;
 
 	font_name = gtk_font_button_get_font_name (button);
 
 	if (GTK_WIDGET (button) == prefs->variable_font_button) {
-		key = DH_CONF_VARIABLE_FONT;
+                g_settings_set (prefs->settings, "variable_font", font_name);
 	} else {
-		key = DH_CONF_FIXED_FONT;
+                g_settings_set (prefs->settings, "fixed_font", font_name);
 	}
-
-	ige_conf_set_string (ige_conf_get (), key, font_name);
 }
 
 static void
@@ -121,10 +110,7 @@ preferences_system_fonts_toggled_cb (GtkToggleButton *button,
 
 	active = gtk_toggle_button_get_active (button);
 
-	ige_conf_set_bool (ige_conf_get (),
-                           DH_CONF_USE_SYSTEM_FONTS,
-                           active);
-	
+	g_settings_set (prefs->settings, "use_system_fonts", active);
 	gtk_widget_set_sensitive (prefs->fonts_table, !active);
 }
 
@@ -229,42 +215,6 @@ preferences_connect_conf_listeners (void)
 }
 #endif
 
-/* FIXME: Use the functions in dh-util.c for this. */
-static void
-preferences_get_font_names (gboolean   use_system_fonts, 
-			    gchar    **variable,
-			    gchar    **fixed)
-{
-	gchar   *var_font_name, *fixed_font_name;
-	IgeConf *conf;
-
-	conf = ige_conf_get ();
-
-	if (use_system_fonts) {
-#ifdef GDK_WINDOWING_QUARTZ
-                var_font_name = g_strdup ("Lucida Grande 14");
-                fixed_font_name = g_strdup ("Monaco 14");
-#else
-		ige_conf_get_string (conf,
-                                     DH_CONF_SYSTEM_VARIABLE_FONT,
-                                     &var_font_name);
-		ige_conf_get_string (conf,
-                                     DH_CONF_SYSTEM_FIXED_FONT,
-                                     &fixed_font_name);
-#endif
-	} else {
-		ige_conf_get_string (conf,
-                                     DH_CONF_VARIABLE_FONT, 
-                                     &var_font_name);
-                ige_conf_get_string (conf,
-                                     DH_CONF_FIXED_FONT,
-                                     &fixed_font_name);
-	}
-
-	*variable = var_font_name;
-	*fixed = fixed_font_name;
-}
-
 void
 dh_preferences_show_dialog (GtkWindow *parent)
 {
@@ -304,15 +254,14 @@ dh_preferences_show_dialog (GtkWindow *parent)
                 "system_fonts_button", "toggled", preferences_system_fonts_toggled_cb,
                 NULL);
 
-	ige_conf_get_bool (ige_conf_get (),
-                           DH_CONF_USE_SYSTEM_FONTS,
-                           &use_system_fonts);
+        g_settings_get (prefs->settings, "use_system_fonts", &use_system_fonts);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->system_fonts_button),
 				      use_system_fonts);
 	gtk_widget_set_sensitive (prefs->fonts_table, !use_system_fonts);
 
-	preferences_get_font_names (FALSE, &var_font_name, &fixed_font_name);
-	
+	g_settings_get (prefs->settings, "variable_font", &var_font_name);
+        g_settings_get (prefs->settings, "fixed_font", &fixed_font_name);
+
 	if (var_font_name) {
 		gtk_font_button_set_font_name (GTK_FONT_BUTTON (prefs->variable_font_button),
 					       var_font_name);
diff --git a/src/dh-util.c b/src/dh-util.c
index d1f2653..4bf0a49 100644
--- a/src/dh-util.c
+++ b/src/dh-util.c
@@ -26,9 +26,13 @@
 #ifdef GDK_WINDOWING_QUARTZ
 #include <CoreFoundation/CoreFoundation.h>
 #endif
-#include "ige-conf.h"
 #include "dh-util.h"
 
+#ifndef GDK_WINDOWING_QUARTZ
+static GSettings *desktop_settings;
+#endif
+static GSettings *state_settings;
+static GSettings *ui_settings;
 static GList *views;
 
 static GtkBuilder *
@@ -222,15 +226,53 @@ dh_util_build_data_filename (const gchar *first_part,
         return ret;
 }
 
+static void font_notify_cb (void);
+static void
+dh_util_settings_init (void)
+{
+        GSettings *toplevel;
+
+        /* just once */
+        if (ui_settings != NULL) {
+                return;
+        }
+
+        toplevel = g_settings_new ("org.gnome.Devhelp");
+        ui_settings = g_settings_get_settings (toplevel, "ui");
+        g_signal_connect (ui_settings, "changed", font_notify_cb, NULL);
+        state_settings = g_settings_get_settings (toplevel, "state");
+        g_object_unref (toplevel);
+
+#ifndef GDK_WINDOWING_QUARTZ
+        desktop_settings = g_settings_new ("org.gnome.Desktop.Interface");
+        g_signal_connect (desktop_settings, "changed", font_notify_cb, NULL);
+#endif
+}
+
+static GSettings *
+util_get_settings_for_widget (const gchar *component,
+                              const gchar *widget)
+{
+  GSettings *component_settings, *widget_settings;
+
+  dh_util_settings_init ();
+
+  component_settings = g_settings_get_settings (state_settings, component);
+  widget_settings = g_settings_get_settings (component_settings, widget);
+  g_object_unref (component_settings);
+
+  return widget_settings;
+}
+
 typedef struct {
-        gchar *name;
+        GSettings *settings;
         guint  timeout_id;
 } DhUtilStateItem;
 
 static void
 util_state_item_free (DhUtilStateItem *item)
 {
-        g_free (item->name);
+        g_object_unref (item->settings);
         if (item->timeout_id) {
                 g_source_remove (item->timeout_id);
         }
@@ -238,13 +280,13 @@ util_state_item_free (DhUtilStateItem *item)
 }
 
 static void
-util_state_setup_widget (GtkWidget   *widget, 
-                         const gchar *name)
+util_state_setup_widget (GtkWidget *widget,
+                         GSettings *settings)
 {
         DhUtilStateItem *item;
 
         item = g_slice_new0 (DhUtilStateItem);
-        item->name = g_strdup (name);
+        item->settings = g_object_ref (settings);
 
         g_object_set_data_full (G_OBJECT (widget),
                                 "dh-util-state",
@@ -252,13 +294,6 @@ util_state_setup_widget (GtkWidget   *widget,
                                 (GDestroyNotify) util_state_item_free);
 }
 
-static gchar *
-util_state_get_key (const gchar *name,
-                    const gchar *key)
-{
-        return g_strdup_printf ("/apps/devhelp/state/%s/%s", name, key);
-}
-
 static void
 util_state_schedule_save (GtkWidget   *widget,
                           GSourceFunc  func)
@@ -277,10 +312,9 @@ util_state_schedule_save (GtkWidget   *widget,
 }
 
 static void
-util_state_save_window (GtkWindow   *window,
-                        const gchar *name)
+util_state_save_window (GtkWindow  *window,
+                        GSettings  *settings)
 {
-        gchar          *key;
         GdkWindowState  state;
         gboolean        maximized;
         gint            width, height;
@@ -291,15 +325,14 @@ util_state_save_window (GtkWindow   *window,
 #else
         state = gdk_window_get_state (GTK_WIDGET (window)->window);
 #endif
+
         if (state & GDK_WINDOW_STATE_MAXIMIZED) {
                 maximized = TRUE;
         } else {
                 maximized = FALSE;
         }
 
-        key = util_state_get_key (name, "maximized");
-        ige_conf_set_bool (ige_conf_get (), key, maximized);
-        g_free (key);
+        g_settings_set (settings, "maximized", maximized);
 
         /* If maximized don't save the size and position. */
         if (maximized) {
@@ -307,52 +340,25 @@ util_state_save_window (GtkWindow   *window,
         }
 
         gtk_window_get_size (GTK_WINDOW (window), &width, &height);
-
-        key = util_state_get_key (name, "width");
-        ige_conf_set_int (ige_conf_get (), key, width);
-        g_free (key);
-
-        key = util_state_get_key (name, "height");
-        ige_conf_set_int (ige_conf_get (), key, height);
-        g_free (key);
+        g_settings_set (settings, "size", width, height);
 
         gtk_window_get_position (GTK_WINDOW (window), &x, &y);
-
-        key = util_state_get_key (name, "x_position");
-        ige_conf_set_int (ige_conf_get (), key, x);
-        g_free (key);
-
-        key = util_state_get_key (name, "y_position");
-        ige_conf_set_int (ige_conf_get (), key, y);
-        g_free (key);
+        g_settings_set (settings, "position", x, y);
 }
 
 static void
 util_state_restore_window (GtkWindow   *window,
-                           const gchar *name)
+                           GSettings   *settings)
 {
-        gchar     *key;
         gboolean   maximized;
         gint       width, height;
         gint       x, y;
         GdkScreen *screen;
         gint       max_width, max_height;
 
-        key = util_state_get_key (name, "width");
-        ige_conf_get_int (ige_conf_get (), key, &width);
-        g_free (key);
-
-        key = util_state_get_key (name, "height");
-        ige_conf_get_int (ige_conf_get (), key, &height);
-        g_free (key);
-
-        key = util_state_get_key (name, "x_position");
-        ige_conf_get_int (ige_conf_get (), key, &x);
-        g_free (key);
-
-        key = util_state_get_key (name, "y_position");
-        ige_conf_get_int (ige_conf_get (), key, &y);
-        g_free (key);
+        g_settings_get (settings, "maximized", &maximized);
+        g_settings_get (settings, "size", &width, &height);
+        g_settings_get (settings, "position", &x, &y);
 
         if (width > 1 && height > 1) {
                 screen = gtk_widget_get_screen (GTK_WIDGET (window));
@@ -370,10 +376,6 @@ util_state_restore_window (GtkWindow   *window,
 
         gtk_window_move (window, x, y);
 
-        key = util_state_get_key (name, "maximized");
-        ige_conf_get_bool (ige_conf_get (), key, &maximized);
-        g_free (key);
-
         if (maximized) {
                 gtk_window_maximize (window);
         }
@@ -387,7 +389,7 @@ util_state_window_timeout_cb (gpointer window)
         item = g_object_get_data (window, "dh-util-state");
         if (item) {
                 item->timeout_id = 0;
-                util_state_save_window (window, item->name);
+                util_state_save_window (window, item->settings);
         }
 
 	return FALSE;
@@ -409,15 +411,10 @@ util_state_paned_timeout_cb (gpointer paned)
 
         item = g_object_get_data (paned, "dh-util-state");
         if (item) {
-                gchar *key;
-
                 item->timeout_id = 0;
 
-                key = util_state_get_key (item->name, "position");
-                ige_conf_set_int (ige_conf_get (),
-                                  key,
-                                  gtk_paned_get_position (paned));
-                g_free (key);
+                g_settings_set (item->settings, "position",
+                                gtk_paned_get_position (paned));
         }
 
 	return FALSE;
@@ -433,31 +430,33 @@ util_state_paned_changed_cb (GtkWidget *paned,
 
 void
 dh_util_state_manage_window (GtkWindow   *window,
-                             const gchar *name)
+                             const gchar *component)
 {
-        util_state_setup_widget (GTK_WIDGET (window), name);
+        GSettings *settings;
+
+        settings = util_get_settings_for_widget (component, "window");
+
+        util_state_setup_widget (GTK_WIDGET (window), settings);
 
         g_signal_connect (window, "configure-event",
                           G_CALLBACK (util_state_window_configure_event_cb),
                           NULL);
 
-        util_state_restore_window (window, name);
+        util_state_restore_window (window, settings);
 }
 
 void
 dh_util_state_manage_paned (GtkPaned    *paned,
-                            const gchar *name)
+                            const gchar *component)
 {
-        gchar *key;
-        gint   position;
+        GSettings *settings;
+        gint       position;
 
-        util_state_setup_widget (GTK_WIDGET (paned), name);
+        settings = util_get_settings_for_widget (component, "paned");
 
-        key = util_state_get_key (name, "position");
-        if (ige_conf_get_int (ige_conf_get (), key, &position)) {
-                gtk_paned_set_position (paned, position);
-        }
-        g_free (key);
+        util_state_setup_widget (GTK_WIDGET (paned), settings);
+        g_settings_get (settings, "position", &position);
+        gtk_paned_set_position (paned, position);
 
         g_signal_connect (paned, "notify::position",
                           G_CALLBACK (util_state_paned_changed_cb),
@@ -481,11 +480,7 @@ util_state_notebook_timeout_cb (gpointer notebook)
                         gtk_notebook_get_current_page (notebook));
                 page_name = dh_util_state_get_notebook_page_name (page);
                 if (page_name) {
-                        gchar *key;
-
-                        key = util_state_get_key (item->name, "selected_tab");
-                        ige_conf_set_string (ige_conf_get (), key, page_name);
-                        g_free (key);
+                        g_settings_set (item->settings, "selected_tab", page_name);
                 }
         }
 
@@ -520,20 +515,17 @@ dh_util_state_get_notebook_page_name (GtkWidget *page)
 
 void
 dh_util_state_manage_notebook (GtkNotebook *notebook,
-                               const gchar *name,
-                               const gchar *default_tab)
+                               const gchar *component)
 {
-        gchar     *key;
+        GSettings *settings;
         gchar     *tab;
         gint       i;
 
-        util_state_setup_widget (GTK_WIDGET (notebook), name);
+        settings = util_get_settings_for_widget (component,
+                                                 "search_notebook");
 
-        key = util_state_get_key (name, "selected_tab");
-        if (!ige_conf_get_string (ige_conf_get (), key, &tab)) {
-                tab = g_strdup (default_tab);
-        }
-        g_free (key);
+        util_state_setup_widget (GTK_WIDGET (notebook), settings);
+        g_settings_get (settings, "selected_tab", &tab);
 
         for (i = 0; i < gtk_notebook_get_n_pages (notebook); i++) {
                 GtkWidget   *page;
@@ -581,35 +573,23 @@ split_font_string (const gchar  *name_and_size,
 	return retval;
 }
 
-#define DH_CONF_PATH                  "/apps/devhelp"
-#define DH_CONF_USE_SYSTEM_FONTS      DH_CONF_PATH "/ui/use_system_fonts"
-#define DH_CONF_VARIABLE_FONT         DH_CONF_PATH "/ui/variable_font"
-#define DH_CONF_FIXED_FONT            DH_CONF_PATH "/ui/fixed_font"
-#define DH_CONF_SYSTEM_VARIABLE_FONT  "/desktop/gnome/interface/font_name"
-#define DH_CONF_SYSTEM_FIXED_FONT     "/desktop/gnome/interface/monospace_font_name"
-
-void
+static void
 dh_util_font_get_variable (gchar    **name,
                            gdouble   *size,
                            gboolean   use_system_fonts)
 {
-	IgeConf *conf;
 	gchar   *name_and_size;
 
-	conf = ige_conf_get ();
-
 	if (use_system_fonts) {
 #ifdef GDK_WINDOWING_QUARTZ
                 name_and_size = g_strdup ("Lucida Grande 14");
 #else
-		ige_conf_get_string (conf,
-                                     DH_CONF_SYSTEM_VARIABLE_FONT,
-                                     &name_and_size);
+                g_settings_get (desktop_settings,
+                                "font_name", &name_and_size);
 #endif
 	} else {
-		ige_conf_get_string (conf,
-                                     DH_CONF_VARIABLE_FONT, 
-                                     &name_and_size);
+                g_settings_get (ui_settings,
+                                "variable_font", &name_and_size);
 	}
 
         if (!split_font_string (name_and_size, name, size)) {
@@ -620,28 +600,22 @@ dh_util_font_get_variable (gchar    **name,
         g_free (name_and_size);
 }
 
-void
+static void
 dh_util_font_get_fixed (gchar    **name,
                         gdouble   *size,
                         gboolean   use_system_fonts)
 {
-	IgeConf *conf;
 	gchar   *name_and_size;
 
-	conf = ige_conf_get ();
-
 	if (use_system_fonts) {
 #ifdef GDK_WINDOWING_QUARTZ
                 name_and_size = g_strdup ("Monaco 14");
 #else
-		ige_conf_get_string (conf,
-                                     DH_CONF_SYSTEM_FIXED_FONT,
-                                     &name_and_size);
+                g_settings_get (desktop_settings,
+                                "monospace_font_name", &name_and_size);
 #endif
 	} else {
-		ige_conf_get_string (conf,
-                                     DH_CONF_FIXED_FONT, 
-                                     &name_and_size);
+                g_settings_get (ui_settings, "fixed_font", &name_and_size);
 	}
 
         if (!split_font_string (name_and_size, name, size)) {
@@ -662,7 +636,6 @@ view_destroy_cb (GtkWidget *view,
 static void
 view_setup_fonts (WebKitWebView *view)
 {
-        IgeConf           *conf;
         WebKitWebSettings *settings;
         gboolean           use_system_fonts;
 	gchar             *variable_name;
@@ -670,13 +643,9 @@ view_setup_fonts (WebKitWebView *view)
 	gchar             *fixed_name;
 	gdouble            fixed_size;
 
-        conf = ige_conf_get ();
-
         settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (view));
 
-	ige_conf_get_bool (conf,
-                           DH_CONF_USE_SYSTEM_FONTS,
-                           &use_system_fonts);
+        g_settings_get (ui_settings, "use_system_fonts", &use_system_fonts);
 
         dh_util_font_get_variable (&variable_name, &variable_size,
                                    use_system_fonts);
@@ -693,9 +662,7 @@ view_setup_fonts (WebKitWebView *view)
 }
 
 static void
-font_notify_cb (IgeConf     *conf,
-                const gchar *path,
-                gpointer     user_data)
+font_notify_cb (void)
 {
         GList *l;
 
@@ -707,36 +674,7 @@ font_notify_cb (IgeConf     *conf,
 void
 dh_util_font_add_web_view (WebKitWebView *view)
 {
-        static gboolean setup;
-
-        if (!setup) {
-                IgeConf *conf;
-
-                conf = ige_conf_get ();
-
-		ige_conf_notify_add (conf,
-                                     DH_CONF_USE_SYSTEM_FONTS,
-                                     font_notify_cb,
-                                     NULL);
-		ige_conf_notify_add (conf,
-                                     DH_CONF_SYSTEM_VARIABLE_FONT,
-                                     font_notify_cb,
-                                     NULL);
-		ige_conf_notify_add (conf,
-                                     DH_CONF_SYSTEM_FIXED_FONT,
-                                     font_notify_cb,
-                                     NULL);
-		ige_conf_notify_add (conf,
-                                     DH_CONF_VARIABLE_FONT,
-                                     font_notify_cb,
-                                     NULL);
-		ige_conf_notify_add (conf,
-                                     DH_CONF_FIXED_FONT,
-                                     font_notify_cb,
-                                     NULL);
-
-                setup = TRUE;
-        }
+        dh_util_settings_init ();
 
         views = g_list_prepend (views, view);
 
diff --git a/src/dh-util.h b/src/dh-util.h
index a033d99..5302634 100644
--- a/src/dh-util.h
+++ b/src/dh-util.h
@@ -40,22 +40,15 @@ void         dh_util_builder_connect              (GtkBuilder  *gui,
 gchar *      dh_util_build_data_filename          (const gchar *first_part,
                                                    ...);
 void         dh_util_state_manage_window          (GtkWindow   *window,
-                                                   const gchar *name);
+                                                   const gchar *component);
 void         dh_util_state_manage_paned           (GtkPaned    *paned,
-                                                   const gchar *name);
+                                                   const gchar *component);
 void         dh_util_state_manage_notebook        (GtkNotebook *notebook,
-                                                   const gchar *name,
-                                                   const gchar *default_tab);
+                                                   const gchar *component);
 void         dh_util_state_set_notebook_page_name (GtkWidget   *page,
                                                    const gchar *page_name);
 const gchar *dh_util_state_get_notebook_page_name (GtkWidget   *page);
 
-void         dh_util_font_get_variable            (gchar        **name,
-                                                   gdouble       *size,
-                                                   gboolean       use_system_font);
-void         dh_util_font_get_fixed               (gchar        **name,
-                                                   gdouble       *size,
-                                                   gboolean       use_system_font);
 void         dh_util_font_add_web_view            (WebKitWebView *view);
 gint         dh_util_cmp_book                     (DhLink *a,
                                                    DhLink *b);
diff --git a/src/dh-window.c b/src/dh-window.c
index e119c1d..5ea776c 100644
--- a/src/dh-window.c
+++ b/src/dh-window.c
@@ -37,7 +37,6 @@
 #include "dh-marshal.h"
 #include "dh-enum-types.h"
 #include "eggfindbar.h"
-#include "ige-conf.h"
 
 struct _DhWindowPriv {
         DhBase         *base;
@@ -1459,11 +1458,10 @@ dh_window_new (DhBase *base)
 
         gtk_window_set_icon_name (GTK_WINDOW (window), "devhelp");
 
-        dh_util_state_manage_window (GTK_WINDOW (window), "main/window");
-        dh_util_state_manage_paned (GTK_PANED (priv->hpaned), "main/paned");
+        dh_util_state_manage_window (GTK_WINDOW (window), "main");
+        dh_util_state_manage_paned (GTK_PANED (priv->hpaned), "main");
         dh_util_state_manage_notebook (GTK_NOTEBOOK (priv->control_notebook),
-                                       "main/search_notebook",
-                                       "content");
+                                       "main");
 
         return GTK_WIDGET (window);
 }



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