]> git.0d.be Git - empathy.git/commitdiff
Use Folks to check if a TpConnection can alias and group personas.
authorTravis Reitter <travis.reitter@collabora.co.uk>
Wed, 13 Oct 2010 05:45:53 +0000 (22:45 -0700)
committerTravis Reitter <travis.reitter@collabora.co.uk>
Fri, 15 Oct 2010 21:14:45 +0000 (14:14 -0700)
Helps bgo#625969.

libempathy-gtk/empathy-individual-menu.c
libempathy/empathy-utils.c
libempathy/empathy-utils.h

index b1237cf8bd16ebfe04d6f19e36d25b79a2f7cd1b..e3159b401d7113e89c293e093fcc5771d2861152 100644 (file)
@@ -822,15 +822,12 @@ empathy_individual_edit_menu_item_new (FolksIndividual *individual)
   if (empathy_individual_manager_initialized ())
     {
       TpConnection *connection;
-      EmpathyIndividualManagerFlags flags;
 
       manager = empathy_individual_manager_dup_singleton ();
       connection = empathy_contact_get_connection (contact);
-      flags = empathy_individual_manager_get_flags_for_connection (
-          manager, connection);
 
-      enable = (flags & EMPATHY_INDIVIDUAL_MANAGER_CAN_ALIAS ||
-                flags & EMPATHY_INDIVIDUAL_MANAGER_CAN_GROUP);
+      enable = (empathy_connection_can_alias_personas (connection) &&
+                empathy_connection_can_group_personas (connection));
 
       g_object_unref (manager);
     }
index e6dc34303e24e687c832510f53888c342c417e6c..6bbd53f86d4395832b64ff967d843414e73f608f 100644 (file)
@@ -822,6 +822,34 @@ empathy_connection_can_add_personas (TpConnection *connection)
       FOLKS_MAYBE_BOOL_TRUE);
 }
 
+gboolean
+empathy_connection_can_alias_personas (TpConnection *connection)
+{
+  FolksPersonaStore *persona_store;
+
+  g_return_val_if_fail (TP_IS_CONNECTION (connection), FALSE);
+
+  persona_store = FOLKS_PERSONA_STORE (
+      empathy_get_persona_store_for_connection (connection));
+
+  return (folks_persona_store_get_can_alias_personas (persona_store) ==
+      FOLKS_MAYBE_BOOL_TRUE);
+}
+
+gboolean
+empathy_connection_can_group_personas (TpConnection *connection)
+{
+  FolksPersonaStore *persona_store;
+
+  g_return_val_if_fail (TP_IS_CONNECTION (connection), FALSE);
+
+  persona_store = FOLKS_PERSONA_STORE (
+      empathy_get_persona_store_for_connection (connection));
+
+  return (folks_persona_store_get_can_group_personas (persona_store) ==
+      FOLKS_MAYBE_BOOL_TRUE);
+}
+
 gchar *
 empathy_get_x509_certificate_hostname (gnutls_x509_crt_t cert)
 {
index 7b9f897fb16fcc4071ea488bdbef6af72f5f259a..3c89962c14c73f36b8085c752033b95dd7f7af60 100644 (file)
@@ -102,6 +102,8 @@ EmpathyContact * empathy_contact_dup_from_folks_individual (FolksIndividual *ind
 TpChannelGroupChangeReason tp_channel_group_change_reason_from_folks_groups_change_reason (FolksGroupableChangeReason reason);
 TpfPersonaStore * empathy_get_persona_store_for_connection (TpConnection *connection);
 gboolean empathy_connection_can_add_personas (TpConnection *connection);
+gboolean empathy_connection_can_alias_personas (TpConnection *connection);
+gboolean empathy_connection_can_group_personas (TpConnection *connection);
 
 gchar * empathy_get_x509_certificate_hostname (gnutls_x509_crt_t cert);