empathy r1733 - trunk/libempathy



Author: xclaesse
Date: Fri Nov 21 16:13:20 2008
New Revision: 1733
URL: http://svn.gnome.org/viewvc/empathy?rev=1733&view=rev

Log:
Added ft-related functions to EmpathyContact. (Jonny Lamb)

Signed-off-by: Jonny Lamb <jonny lamb collabora co uk>

Modified:
   trunk/libempathy/empathy-contact.c
   trunk/libempathy/empathy-contact.h

Modified: trunk/libempathy/empathy-contact.c
==============================================================================
--- trunk/libempathy/empathy-contact.c	(original)
+++ trunk/libempathy/empathy-contact.c	Fri Nov 21 16:13:20 2008
@@ -560,6 +560,20 @@
   return priv->handle;
 }
 
+static gboolean
+is_salut (EmpathyContact *contact)
+{
+  McAccount *account;
+  McProfile *profile;
+  const gchar *name;
+
+  account = empathy_contact_get_account (contact);
+  profile = mc_account_get_profile (account);
+  name = mc_profile_get_protocol_name (profile);
+
+  return (strcmp (name, "local-xmpp") == 0);
+}
+
 void
 empathy_contact_set_handle (EmpathyContact *contact,
                             guint handle)
@@ -575,6 +589,19 @@
     {
       priv->handle = handle;
       g_object_notify (G_OBJECT (contact), "handle");
+
+      /* FIXME salut does not yet support the Capabilities interface, so for
+       * now we use this hack.
+       */
+      if (is_salut (contact))
+        {
+          EmpathyCapabilities caps;
+
+          caps = empathy_contact_get_capabilities (contact);
+          caps |= EMPATHY_CAPABILITIES_FT;
+
+          empathy_contact_set_capabilities (contact, caps);
+        }
     }
   contact_set_ready_flag (contact, EMPATHY_CONTACT_READY_HANDLE);
   g_object_unref (contact);
@@ -680,6 +707,18 @@
       EMPATHY_CAPABILITIES_VIDEO);
 }
 
+gboolean
+empathy_contact_can_send_files (EmpathyContact *contact)
+{
+  EmpathyContactPriv *priv;
+
+  g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), FALSE);
+
+  priv = GET_PRIV (contact);
+
+  return priv->capabilities & EMPATHY_CAPABILITIES_FT;
+}
+
 EmpathyContactReady
 empathy_contact_get_ready (EmpathyContact *contact)
 {

Modified: trunk/libempathy/empathy-contact.h
==============================================================================
--- trunk/libempathy/empathy-contact.h	(original)
+++ trunk/libempathy/empathy-contact.h	Fri Nov 21 16:13:20 2008
@@ -66,6 +66,7 @@
   EMPATHY_CAPABILITIES_NONE = 0,
   EMPATHY_CAPABILITIES_AUDIO = 1 << 0,
   EMPATHY_CAPABILITIES_VIDEO = 1 << 1,
+  EMPATHY_CAPABILITIES_FT = 1 << 2,
   EMPATHY_CAPABILITIES_UNKNOWN = 1 << 7
 } EmpathyCapabilities;
 
@@ -108,6 +109,7 @@
 gboolean empathy_contact_is_online (EmpathyContact *contact);
 const gchar * empathy_contact_get_status (EmpathyContact *contact);
 gboolean empathy_contact_can_voip (EmpathyContact *contact);
+gboolean empathy_contact_can_send_files (EmpathyContact *contact);
 gboolean empathy_contact_equal (gconstpointer v1, gconstpointer v2);
 guint empathy_contact_hash (gconstpointer key);
 void empathy_contact_run_until_ready (EmpathyContact *contact,



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