[empathy/next: 77/79] EmpathyDebugWindow: use GDBus to call ListNames



commit 759f2cdca01e9f0732b17f5f782d04a9b2b080bf
Author: Simon McVittie <simon mcvittie collabora co uk>
Date:   Thu Mar 27 16:48:01 2014 +0000

    EmpathyDebugWindow: use GDBus to call ListNames

 src/empathy-debug-window.c |   38 +++++++++++++++++++++++++++-----------
 1 files changed, 27 insertions(+), 11 deletions(-)
---
diff --git a/src/empathy-debug-window.c b/src/empathy-debug-window.c
index 8714628..cb6ea12 100644
--- a/src/empathy-debug-window.c
+++ b/src/empathy-debug-window.c
@@ -1110,22 +1110,29 @@ add_service (EmpathyDebugWindow *self,
 }
 
 static void
-list_names_cb (TpDBusDaemon *bus_daemon,
-    const gchar * const *names,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
+list_names_cb (GObject *source_object,
+    GAsyncResult *result,
+    gpointer user_data)
 {
-  EmpathyDebugWindow *self = EMPATHY_DEBUG_WINDOW (weak_object);
+  EmpathyDebugWindow *self = EMPATHY_DEBUG_WINDOW (user_data);
   guint i;
+  GVariant *tuple = NULL;
+  GError *error = NULL;
+  const gchar **names = NULL;
 
-  if (error != NULL)
+  tuple = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source_object),
+      result, &error);
+
+  if (tuple == NULL)
     {
       DEBUG ("Failed to list names: %s", error->message);
-      return;
+      g_error_free (error);
+      goto out;
     }
 
-  for (i = 0; names[i] != NULL; i++)
+  g_variant_get (tuple, "(^a&s)", &names);
+
+  for (i = 0; names != NULL && names[i] != NULL; i++)
     {
       if (g_str_has_prefix (names[i], TP_CLIENT_BUS_NAME_BASE))
         {
@@ -1142,6 +1149,12 @@ list_names_cb (TpDBusDaemon *bus_daemon,
           add_service (self, names[i], "Mission-Control", SERVICE_TYPE_MC);
         }
     }
+
+  g_variant_unref (tuple);
+
+out:
+  g_object_unref (self);
+  g_free (names);
 }
 
 static void
@@ -1162,8 +1175,11 @@ debug_window_fill_service_chooser (EmpathyDebugWindow *self)
   self->priv->services_detected = 0;
   self->priv->name_owner_cb_count = 0;
 
-  tp_dbus_daemon_list_names (self->priv->dbus, 2000,
-      list_names_cb, NULL, NULL, G_OBJECT (self));
+  g_dbus_connection_call (tp_proxy_get_dbus_connection (self->priv->dbus),
+      "org.freedesktop.DBus", "/org/freedesktop/DBus",
+      "org.freedesktop.DBus", "ListNames", NULL,
+      G_VARIANT_TYPE ("(as)"), G_DBUS_CALL_FLAGS_NONE, 2000, NULL,
+      list_names_cb, g_object_ref (self));
 
   self->priv->name_owner_changed_signal =
       tp_cli_dbus_daemon_connect_to_name_owner_changed (self->priv->dbus,


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