[Xfce4-commits] [xfce/xfconf] 14/31: Use gvalue<->gvariant conversion functions from the common xfconf-gvaluefuncs.c code.

noreply at xfce.org noreply at xfce.org
Thu Jun 1 13:33:07 CEST 2017


This is an automated email from the git hooks/post-receive script.

a   l   i       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository xfce/xfconf.

commit c62a1273806a0c2113ff7d589175c8f977968fe9
Author: Ali Abdallah <aliovx at gmail.com>
Date:   Sun Apr 24 21:29:49 2016 +0200

    Use gvalue<->gvariant conversion functions from the common
    xfconf-gvaluefuncs.c code.
    
    Change XfconfClient to XfconfExported according to the dbus xml file.
---
 xfconf/xfconf-cache.c   | 95 +++++--------------------------------------------
 xfconf/xfconf-channel.c | 36 +++++--------------
 2 files changed, 17 insertions(+), 114 deletions(-)

diff --git a/xfconf/xfconf-cache.c b/xfconf/xfconf-cache.c
index c8249c0..65dba64 100644
--- a/xfconf/xfconf-cache.c
+++ b/xfconf/xfconf-cache.c
@@ -555,7 +555,6 @@ xfconf_cache_set_property_reply_handler(GDBusProxy *proxy,
     g_hash_table_remove(cache->old_properties, old_item->property);
     /* don't destroy old_item yet */
     g_hash_table_steal(cache->pending_calls, old_item->cancellable);
-    g_print ("(1)-\n");
     item = g_tree_lookup(cache->properties, old_item->property);
     if(G_UNLIKELY(!item)) {
 #ifndef NDEBUG
@@ -564,7 +563,7 @@ xfconf_cache_set_property_reply_handler(GDBusProxy *proxy,
         goto out;
     }
 
-    result = xfconf_client_call_set_property_finish ((XfconfClient*)proxy, res, &error);
+    result = xfconf_exported_call_set_property_finish ((XfconfExported*)proxy, res, &error);
     if (!result) {
         GValue empty_val = { 0, };
         g_warning("Failed to set property \"%s::%s\": %s",
@@ -655,7 +654,7 @@ xfconf_cache_prefetch(XfconfCache *cache,
 
     xfconf_cache_mutex_lock(cache);
 
-    if(xfconf_client_call_get_all_properties_sync((XfconfClient *)proxy, cache->channel_name,
+    if(xfconf_exported_call_get_all_properties_sync((XfconfExported *)proxy, cache->channel_name,
                                                   property_base ? property_base : "/",
                                                   &props_variant, NULL, &tmp_error))
     {
@@ -697,7 +696,7 @@ xfconf_cache_lookup_locked(XfconfCache *cache,
         GValue tmpval = { 0, };
         GError *tmp_error = NULL;
         /* blocking, ugh */
-        if(xfconf_client_call_get_property_sync ((XfconfClient *)proxy, cache->channel_name,
+        if(xfconf_exported_call_get_property_sync ((XfconfExported *)proxy, cache->channel_name,
                                                  property, &variant, NULL, &tmp_error))
         {
             g_dbus_gvariant_to_gvalue (variant, &tmpval);
@@ -749,83 +748,6 @@ xfconf_cache_lookup(XfconfCache *cache,
     return ret;
 }
 
-static GVariant *xfconf_cache_basic_value_to_gvariant (const GValue *value) {
-   
-    const GVariantType *type = NULL;
-    
-    switch (G_VALUE_TYPE(value)){
-    case G_TYPE_UINT:
-        type = G_VARIANT_TYPE_UINT32;
-        break;
-    case G_TYPE_INT:
-        type = G_VARIANT_TYPE_INT32;
-        break;
-    case G_TYPE_BOOLEAN:
-        type = G_VARIANT_TYPE_BOOLEAN;
-        break;
-    case G_TYPE_INT64:
-        type = G_VARIANT_TYPE_INT64;
-        break;
-    case G_TYPE_UINT64:
-        type = G_VARIANT_TYPE_UINT64;
-        break;
-    case G_TYPE_DOUBLE:
-        type = G_VARIANT_TYPE_DOUBLE;
-        break;
-    case G_TYPE_STRING:
-        type = G_VARIANT_TYPE_STRING;
-        break;
-    default:
-        break;
-    }
-    
-    if (G_VALUE_TYPE(value) == XFCONF_TYPE_INT16)
-        type = G_VARIANT_TYPE_INT16;
-    else if (G_VALUE_TYPE(value) == XFCONF_TYPE_UINT16)
-        type = G_VARIANT_TYPE_UINT16;
-    
-    if (type) {
-        return g_dbus_gvalue_to_gvariant (value, type);
-    } 
-    
-    g_warning ("Unable to handle gtype '%s' to send over dbus", _xfconf_string_from_gtype(G_VALUE_TYPE(value)));
-
-    return NULL;
-}
-
-
-static GVariant *
-xfconf_cache_value_to_gvariant (const GValue *value)
-{
-    GVariant *variant = NULL;
-
-    if (G_VALUE_TYPE(value) == G_TYPE_PTR_ARRAY) {
-        GPtrArray *arr;
-        GVariantBuilder builder;
-        guint i = 0;
-        
-        g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY);
-        
-        arr = (GPtrArray*)g_value_get_boxed (value);
-        
-        for (i=0; i < arr->len; ++i) {
-            GValue *v = g_ptr_array_index (arr, i);
-            GVariant *var = NULL;
-            
-            var = xfconf_cache_basic_value_to_gvariant (v);
-            if (var)
-                g_variant_builder_add (&builder, "v", var, NULL);
-        }
-        
-        variant = g_variant_builder_end (&builder);
-    }
-    else
-        variant = xfconf_cache_basic_value_to_gvariant(value);
-    
-    return variant;
-}
-
-
 gboolean
 xfconf_cache_set(XfconfCache *cache,
                  const gchar *property,
@@ -849,11 +771,12 @@ xfconf_cache_set(XfconfCache *cache,
 
             if(G_LIKELY(g_dbus_error_is_remote_error (tmp_error)))
                 dbus_error_name = g_dbus_error_get_remote_error (tmp_error);
-
+            
             if(g_strcmp0(dbus_error_name, "org.xfce.Xfconf.Error.PropertyNotFound") != 0
                && g_strcmp0(dbus_error_name, "org.xfce.Xfconf.Error.ChannelNotFound") != 0)
             {
                 /* this is bad... */
+                g_print ("this is bad\n");
                 g_propagate_error(error, tmp_error);
                 xfconf_cache_mutex_unlock(cache);
                 g_free (dbus_error_name);
@@ -897,11 +820,9 @@ xfconf_cache_set(XfconfCache *cache,
         g_hash_table_insert(cache->old_properties, old_item->property, old_item);
     }
 
-    /* can't use the generated dbus-glib binding here cuz we won't
-     * get the pending call pointer in the callback */
-    variant = g_variant_new_variant (xfconf_cache_value_to_gvariant (value));
+    variant = g_variant_new_variant (xfconf_gvalue_to_gvariant (value));
 
-    xfconf_client_call_set_property ((XfconfClient *)proxy, 
+    xfconf_exported_call_set_property ((XfconfExported *)proxy, 
                                      cache->channel_name,
                                      property,
                                      variant,
@@ -991,7 +912,7 @@ xfconf_cache_reset(XfconfCache *cache,
      * this point if a reset is going to remove the property or reset
      * it to a default.  so, we have to do this sync.  sad. */
 
-    ret = xfconf_client_call_reset_property_sync ((XfconfClient*)proxy, cache->channel_name,
+    ret = xfconf_exported_call_reset_property_sync ((XfconfExported*)proxy, cache->channel_name,
                                                   property_base, recursive, NULL, error);
 
     if(ret) {
diff --git a/xfconf/xfconf-channel.c b/xfconf/xfconf-channel.c
index e6a4fc8..09404e2 100644
--- a/xfconf/xfconf-channel.c
+++ b/xfconf/xfconf-channel.c
@@ -669,8 +669,8 @@ xfconf_channel_is_property_locked(XfconfChannel *channel,
     gchar *real_property = REAL_PROP(channel, property);
     ERROR_DEFINE;
     
-    if (!xfconf_client_call_is_property_locked_sync ((XfconfClient*)proxy, channel->channel_name,
-                                                     property, &locked, NULL, ERROR))
+    if (!xfconf_exported_call_is_property_locked_sync ((XfconfExported*)proxy, channel->channel_name,
+                                                       property, &locked, NULL, ERROR))
     {
         ERROR_CHECK;
         locked = FALSE;
@@ -748,10 +748,7 @@ xfconf_channel_get_properties(XfconfChannel *channel,
 {
     GDBusProxy *proxy = _xfconf_get_gdbus_proxy ();
     GHashTable *properties = NULL;
-    GVariant *out_props;
     GVariant *variant;
-    gchar *key;
-    GVariantIter iter;
     gchar *real_property_base;
     ERROR_DEFINE;
 
@@ -760,32 +757,17 @@ xfconf_channel_get_properties(XfconfChannel *channel,
     else
         real_property_base = REAL_PROP(channel, property_base);
 
-    if(!xfconf_client_call_get_all_properties_sync ((XfconfClient*)proxy, channel->channel_name,
-                                                    real_property_base
-                                                    ? real_property_base : "/",
-                                                    &out_props, NULL, ERROR))
+    if(!xfconf_exported_call_get_all_properties_sync ((XfconfExported*)proxy, channel->channel_name,
+                                                      real_property_base
+                                                      ? real_property_base : "/",
+                                                      &variant, NULL, ERROR))
     {
         ERROR_CHECK;
         properties = NULL;
     }
     
-    g_variant_iter_init (&iter, out_props);
-    properties = g_hash_table_new_full(g_str_hash, g_str_equal,
-                                       (GDestroyNotify)g_free,(GDestroyNotify)g_value_unset);
-    
-    while (g_variant_iter_next (&iter, "{&sv}", &key, &variant)) {
-        GValue *value;
-        
-        value = g_new0(GValue, 1);
-        g_dbus_gvariant_to_gvalue(variant, value);
-        g_hash_table_insert (properties, 
-                             g_strdup(key),
-                             value);
-        
-        g_variant_unref (variant);
-        g_free(key);
-    }
-    g_variant_unref (out_props);
+    properties = xfconf_gvariant_to_hash (variant);
+    g_variant_unref (variant);
         
     if(real_property_base != property_base
        && real_property_base != channel->property_base)
@@ -2339,7 +2321,7 @@ xfconf_list_channels(void)
     gchar **channels = NULL;
     ERROR_DEFINE;
 
-    if(!xfconf_client_call_list_channels_sync ((XfconfClient*)proxy, 
+    if(!xfconf_exported_call_list_channels_sync ((XfconfExported*)proxy, 
                                                &channels, NULL, ERROR))
         ERROR_CHECK;
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list