[gnome-terminal] keybindings: Use a child schema



commit 6d682274e40ca7e16fee9bb6625ce45fcb37f2bb
Author: Christian Persch <chpe gnome org>
Date:   Sat Feb 9 15:28:11 2013 +0100

    keybindings: Use a child schema

 src/migration.c                       |    7 ++++---
 src/org.gnome.Terminal.gschema.xml.in |    4 +++-
 src/terminal-accels.c                 |    4 ++--
 src/terminal-accels.h                 |    3 ++-
 src/terminal-app.c                    |    6 +++++-
 5 files changed, 16 insertions(+), 8 deletions(-)
---
diff --git a/src/migration.c b/src/migration.c
index 1e3ae19..9522753 100644
--- a/src/migration.c
+++ b/src/migration.c
@@ -503,7 +503,8 @@ migrate_profiles (GSettings *global_settings,
 }
 
 static gboolean
-migrate_accels (GError **error)
+migrate_accels (GSettings *global_settings,
+                GError **error)
 {
   static const const struct { const char *gconf_key; const char *settings_key; } const data[] = {
     { "new_tab",          "new-tab"            },
@@ -547,7 +548,7 @@ migrate_accels (GError **error)
   GConfValue *value;
 
   client = gconf_client_get_default ();
-  settings = g_settings_new (TERMINAL_KEYBINDINGS_SCHEMA);
+  settings = g_settings_get_child (global_settings, "keybindings");
 
   for (i = 0; i < G_N_ELEMENTS (data); ++i) {
     gconf_path = g_strdup_printf ("/apps/gnome-terminal/keybindings/%s", data[i].gconf_key);
@@ -575,7 +576,7 @@ migrate (GSettings *global_settings,
 {
   return migrate_global_prefs (global_settings, error) &&
     migrate_profiles (global_settings, error) &&
-    migrate_accels (error);
+    migrate_accels (global_settings, error);
 }
 
 static void
diff --git a/src/org.gnome.Terminal.gschema.xml.in b/src/org.gnome.Terminal.gschema.xml.in
index 819a03d..b2e4768 100644
--- a/src/org.gnome.Terminal.gschema.xml.in
+++ b/src/org.gnome.Terminal.gschema.xml.in
@@ -333,7 +333,7 @@
 
   <!-- Keybinding settings -->
 
-  <schema id="org.gnome.Terminal.Legacy.Keybindings" path="/org/gnome/terminal/legacy/keybindings/">
+  <schema id="org.gnome.Terminal.Legacy.Keybindings">
     <key name="new-tab" type="s">
       <default>'&lt;Ctrl&gt;&lt;Shift&gt;t'</default>
       <_summary>Keyboard shortcut to open a new tab</_summary>
@@ -527,6 +527,8 @@
 
    <!-- <child name="profiles" schema="org.gnome.Terminal.ProfilesList" /> -->
 
+   <child name="keybindings" schema="org.gnome.Terminal.Legacy.Keybindings" />
+
     <key name="schema-version" type="u">
       <default>0</default>
     </key>
diff --git a/src/terminal-accels.c b/src/terminal-accels.c
index f8f1b9d..1170c8c 100644
--- a/src/terminal-accels.c
+++ b/src/terminal-accels.c
@@ -310,11 +310,11 @@ map_keybinding (GVariant *variant,
 }
 
 void
-terminal_accels_init (void)
+terminal_accels_init (GSettings *settings)
 {
   guint i, j;
 
-  keybinding_settings = g_settings_new (TERMINAL_KEYBINDINGS_SCHEMA);
+  keybinding_settings = g_object_ref (settings);
   g_signal_connect (keybinding_settings, "changed", G_CALLBACK (keys_change_notify), NULL);
 
   settings_key_to_entry = g_hash_table_new (g_str_hash, g_str_equal);
diff --git a/src/terminal-accels.h b/src/terminal-accels.h
index bbefddf..86e5be6 100644
--- a/src/terminal-accels.h
+++ b/src/terminal-accels.h
@@ -18,11 +18,12 @@
 #ifndef TERMINAL_ACCELS_H
 #define TERMINAL_ACCELS_H
 
+#include <gio/gio.h>
 #include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
-void terminal_accels_init (void);
+void terminal_accels_init (GSettings *settings);
  
 void terminal_accels_shutdown (void);
 
diff --git a/src/terminal-app.c b/src/terminal-app.c
index bfe5ca9..5fa590b 100644
--- a/src/terminal-app.c
+++ b/src/terminal-app.c
@@ -335,6 +335,8 @@ terminal_app_startup (GApplication *application)
 static void
 terminal_app_init (TerminalApp *app)
 {
+  GSettings *settings;
+
   gtk_window_set_default_icon_name (GNOME_TERMINAL_ICON_NAME);
 
   /* Desktop proxy settings */
@@ -360,7 +362,9 @@ terminal_app_init (TerminalApp *app)
                     G_CALLBACK (terminal_app_encoding_list_notify_cb),
                     app);
 
-  terminal_accels_init ();
+  settings = g_settings_get_child (app->global_settings, "keybindings");
+  terminal_accels_init (settings);
+  g_object_unref (settings);
 }
 
 static void


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