[empathy] Remove folks_individual_dup_from_empathy_contact()



commit a244924636a2a0cde9da06909ac2b1b141ce3b9e
Author: Philip Withnall <philip withnall collabora co uk>
Date:   Wed Jul 7 13:26:19 2010 +0100

    Remove folks_individual_dup_from_empathy_contact()
    
    As EmpathyContact is now a wrapper around FolksPersona, we can mutate the
    persona instead of acquiring an individual and mutating that instead.

 libempathy-gtk/empathy-contact-widget.c |   48 +++++++++---------------------
 libempathy/empathy-contact.c            |   36 +++++------------------
 libempathy/empathy-utils.c              |   32 --------------------
 libempathy/empathy-utils.h              |    1 -
 4 files changed, 23 insertions(+), 94 deletions(-)
---
diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c
index 9bdad55..0da9e00 100644
--- a/libempathy-gtk/empathy-contact-widget.c
+++ b/libempathy-gtk/empathy-contact-widget.c
@@ -579,15 +579,11 @@ contact_widget_cell_toggled (GtkCellRendererToggle *cell,
 
   if (group != NULL)
     {
-      FolksIndividual *individual = folks_individual_dup_from_empathy_contact (
+      FolksPersona *persona = empathy_contact_get_persona (
           information->contact);
 
-      if (individual != NULL)
-        {
-          folks_groups_change_group (FOLKS_GROUPS (individual), group,
-              !was_enabled);
-          g_object_unref (individual);
-        }
+      if (persona != NULL && FOLKS_IS_GROUPS (persona))
+        folks_groups_change_group (FOLKS_GROUPS (persona), group, !was_enabled);
 
       g_free (group);
     }
@@ -795,7 +791,7 @@ contact_widget_button_group_clicked_cb (GtkButton *button,
   GtkTreeView *view;
   GtkListStore *store;
   GtkTreeIter iter;
-  FolksIndividual *individual;
+  FolksPersona *persona;
   const gchar *group;
 
   view = GTK_TREE_VIEW (information->treeview_groups);
@@ -809,13 +805,10 @@ contact_widget_button_group_clicked_cb (GtkButton *button,
       COL_ENABLED, TRUE,
       -1);
 
-  individual = folks_individual_dup_from_empathy_contact (information->contact);
+  persona = empathy_contact_get_persona (information->contact);
 
-  if (individual != NULL)
-    {
-      folks_groups_change_group (FOLKS_GROUPS (individual), group, TRUE);
-      g_object_unref (individual);
-    }
+  if (persona != NULL && FOLKS_IS_GROUPS (persona))
+    folks_groups_change_group (FOLKS_GROUPS (persona), group, TRUE);
 }
 
 static void
@@ -1337,14 +1330,7 @@ contact_widget_entry_alias_focus_event_cb (GtkEditable *editable,
         }
       else
         {
-          FolksIndividual *individual =
-              folks_individual_dup_from_empathy_contact (information->contact);
-
-          if (individual != NULL)
-            {
-              folks_alias_set_alias (FOLKS_ALIAS (individual), alias);
-              g_object_unref (individual);
-            }
+          empathy_contact_set_alias (information->contact, alias);
         }
     }
 
@@ -1535,17 +1521,15 @@ contact_widget_contact_update (EmpathyContactWidget *information)
 
       if (information->flags & EMPATHY_CONTACT_WIDGET_EDIT_FAVOURITE)
         {
-          FolksIndividual *individual =
-              folks_individual_dup_from_empathy_contact (information->contact);
+          FolksPersona *persona = empathy_contact_get_persona (
+              information->contact);
 
-          if (individual != NULL)
+          if (persona != NULL && FOLKS_IS_FAVOURITE (persona))
             {
               gboolean is_favourite = folks_favourite_get_is_favourite (
-                  FOLKS_FAVOURITE (individual));
+                  FOLKS_FAVOURITE (persona));
               contact_widget_favourites_changed_cb (information->manager,
                   information->contact, is_favourite, information);
-
-              g_object_unref (individual);
             }
         }
 
@@ -1672,14 +1656,12 @@ static void
 favourite_toggled_cb (GtkToggleButton *button,
     EmpathyContactWidget *information)
 {
-  FolksIndividual *individual = folks_individual_dup_from_empathy_contact (
-      information->contact);
+  FolksPersona *persona = empathy_contact_get_persona (information->contact);
 
-  if (individual != NULL)
+  if (persona != NULL && FOLKS_IS_FAVOURITE (persona))
     {
       gboolean active = gtk_toggle_button_get_active (button);
-      folks_favourite_set_is_favourite (FOLKS_FAVOURITE (individual), active);
-      g_object_unref (individual);
+      folks_favourite_set_is_favourite (FOLKS_FAVOURITE (persona), active);
     }
 }
 
