[dconf] Adjust to the new GSettingsBackend API



commit 13e610927e0b2b13ecb1cdb63e4e6441b226dffa
Author: Ryan Lortie <desrt desrt ca>
Date:   Thu Jul 22 18:40:26 2010 -0400

    Adjust to the new GSettingsBackend API
    
    And the new DBus API too...

 engine/dconf-engine.c            |    2 +-
 gsettings/dconfsettingsbackend.c |   62 +++++++------------------------------
 service/service.c                |    2 +-
 3 files changed, 14 insertions(+), 52 deletions(-)
---
diff --git a/engine/dconf-engine.c b/engine/dconf-engine.c
index 6402102..e783f72 100644
--- a/engine/dconf-engine.c
+++ b/engine/dconf-engine.c
@@ -542,7 +542,7 @@ dconf_engine_write_many (DConfEngine          *engine,
     g_variant_builder_add (&builder, "(s av)",
                            keys[i], fake_maybe (values[i]));
 
-  dconf_engine_dcem (engine, dcem, "Merge", "(sa(sav))", prefix, &builder);
+  dconf_engine_dcem (engine, dcem, "WriteMany", "(sa(sav))", prefix, &builder);
 
   return TRUE;
 }
diff --git a/gsettings/dconfsettingsbackend.c b/gsettings/dconfsettingsbackend.c
index ee7c741..121d52f 100644
--- a/gsettings/dconfsettingsbackend.c
+++ b/gsettings/dconfsettingsbackend.c
@@ -58,7 +58,7 @@ struct _Outstanding
   DConfEngineMessage dcem;
   volatile guint32 serial;
 
-  gchar *reset_path, *set_key;
+  gchar *set_key;
   GVariant *set_value;
 
   GTree *tree;
@@ -74,18 +74,10 @@ dconf_settings_backend_new_outstanding (DConfSettingsBackend *dcsb,
   Outstanding *outstanding;
 
   outstanding = g_slice_new (Outstanding);
-  outstanding->reset_path = NULL;
   outstanding->set_key = NULL;
   outstanding->dcem = *dcem;
 
-  if (!set_key || g_str_has_suffix (set_key, "/"))
-    {
-      g_assert (set_value == NULL);
-      outstanding->reset_path = g_strdup (set_key);
-    }
-  else
-    outstanding->set_key = g_strdup (set_key);
-
+  outstanding->set_key = g_strdup (set_key);
   outstanding->serial = 0;
 
   if (set_value)
@@ -145,7 +137,6 @@ dconf_settings_backend_remove_outstanding (DConfSettingsBackend  *dcsb,
 
         g_static_mutex_unlock (&dcsb->lock);
 
-        g_free (tmp->reset_path);
         g_free (tmp->set_key);
 
         if (tmp->set_value)
@@ -215,17 +206,7 @@ dconf_settings_backend_scan_outstanding (DConfSettingsBackend  *backend,
 
   for (node = backend->outstanding; node; node = node->next)
     {
-      if (node->reset_path)
-        {
-          if (g_str_has_prefix (key, node->reset_path))
-            {
-              *value = NULL;
-              found = TRUE;
-              break;
-            }
-        }
-
-      else if (node->set_key)
+      if (node->set_key)
         {
           if (strcmp (key, node->set_key) == 0)
             {
@@ -244,7 +225,7 @@ dconf_settings_backend_scan_outstanding (DConfSettingsBackend  *backend,
           gpointer result;
 
           if (dconf_settings_backend_scan_outstanding_tree (node->tree, key,
-                                                    length, &result))
+                                                            length, &result))
             {
               if (result)
                 *value = g_variant_ref (result);
@@ -357,16 +338,6 @@ dconf_settings_backend_read (GSettingsBackend   *backend,
     return dconf_engine_read_default (dcsb->engine, key);
 }
 
-static gchar **
-dconf_settings_backend_list (GSettingsBackend  *backend,
-                             const gchar       *dir,
-                             gchar            **resets,
-                             gsize              n_resets,
-                             gsize             *length)
-{
-  g_assert_not_reached ();
-}
-
 static void
 dconf_settings_backend_send (GDBusConnection    *bus,
                              DConfEngineMessage *dcem,
@@ -449,7 +420,7 @@ dconf_settings_backend_get_bus (DConfSettingsBackend  *dcsb,
 
 static gboolean
 dconf_settings_backend_write (GSettingsBackend *backend,
-                              const gchar      *path_or_key,
+                              const gchar      *key,
                               GVariant         *value,
                               gpointer          origin_tag)
 {
@@ -458,24 +429,17 @@ dconf_settings_backend_write (GSettingsBackend *backend,
   DConfEngineMessage dcem;
   GDBusConnection *bus;
 
-  if (!dconf_engine_write (dcsb->engine, path_or_key, value, &dcem, NULL))
+  if (!dconf_engine_write (dcsb->engine, key, value, &dcem, NULL))
     return FALSE;
 
   if (!dconf_settings_backend_get_bus (dcsb, &bus, &dcem))
     return FALSE;
 
-  serial = dconf_settings_backend_new_outstanding (dcsb,
-                                                   &dcem,
-                                                   path_or_key,
-                                                   value,
-                                                   NULL);
-
+  serial = dconf_settings_backend_new_outstanding (dcsb, &dcem, key,
+                                                   value, NULL);
   dconf_settings_backend_send (bus, &dcem, serial);
 
-  if (g_str_has_suffix (path_or_key, "/"))
-    g_settings_backend_path_changed (backend, path_or_key, origin_tag);
-  else
-    g_settings_backend_changed (backend, path_or_key, origin_tag);
+  g_settings_backend_changed (backend, key, origin_tag);
 
   return TRUE;
 }
@@ -520,10 +484,10 @@ dconf_settings_backend_write_tree (GSettingsBackend *backend,
 
 static void
 dconf_settings_backend_reset (GSettingsBackend *backend,
-                              const gchar      *path_or_key,
+                              const gchar      *key,
                               gpointer          origin_tag)
 {
-  dconf_settings_backend_write (backend, path_or_key, NULL, origin_tag);
+  dconf_settings_backend_write (backend, key, NULL, origin_tag);
 }
 
 static gboolean
@@ -614,11 +578,9 @@ static void
 dconf_settings_backend_class_init (GSettingsBackendClass *class)
 {
   class->read = dconf_settings_backend_read;
-  class->list = dconf_settings_backend_list;
   class->write = dconf_settings_backend_write;
-  class->write_keys = dconf_settings_backend_write_tree;
+  class->write_tree = dconf_settings_backend_write_tree;
   class->reset = dconf_settings_backend_reset;
-  class->reset_path = dconf_settings_backend_reset;
   class->get_writable = dconf_settings_backend_get_writable;
   class->subscribe = dconf_settings_backend_subscribe;
   class->unsubscribe = dconf_settings_backend_unsubscribe;
diff --git a/service/service.c b/service/service.c
index 2c08a8e..4a91e43 100644
--- a/service/service.c
+++ b/service/service.c
@@ -178,7 +178,7 @@ method_call (GDBusConnection       *connection,
       g_free (path);
     }
 
-  else if (strcmp (method_name, "Merge") == 0)
+  else if (strcmp (method_name, "WriteMany") == 0)
     {
       GError *error = NULL;
       const gchar *prefix;



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