diff --git a/libempathy/empathy-contact.c b/libempathy/empathy-contact.c
index 64235ea..3a16c3e 100644
--- a/libempathy/empathy-contact.c
+++ b/libempathy/empathy-contact.c
@@ -636,42 +636,22 @@ empathy_contact_set_name (EmpathyContact *contact,
   g_object_unref (contact);
 }
 
-static void
-contact_set_aliases_cb (TpConnection *connection,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-	if (error)
-		DEBUG ("Error: %s", error->message);
-}
-
 void
 empathy_contact_set_alias (EmpathyContact *contact,
     const gchar *alias)
 {
-	TpConnection *connection;
-	GHashTable *new_alias;
-	guint handle;
-
-	g_return_if_fail (EMPATHY_IS_CONTACT (contact));
-
-	handle = empathy_contact_get_handle (contact);
-
-	DEBUG ("Setting alias for contact %s (%d) to %s",
-		empathy_contact_get_id (contact),
-		handle, alias);
+  FolksPersona *persona;
 
-	new_alias = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL,
-	    g_free);
+  g_return_if_fail (EMPATHY_IS_CONTACT (contact));
 
-	g_hash_table_insert (new_alias, GUINT_TO_POINTER (handle), g_strdup (alias));
+  persona = empathy_contact_get_persona (contact);
+  if (persona == NULL || !FOLKS_IS_ALIAS (persona))
+    return;
 
-	connection = empathy_contact_get_connection (contact);
-	tp_cli_connection_interface_aliasing_call_set_aliases (connection, -1,
-	    new_alias, contact_set_aliases_cb, NULL, NULL, NULL);
+  DEBUG ("Setting alias for contact %s to %s", empathy_contact_get_id (contact),
+      alias);
 
-	g_hash_table_destroy (new_alias);
+  folks_alias_set_alias (FOLKS_ALIAS (persona), alias);
 }
 
 EmpathyAvatar *
diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c
index d460f55..9a5e28c 100644
--- a/libempathy/empathy-utils.c
+++ b/libempathy/empathy-utils.c
@@ -621,38 +621,6 @@ empathy_contact_dup_from_folks_individual (FolksIndividual *individual)
   return contact;
 }
 
-/* TODO: This also needs to be eliminated, and is horrifically slow. */
-
-/* Retrieve the first Individual containing a TpContact that corresponds to the
- * given EmpathyContact. Note that this is a temporary convenience. See
- * the TODO above. */
-FolksIndividual *
-folks_individual_dup_from_empathy_contact (EmpathyContact *contact)
-{
-  EmpathyIndividualManager *manager;
-  FolksIndividual *individual = NULL;
-  GList *individuals, *l;
-
-  manager = empathy_individual_manager_dup_singleton ();
-  individuals = empathy_individual_manager_get_members (manager);
-
-  for (l = individuals; (l != NULL) && (individual == NULL); l = l->next)
-    {
-      FolksIndividual *i = FOLKS_INDIVIDUAL (l->data);
-      EmpathyContact *c = empathy_contact_dup_from_folks_individual (i);
-
-      if (c == contact)
-        individual = g_object_ref (i);
-
-      g_object_unref (c);
-    }
-
-  g_list_free (individuals);
-  g_object_unref (manager);
-
-  return individual;
-}
-
 TpChannelGroupChangeReason
 tp_chanel_group_change_reason_from_folks_groups_change_reason (
     FolksGroupsChangeReason reason)
diff --git a/libempathy/empathy-utils.h b/libempathy/empathy-utils.h
index f35d9e5..da0edc5 100644
--- a/libempathy/empathy-utils.h
+++ b/libempathy/empathy-utils.h
@@ -93,7 +93,6 @@ void empathy_connect_new_account (TpAccount *account,
 TpConnectionPresenceType empathy_folks_presence_type_to_tp (FolksPresenceType type);
 gboolean empathy_folks_individual_contains_contact (FolksIndividual *individual);
 EmpathyContact * empathy_contact_dup_from_folks_individual (FolksIndividual *individual);
-FolksIndividual *folks_individual_dup_from_empathy_contact (EmpathyContact *contact);
 TpChannelGroupChangeReason tp_chanel_group_change_reason_from_folks_groups_change_reason (FolksGroupsChangeReason reason);
 
 G_END_DECLS



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