]> git.0d.be Git - empathy.git/commitdiff
Merge branch 'call'
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Thu, 9 Jun 2011 09:28:44 +0000 (10:28 +0100)
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Thu, 9 Jun 2011 09:28:44 +0000 (10:28 +0100)
13 files changed:
configure.ac
libempathy-gtk/Makefile.am
libempathy-gtk/empathy-chat.c
libempathy-gtk/empathy-individual-store.c
libempathy-gtk/empathy-individual-store.h
libempathy-gtk/empathy-individual-view.c
libempathy/Makefile.am
libempathy/empathy-contact.c
libempathy/empathy-tp-chat.c
libempathy/empathy-tp-chat.h
po/es.po
src/empathy-chat-manager.c
src/empathy-main-window.c

index fbe42221cccaf094607e53825c747a306810c895..a8a272be188d325a0d9420760594b02f759e076d 100644 (file)
@@ -412,6 +412,35 @@ AM_CONDITIONAL(HAVE_GEOCLUE, test "x$have_geoclue" = "xyes")
 AC_SUBST(GEOCLUE_CFLAGS)
 AC_SUBST(GEOCLUE_LIBS)
 
+# -----------------------------------------------------------
+# location checks: geocode-glib
+# -----------------------------------------------------------
+AC_ARG_ENABLE(geocode,
+              AS_HELP_STRING([--enable-geocode=@<:@no/yes/auto@:>@],
+                             [Enable geocode support]), ,
+                             enable_geocode=auto)
+
+if test "x$enable_geocode" != "xno"; then
+   PKG_CHECK_MODULES(GEOCODE,
+   [
+      geocode-glib
+   ], have_geocode="yes", have_geocode="no")
+
+   if test "x$have_geoclue" = "xyes"; then
+      AC_DEFINE(HAVE_GEOCODE, 1, [Define if you have geocode])
+   fi
+else
+   have_geocode="no"
+fi
+
+if test "x$enable_geocode" = "xyes" -a "x$have_geocode" != "xyes"; then
+   AC_MSG_ERROR([Could not find geocode dependencies.])
+fi
+
+AM_CONDITIONAL(HAVE_GEOCODE, test "x$have_geocode" = "xyes")
+AC_SUBST(GEOCODE_CFLAGS)
+AC_SUBST(GEOCODE_LIBS)
+
 # -----------------------------------------------------------
 # meego widgets support
 # -----------------------------------------------------------
@@ -563,6 +592,7 @@ Configure summary:
        Spell checking (enchant)....:  ${have_enchant}
        Display maps (libchamplain).:  ${have_libchamplain}
        Location awareness (Geoclue):  ${have_geoclue}
+       Geocode support (Geoclue):     ${have_geocode}
        Adium themes (Webkit).......:  ${have_webkit}
        Meego widgets...............:  ${have_meego}
        Control center embedding....:  ${have_control_center_embedding}
index a834679c1e7d0e28d5da3430d5419673fd418b8f..7023ecfe53e004f5f61dc50bb4c978648b206369 100644 (file)
@@ -12,6 +12,7 @@ AM_CPPFLAGS =                                           \
        $(ENCHANT_CFLAGS)                               \
        $(LIBCHAMPLAIN_CFLAGS)                          \
        $(GEOCLUE_CFLAGS)                               \
+       $(GEOCODE_CFLAGS)                               \
        $(MEEGO_CFLAGS)                                 \
        $(WEBKIT_CFLAGS)                                \
        $(CHEESE_CFLAGS)                                \
@@ -169,6 +170,7 @@ libempathy_gtk_la_LIBADD =                  \
        $(ENCHANT_LIBS)                         \
        $(LIBCHAMPLAIN_LIBS)                    \
        $(GEOCLUE_LIBS)                         \
+       $(GEOCODE_LIBS)                         \
        $(GCR_LIBS)                             \
        $(MEEGO_LIBS)                           \
        $(WEBKIT_LIBS)                          \
index 74ee8ec96acff3d1d5967d19e982336df6670a73..3c391c864d2d1a38f98e68d7c5197b824ce87e75 100644 (file)
@@ -3642,7 +3642,8 @@ chat_sms_channel_changed_cb (EmpathyChat *self)
 {
        EmpathyChatPriv *priv = GET_PRIV (self);
 
-       priv->sms_channel = empathy_tp_chat_is_sms_channel (priv->tp_chat);
+       priv->sms_channel = tp_text_channel_is_sms_channel (
+               (TpTextChannel *) priv->tp_chat);
        g_object_notify (G_OBJECT (self), "sms-channel");
 }
 
@@ -3703,7 +3704,7 @@ empathy_chat_set_tp_chat (EmpathyChat   *chat,
        g_signal_connect_swapped (tp_chat, "notify::password-needed",
                                  G_CALLBACK (chat_password_needed_changed_cb),
                                  chat);
-       g_signal_connect_swapped (tp_chat, "notify::sms-channel",
+       g_signal_connect_swapped (tp_chat, "notify::is-sms-channel",
                                  G_CALLBACK (chat_sms_channel_changed_cb),
                                  chat);
        g_signal_connect_swapped (tp_chat, "notify::n-messages-sending",
index ac1a96c0231ef880c505c3df899be5c06dd5df45..e4e644424533c6acf643ab65be5ac95f9a478b67 100644 (file)
@@ -1572,6 +1572,7 @@ individual_store_setup (EmpathyIndividualStore *self)
     G_TYPE_BOOLEAN,             /* Can make video calls */
     G_TYPE_BOOLEAN,             /* Is a fake group */
     G_TYPE_STRV,                /* Client types */
+    G_TYPE_UINT,                /* Event count */
   };
 
   priv = GET_PRIV (self);
index ae5f3c5802fb9718be2793ec56ca9dc06d5ad1c2..418761ead5ea5b618d89f32f3d76280f16fce1e7 100644 (file)
@@ -65,6 +65,7 @@ typedef enum
   EMPATHY_INDIVIDUAL_STORE_COL_CAN_VIDEO_CALL,
   EMPATHY_INDIVIDUAL_STORE_COL_IS_FAKE_GROUP,
   EMPATHY_INDIVIDUAL_STORE_COL_CLIENT_TYPES,
+  EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT,
   EMPATHY_INDIVIDUAL_STORE_COL_COUNT,
 } EmpathyIndividualStoreCol;
 
index 52ceff6c76a796a459edad13541710e9f404ded5..0fb24430cf76c115857cdae1873e1accf0ff5ffd 100644 (file)
@@ -1694,7 +1694,8 @@ individual_view_is_visible_individual (EmpathyIndividualView *self,
     gboolean is_online,
     gboolean is_searching,
     const gchar *group,
-    gboolean is_fake_group)
+    gboolean is_fake_group,
+    guint event_count)
 {
   EmpathyIndividualViewPriv *priv = GET_PRIV (self);
   EmpathyLiveSearch *live = EMPATHY_LIVE_SEARCH (priv->search_widget);
@@ -1702,6 +1703,10 @@ individual_view_is_visible_individual (EmpathyIndividualView *self,
   GeeIterator *iter;
   gboolean is_favorite, contains_interesting_persona = FALSE;
 
+  /* Always display individuals having pending events */
+  if (event_count > 0)
+    return TRUE;
+
   /* We're only giving the visibility wrt filtering here, not things like
    * presence. */
   if (priv->show_untrusted == FALSE &&
@@ -1777,6 +1782,7 @@ individual_view_filter_visible_func (GtkTreeModel *model,
   GtkTreeIter child_iter;
   gboolean visible, is_online;
   gboolean is_searching = TRUE;
+  guint event_count;
 
   if (priv->custom_filter != NULL)
     return priv->custom_filter (model, iter, priv->custom_filter_data);
@@ -1790,6 +1796,7 @@ individual_view_filter_visible_func (GtkTreeModel *model,
       EMPATHY_INDIVIDUAL_STORE_COL_IS_SEPARATOR, &is_separator,
       EMPATHY_INDIVIDUAL_STORE_COL_IS_ONLINE, &is_online,
       EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
+      EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, &event_count,
       -1);
 
   if (individual != NULL)
@@ -1800,7 +1807,7 @@ individual_view_filter_visible_func (GtkTreeModel *model,
       group = get_group (model, iter, &is_fake_group);
 
       visible = individual_view_is_visible_individual (self, individual,
-          is_online, is_searching, group, is_fake_group);
+          is_online, is_searching, group, is_fake_group, event_count);
 
       g_object_unref (individual);
       g_free (group);
@@ -1832,6 +1839,7 @@ individual_view_filter_visible_func (GtkTreeModel *model,
       gtk_tree_model_get (model, &child_iter,
         EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
         EMPATHY_INDIVIDUAL_STORE_COL_IS_ONLINE, &is_online,
+        EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, &event_count,
         -1);
 
       if (individual == NULL)
@@ -1840,7 +1848,7 @@ individual_view_filter_visible_func (GtkTreeModel *model,
       group = get_group (model, &child_iter, &is_fake_group);
 
       visible = individual_view_is_visible_individual (self, individual,
-          is_online, is_searching, group, is_fake_group);
+          is_online, is_searching, group, is_fake_group, event_count);
 
       g_object_unref (individual);
       g_free (group);
index 186f08aa9981200eba90731bb2d5631cd4fe8bb4..48846311f0ea756323ee397128f3207cfa7fe211 100644 (file)
@@ -12,6 +12,7 @@ AM_CPPFLAGS =                                           \
        $(EMPATHY_CFLAGS)                               \
        $(YELL_CFLAGS)                                  \
        $(GEOCLUE_CFLAGS)                               \
+       $(GEOCODE_CFLAGS)                               \
        $(NETWORK_MANAGER_CFLAGS)                       \
        $(CONNMAN_CFLAGS)                               \
        $(WARN_CFLAGS)                                  \
@@ -114,6 +115,7 @@ libempathy_la_LIBADD =              \
        $(GCR_LIBS) \
        $(EMPATHY_LIBS) \
        $(GEOCLUE_LIBS) \
+       $(GEOCODE_LIBS) \
        $(NETWORK_MANAGER_LIBS) \
        $(CONNMAN_LIBS)
 
index 6cdb3b6d99f3279f07cdcbe462cc98dd28ce838a..55bc40bdd5cae52fa6ef5d2994c770014bc6329b 100644 (file)
@@ -35,8 +35,8 @@
 #include <folks/folks.h>
 #include <folks/folks-telepathy.h>
 
-#ifdef HAVE_GEOCLUE
-#include <geoclue/geoclue-geocode.h>
+#ifdef HAVE_GEOCODE
+#include <geocode-glib/geocode-glib.h>
 #endif
 
 #include "empathy-contact.h"
@@ -80,7 +80,7 @@ static void contact_get_property (GObject *object, guint param_id,
 static void contact_set_property (GObject *object, guint param_id,
     const GValue *value, GParamSpec *pspec);
 
-#ifdef HAVE_GEOCLUE
+#ifdef HAVE_GEOCODE
 static void update_geocode (EmpathyContact *contact);
 #endif
 
@@ -1441,7 +1441,7 @@ empathy_contact_set_location (EmpathyContact *contact,
     g_hash_table_unref (priv->location);
 
   priv->location = g_hash_table_ref (location);
-#ifdef HAVE_GEOCLUE
+#ifdef HAVE_GEOCODE
   update_geocode (contact);
 #endif
   g_object_notify (G_OBJECT (contact), "location");
@@ -1509,41 +1509,37 @@ empathy_contact_equal (gconstpointer contact1,
   return FALSE;
 }
 
-#ifdef HAVE_GEOCLUE
-#define GEOCODE_SERVICE "org.freedesktop.Geoclue.Providers.Yahoo"
-#define GEOCODE_PATH "/org/freedesktop/Geoclue/Providers/Yahoo"
-
-/* This callback is called by geoclue when it found a position
+#ifdef HAVE_GEOCODE
+/* This callback is called by geocode-glib when it found a position
  * for the given address.  A position is necessary for a contact
  * to show up on the map
  */
 static void
-geocode_cb (GeoclueGeocode *geocode,
-    GeocluePositionFields fields,
-    double latitude,
-    double longitude,
-    double altitude,
-    GeoclueAccuracy *accuracy,
-    GError *error,
-    gpointer contact)
+geocode_cb (GObject *source,
+    GAsyncResult *result,
+    gpointer user_data)
 {
+  EmpathyContact *contact = user_data;
   EmpathyContactPriv *priv = GET_PRIV (contact);
+  GError *error = NULL;
   GHashTable *new_location;
+  GHashTable *resolved;
+  gdouble latitude, longitude;
 
   if (priv->location == NULL)
     goto out;
 
-  if (error != NULL)
+  resolved = geocode_object_resolve_finish (GEOCODE_OBJECT (source), result,
+      &error);
+
+  if (resolved == NULL)
     {
-      DEBUG ("Error geocoding location : %s", error->message);
+      DEBUG ("Failed to resolve geocode: %s", error->message);
+      g_error_free (error);
       goto out;
     }
 
-  /* No need to change location if we didn't find the position */
-  if (!(fields & GEOCLUE_POSITION_FIELDS_LATITUDE))
-    goto out;
-
-  if (!(fields & GEOCLUE_POSITION_FIELDS_LONGITUDE))
+  if (!geocode_object_get_coords (resolved, &longitude, &latitude))
     goto out;
 
   new_location = tp_asv_new (
@@ -1559,43 +1555,20 @@ geocode_cb (GeoclueGeocode *geocode,
   tp_g_hash_table_update (new_location, priv->location,
       (GBoxedCopyFunc) g_strdup, (GBoxedCopyFunc) tp_g_value_slice_dup);
 
-  /* Set the altitude only if it wasn't defined before */
-  if (fields & GEOCLUE_POSITION_FIELDS_ALTITUDE &&
-      g_hash_table_lookup (new_location, EMPATHY_LOCATION_ALT) == NULL)
-    {
-      tp_asv_set_double (new_location, g_strdup (EMPATHY_LOCATION_ALT),
-          altitude);
-      DEBUG ("\t - Altitude: %f", altitude);
-    }
-
   /* Don't change the accuracy as we used an address to get this position */
   g_hash_table_unref (priv->location);
   priv->location = new_location;
-  g_object_notify (contact, "location");
+  g_object_notify ((GObject *) contact, "location");
+
 out:
-  g_object_unref (geocode);
+  tp_clear_pointer (&result, g_hash_table_unref);
   g_object_unref (contact);
 }
 
-static gchar *
-get_dup_string (GHashTable *location,
-    gchar *key)
-{
-  GValue *value;
-
-  value = g_hash_table_lookup (location, key);
-  if (value != NULL)
-    return g_value_dup_string (value);
-
-  return NULL;
-}
-
 static void
 update_geocode (EmpathyContact *contact)
 {
-  static GeoclueGeocode *geocode;
-  gchar *str;
-  GHashTable *address;
+  GeocodeObject *geocode;
   GHashTable *location;
 
   location = empathy_contact_get_location (contact);
@@ -1607,75 +1580,12 @@ update_geocode (EmpathyContact *contact)
       g_hash_table_lookup (location, EMPATHY_LOCATION_LON) != NULL)
     return;
 
-  if (geocode == NULL)
-    {
-      geocode = geoclue_geocode_new (GEOCODE_SERVICE, GEOCODE_PATH);
-      g_object_add_weak_pointer (G_OBJECT (geocode), (gpointer *) &geocode);
-    }
-  else
-    {
-      g_object_ref (geocode);
-    }
+  geocode = geocode_object_new_for_params (location);
 
-  address = geoclue_address_details_new ();
+  geocode_object_resolve_async (geocode, NULL, geocode_cb,
+      g_object_ref (contact));
 
-  str = get_dup_string (location, EMPATHY_LOCATION_COUNTRY_CODE);
-  if (str != NULL)
-    {
-      g_hash_table_insert (address,
-        g_strdup (GEOCLUE_ADDRESS_KEY_COUNTRYCODE), str);
-      DEBUG ("\t - countrycode: %s", str);
-    }
-
-  str = get_dup_string (location, EMPATHY_LOCATION_COUNTRY);
-  if (str != NULL)
-    {
-      g_hash_table_insert (address,
-        g_strdup (GEOCLUE_ADDRESS_KEY_COUNTRY), str);
-      DEBUG ("\t - country: %s", str);
-    }
-
-  str = get_dup_string (location, EMPATHY_LOCATION_POSTAL_CODE);
-  if (str != NULL)
-    {
-      g_hash_table_insert (address,
-        g_strdup (GEOCLUE_ADDRESS_KEY_POSTALCODE), str);
-      DEBUG ("\t - postalcode: %s", str);
-    }
-
-  str = get_dup_string (location, EMPATHY_LOCATION_REGION);
-  if (str != NULL)
-    {
-      g_hash_table_insert (address,
-        g_strdup (GEOCLUE_ADDRESS_KEY_REGION), str);
-      DEBUG ("\t - region: %s", str);
-    }
-
-  str = get_dup_string (location, EMPATHY_LOCATION_LOCALITY);
-  if (str != NULL)
-    {
-      g_hash_table_insert (address,
-        g_strdup (GEOCLUE_ADDRESS_KEY_LOCALITY), str);
-      DEBUG ("\t - locality: %s", str);
-    }
-
-  str = get_dup_string (location, EMPATHY_LOCATION_STREET);
-  if (str != NULL)
-    {
-      g_hash_table_insert (address,
-        g_strdup (GEOCLUE_ADDRESS_KEY_STREET), str);
-      DEBUG ("\t - street: %s", str);
-    }
-
-  if (g_hash_table_size (address) > 0)
-    {
-      g_object_ref (contact);
-
-      geoclue_geocode_address_to_position_async (geocode, address,
-          geocode_cb, contact);
-    }
-
-  g_hash_table_unref (address);
+  g_object_unref (geocode);
 }
 #endif
 
index 02bdc80e396eaf124204ac23f0e023ce11183ced..63b1e87d662a79e3f8e7e296e14422afd220b07c 100644 (file)
@@ -54,8 +54,6 @@ struct _EmpathyTpChatPrivate {
         * (channel doesn't implement the Password interface) */
        gboolean               got_password_flags;
        gboolean               can_upgrade_to_muc;
-       gboolean               got_sms_channel;
-       gboolean               sms_channel;
 
        GHashTable            *messages_being_sent;
 
@@ -70,7 +68,6 @@ enum {
        PROP_ACCOUNT,
        PROP_REMOTE_CONTACT,
        PROP_PASSWORD_NEEDED,
-       PROP_SMS_CHANNEL,
        PROP_N_MESSAGES_SENDING,
 };
 
@@ -379,7 +376,7 @@ handle_delivery_report (EmpathyTpChat *self,
         * TpMessage. (fdo #35884) */
        echo = tp_asv_get_boxed (header, "delivery-echo",
                TP_ARRAY_TYPE_MESSAGE_PART_LIST);
-       if (echo != NULL && echo->len >= 1) {
+       if (echo != NULL && echo->len >= 2) {
                const GHashTable *echo_body;
 
                echo_body = g_ptr_array_index (echo, 1);
@@ -872,9 +869,6 @@ check_almost_ready (EmpathyTpChat *self)
        if (!self->priv->got_password_flags)
                return;
 
-       if (!self->priv->got_sms_channel)
-               return;
-
        /* We need either the members (room) or the remote contact (private chat).
         * If the chat is protected by a password we can't get these information so
         * consider the chat as ready so it can be presented to the user. */
@@ -1264,41 +1258,6 @@ got_password_flags_cb (TpChannel *proxy,
        check_almost_ready (EMPATHY_TP_CHAT (self));
 }
 
-static void
-sms_channel_changed_cb (TpChannel *channel,
-                       gboolean   sms_channel,
-                       gpointer   user_data,
-                       GObject   *chat)
-{
-       EmpathyTpChat *self = (EmpathyTpChat *) chat;
-
-       self->priv->sms_channel = sms_channel;
-
-       g_object_notify (G_OBJECT (chat), "sms-channel");
-}
-
-static void
-get_sms_channel_cb (TpProxy      *channel,
-                   const GValue *value,
-                   const GError *in_error,
-                   gpointer      user_data,
-                   GObject      *chat)
-{
-       EmpathyTpChat *self = (EmpathyTpChat *) chat;
-
-       if (in_error != NULL) {
-               DEBUG ("Failed to get SMSChannel: %s", in_error->message);
-               return;
-       }
-
-       g_return_if_fail (G_VALUE_HOLDS_BOOLEAN (value));
-
-       self->priv->sms_channel = g_value_get_boolean (value);
-       self->priv->got_sms_channel = TRUE;
-
-       check_almost_ready (EMPATHY_TP_CHAT (chat));
-}
-
 static void
 tp_chat_get_property (GObject    *object,
                      guint       param_id,
@@ -1317,9 +1276,6 @@ tp_chat_get_property (GObject    *object,
        case PROP_PASSWORD_NEEDED:
                g_value_set_boolean (value, empathy_tp_chat_password_needed (self));
                break;
-       case PROP_SMS_CHANNEL:
-               g_value_set_boolean (value, self->priv->sms_channel);
-               break;
        case PROP_N_MESSAGES_SENDING:
                g_value_set_uint (value,
                        g_hash_table_size (self->priv->messages_being_sent));
@@ -1413,14 +1369,6 @@ empathy_tp_chat_class_init (EmpathyTpChatClass *klass)
                                                               FALSE,
                                                               G_PARAM_READABLE));
 
-       g_object_class_install_property (object_class,
-                                        PROP_SMS_CHANNEL,
-                                        g_param_spec_boolean ("sms-channel",
-                                                              "SMS Channel",
-                                                              "TRUE if channel is for sending SMSes",
-                                                              FALSE,
-                                                              G_PARAM_READABLE));
-
        g_object_class_install_property (object_class,
                                         PROP_N_MESSAGES_SENDING,
                                         g_param_spec_uint ("n-messages-sending",
@@ -1805,15 +1753,6 @@ empathy_tp_chat_get_self_contact (EmpathyTpChat *self)
        return self->priv->user;
 }
 
-
-gboolean
-empathy_tp_chat_is_sms_channel (EmpathyTpChat *self)
-{
-       g_return_val_if_fail (EMPATHY_IS_TP_CHAT (self), FALSE);
-
-       return self->priv->sms_channel;
-}
-
 GQuark
 empathy_tp_chat_get_feature_ready (void)
 {
@@ -1926,21 +1865,6 @@ conn_prepared_cb (GObject *source,
                /* No Password interface, so no need to fetch the password flags */
                self->priv->got_password_flags = TRUE;
        }
-
-       /* Check if the chat is for SMS */
-       if (tp_proxy_has_interface_by_id (channel,
-                                         TP_IFACE_QUARK_CHANNEL_INTERFACE_SMS)) {
-               tp_cli_channel_interface_sms_connect_to_sms_channel_changed (
-                       channel,
-                       sms_channel_changed_cb, self, NULL, G_OBJECT (self), NULL);
-
-               tp_cli_dbus_properties_call_get (channel, -1,
-                       TP_IFACE_CHANNEL_INTERFACE_SMS, "SMSChannel",
-                       get_sms_channel_cb, self, NULL, G_OBJECT (self));
-       } else {
-               /* if there's no SMS support, then we're not waiting for it */
-               self->priv->got_sms_channel = TRUE;
-       }
 }
 
 static void
index de55c1a8cf04e9605c1ddf8e1388be12b4b5ecc0..20ba02a6829af8de1a314e2bad5966840959fdbd 100644 (file)
@@ -121,8 +121,6 @@ TpChannelChatState
 
 EmpathyContact * empathy_tp_chat_get_self_contact   (EmpathyTpChat      *self);
 
-gboolean       empathy_tp_chat_is_sms_channel       (EmpathyTpChat      *chat);
-
 G_END_DECLS
 
 #endif /* __EMPATHY_TP_CHAT_H__ */
index dc510d36083620e498fb133eb67f78f1c4067ab1..503c43a27cd0ba10688f49ddecfca0823afdf46d 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -1,23 +1,23 @@
 # translation of empathy.master.po to Español
 # Copyright (C) 2003 Free Software Foundation
 # This file is distributed under the same license as the Gossip package.
-# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010, 2011.
 # Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011.
+# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010, 2011.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: empathy.master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 "product=empathy&keywords=I18N+L10N&component=General\n"
-"POT-Creation-Date: 2011-05-26 07:20+0000\n"
-"PO-Revision-Date: 2011-05-26 15:58+0200\n"
-"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
-"Language-Team: Español <gnome-es-list@gnome.org>\n"
+"POT-Creation-Date: 2011-06-07 15:34+0000\n"
+"PO-Revision-Date: 2011-06-08 22:41+0200\n"
+"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
+"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
+"Content-Transfer-Encoding: 8bits\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
 #: ../data/empathy.desktop.in.in.h:1
 msgid "Chat on Google Talk, Facebook, MSN and many other chat services"
@@ -52,41 +52,46 @@ msgid "Chat window theme"
 msgstr "Tema de la ventana de charla"
 
 #: ../data/org.gnome.Empathy.gschema.xml.in.h:4
+#| msgid "Chat window theme"
+msgid "Chat window theme variant"
+msgstr "Variante del tema de la ventana de charla"
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:5
 msgid ""
 "Comma-separated list of spell checker languages to use (e.g. \"en, fr, nl\")."
 msgstr ""
 "Lista separada por comas de idiomas que se usarán en la revisión ortográfica "
 "(ej. «es, en, fr»)."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:5
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:6
 msgid "Compact contact list"
 msgstr "Lista compacta de contactos"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:6
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:7
 msgid "Connection managers should be used"
 msgstr "Se deberían usar gestores de conexión"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:7
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:8
 msgid "Contact list sort criterion"
 msgstr "Criterio de ordenación de la lista de contactos"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:8
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:9
 msgid "Default directory to select an avatar image from"
 msgstr "Carpeta predeterminada para seleccionar un avatar"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:9
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:10
 msgid "Disable popup notifications when away"
 msgstr "Desactivar las notificaciones emergentes al estar ausente"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:10
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:11
 msgid "Disable sounds when away"
 msgstr "Desactivar los sonidos al ausentarse"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:11
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:12
 msgid "Display incoming events in the status area"
 msgstr "Mostrar los eventos entrantes en el área de estado"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:12
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:13
 msgid ""
 "Display incoming events in the status area. If false, present them to the "
 "user immediately."
@@ -94,245 +99,253 @@ msgstr ""
 "Mostrar los eventos entrantes en el área de estado. Si es falso presentarlos "
 "directamente al usuario."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:13
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:14
 msgid "Empathy can publish the user's location"
 msgstr "Empathy puede publicar la ubicación del usuario"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:14
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:15
 msgid "Empathy can use the GPS to guess the location"
 msgstr "Empathy puede usar el GPS para deducir la ubicación"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:15
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:16
 msgid "Empathy can use the cellular network to guess the location"
 msgstr "Empathy puede usar la red telefónica móvil para deducir la ubicación"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:16
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:17
 msgid "Empathy can use the network to guess the location"
 msgstr "Empathy puede usar la red para deducir la ubicación"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:17
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:18
 msgid "Empathy default download folder"
 msgstr "Carpeta de descargas predeterminada de Epiphany"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:18
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:19
 msgid "Empathy has migrated butterfly logs"
 msgstr "Empathy ha migrado los registros de butterfly"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:19
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:20
 msgid "Empathy should auto-away when idle"
 msgstr "Empathy debería mostrar ausencia en inactividad"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:20
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:21
 msgid "Empathy should auto-connect on startup"
 msgstr "Empathy se debería autoconectar al inicio"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:21
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:22
 msgid "Empathy should reduce the location's accuracy"
 msgstr "Empathy debería reducir la precisión de la ubicación"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:22
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:23
 msgid "Empathy should use the avatar of the contact as the chat window icon"
 msgstr ""
 "Empathy debería usar el avatar del contacto como icono de la ventana de chat"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:23
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:24
 msgid "Enable WebKit Developer Tools"
 msgstr "Activar las herramientas de desarrollo de WebKit"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:24
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:25
 msgid "Enable popup notifications for new messages"
 msgstr "Activar notificaciones emergentes para mensajes nuevos"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:25
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:26
 msgid "Enable spell checker"
 msgstr "Activar revisor ortográfico"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:26
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:27
 msgid "Hide main window"
 msgstr "Ocultar la ventana principal"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:27
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:28
 msgid "Hide the main window."
 msgstr "Ocultar la ventana principal."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:28
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:29
 msgid "Nick completed character"
 msgstr "Carácter de completado de apodo"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:29
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:30
 msgid "Open new chats in separate windows"
 msgstr "Abrir chats nuevos en ventanas separadas"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:30
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:31
 msgid "Path of the Adium theme to use"
 msgstr "Ruta del tema Adium que usar"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:31
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:32
 msgid "Path of the Adium theme to use if the theme used for chat is Adium."
 msgstr "Ruta al tema Adium que usar si el tema usado para el chat es Adium."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:32
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:33
 msgid "Play a sound for incoming messages"
 msgstr "Reproducir un sonido cuando lleguen mensajes"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:33
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:34
 msgid "Play a sound for new conversations"
 msgstr "Reproducir un sonido para conversaciones nuevas"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:34
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:35
 msgid "Play a sound for outgoing messages"
 msgstr "Reproducir un sonido al enviar mensajes"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:35
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:36
 msgid "Play a sound when a contact logs in"
 msgstr "Reproducir un sonido cuando un contacto inicie sesión"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:36
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:37
 msgid "Play a sound when a contact logs out"
 msgstr "Reproducir un sonido cuando un contacto finalice su sesión"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:37
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:38
 msgid "Play a sound when we log in"
 msgstr "Reproducir un sonido cuando inicio sesión"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:38
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:39
 msgid "Play a sound when we log out"
 msgstr "Reproducir un sonido al finalizar una sesión"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:39
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:40
 msgid "Pop up notifications if the chat isn't focused"
 msgstr ""
 "Mostrar notificaciones emergentes si la ventana de chat no tiene el foco"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:40
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:41
 msgid "Pop up notifications when a contact logs in"
 msgstr "Mostrar notificaciones emergentes cuando un contacto se conecta"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:41
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
 msgid "Pop up notifications when a contact logs out"
 msgstr "Mostrar notificaciones emergentes cuando un contacto se desconecta"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:42
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
 msgid "Show Balance in contact list"
 msgstr "Mostrar crédito en la lista de contactos"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:43
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
 msgid "Show avatars"
 msgstr "Mostrar avatares"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:44
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
 msgid "Show contact list in rooms"
 msgstr "Mostrar lista de contactos en salas"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:45
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
 msgid "Show hint about closing the main window"
 msgstr "Mostrar consejo sobre cómo cerrar la ventana principal"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:46
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
 msgid "Show offline contacts"
 msgstr "Mostrar contactos no conectados"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:47
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
 msgid "Show protocols"
 msgstr "Mostrar protocolos"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:48
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
 msgid "Spell checking languages"
 msgstr "Idiomas para revisión ortográfica"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:49
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
 msgid "The default folder to save file transfers in."
 msgstr "La carpeta predeterminada donde guardar los archivos transferidos."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:50
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
 msgid "The last directory that an avatar image was chosen from."
 msgstr "Última carpeta de la que se eligió un avatar."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:51
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
 msgid "The position for the chat window side pane"
 msgstr "La posición para el panel lateral de la ventana de charla"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:52
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
 msgid "The stored position (in pixels) of the chat window side pane."
 msgstr ""
 "La posición almacenada (en píxeles) del panel lateral de la ventana de "
 "charla."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:53
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
 msgid "The theme that is used to display the conversation in chat windows."
 msgstr ""
 "El tema que se usará para mostrar la conversación en las ventanas de chat."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:54
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+#| msgid "The theme that is used to display the conversation in chat windows."
+msgid ""
+"The theme variant that is used to display the conversation in chat windows."
+msgstr ""
+"La variante del tema que se usará para mostrar la conversación en las "
+"ventanas de chat."
+
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
 msgid "Use graphical smileys"
 msgstr "Usar emoticonos gráficos"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:55
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
 msgid "Use notification sounds"
 msgstr "Usar sonidos de notificación"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:56
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
 msgid "Use theme for chat rooms"
 msgstr "Usar tema para salas de chat"
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:57
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
 msgid "Whether Empathy can publish the user's location to their contacts."
 msgstr ""
 "Indica si Empathy puede publicar la ubicación del usuario a sus contactos."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:58
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
 msgid "Whether Empathy can use the GPS to guess the location."
 msgstr "Indica si Empathy puede usar el GPS para deducir la ubicación."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:59
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
 msgid "Whether Empathy can use the cellular network to guess the location."
 msgstr ""
 "Indica si Empathy puede usar la red telefónica móvil para deducir la "
 "ubicación."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:60
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
 msgid "Whether Empathy can use the network to guess the location."
 msgstr "Indica si Empathy puede usar la red para deducir la ubicación."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:61
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
 msgid "Whether Empathy has migrated butterfly logs."
 msgstr "Indica si Empathy ha migrado los registros de butterfly."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:62
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
 msgid "Whether Empathy should automatically log into your accounts on startup."
 msgstr ""
 "Indica si Empathy debe iniciar sesión en sus cuentas automáticamente al "
 "inicio."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:63
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
 msgid ""
 "Whether Empathy should go into away mode automatically if the user is idle."
 msgstr ""
 "Indica si Empathy debe entrar en modo de ausencia automáticamente si el "
 "usuario está inactivo."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:64
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
 msgid ""
 "Whether Empathy should reduce the location's accuracy for privacy reasons."
 msgstr ""
 "Indica si Empathy debería reducir la precisión de la ubicación por motivos "
 "de privacidad."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:65
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
 msgid ""
 "Whether Empathy should use the avatar of the contact as the chat window icon."
 msgstr ""
 "Indica si Empathy debería usar el avatar del contacto como el icono de la "
 "ventana de chat."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:66
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
 msgid ""
 "Whether WebKit developer tools, such as the Web Inspector, should be enabled."
 msgstr ""
 "Indica si las herramientas de desarrollo de WebKit, tales como el Inspector "
 "web, den activarse."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:67
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
 msgid ""
 "Whether connectivity managers should be used to automatically disconnect/"
 "reconnect."
@@ -340,78 +353,78 @@ msgstr ""
 "Indica si se debe usan usar gestores de conectividad para desconectarse/"
 "reconectarse automáticamente."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:68
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
 msgid ""
 "Whether to check words typed against the languages you want to check with."
 msgstr ""
 "Indica si se deben revisar las palabras tecleadas con respecto a los idiomas "
 "con los que quiere comprobarlo."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:69
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
 msgid "Whether to convert smileys into graphical images in conversations."
 msgstr ""
 "Indica si se deben convertir los emoticonos en imágenes gráficas en las "
 "conversaciones."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:70
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
 msgid "Whether to play a sound to notify of contacts logging into the network."
 msgstr ""
 "Indica si se debe reproducir un sonido para notificar los inicios de sesión "
 "de los contactos en la red."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:71
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
 msgid ""
 "Whether to play a sound to notify of contacts logging out of the network."
 msgstr ""
 "Indica si se debe reproducir un sonido para notificar las finalizaciones de "
 "sesión de los contactos en la red."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:72
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
 msgid "Whether to play a sound to notify of events."
 msgstr "Indica si se debe reproducir un sonido para notificar eventos."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:73
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
 msgid "Whether to play a sound to notify of incoming messages."
 msgstr ""
 "Indica si se debe reproducir un sonido para notificar mensajes entrantes."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:74
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
 msgid "Whether to play a sound to notify of new conversations."
 msgstr ""
 "Indica si se debe reproducir un sonido para notificar conversaciones nuevas."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:75
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
 msgid "Whether to play a sound to notify of outgoing messages."
 msgstr ""
 "Indica si se debe reproducir un sonido para notificar mensajes salientes."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:76
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
 msgid "Whether to play a sound when logging into a network."
 msgstr "Indica si se debe reproducir un sonido al iniciar sesión en una red."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:77
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
 msgid "Whether to play a sound when logging out of a network."
 msgstr "Indica si se debe reproducir un sonido al finalizar sesión en una red."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:78
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
 msgid "Whether to play sound notifications when away or busy."
 msgstr ""
 "Indica si se deben reproducir sonidos de notificaciones cuando se esté "
 "ausente u ocupado."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:79
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
 msgid "Whether to show a popup notification when a contact goes offline."
 msgstr ""
 "Indica si se deben mostrar las notificaciones emergentes cuando un contacto "
 "se desconecta."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:80
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
 msgid "Whether to show a popup notification when a contact goes online."
 msgstr ""
 "Indica si se deben mostrar las notificaciones emergentes cuando un contacto "
 "se conecta."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:81
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
 msgid ""
 "Whether to show a popup notification when receiving a new message even if "
 "the chat is already opened, but not focused."
@@ -419,50 +432,50 @@ msgstr ""
 "Indica si de deben mostrar notificaciones emergentes al recibir un mensaje "
 "nuevo incluso si la ventana de chat ya está abierta pero no tiene el foco."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:82
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
 msgid "Whether to show a popup notification when receiving a new message."
 msgstr ""
 "Indica si se deben mostrar notificaciones emergentes al recibir un mensaje "
 "nuevo."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:83
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
 msgid "Whether to show account balances in the contact list."
 msgstr "Indica si se debe mostrar el crédito en la lista de contactos."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:84
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
 msgid ""
 "Whether to show avatars for contacts in the contact list and chat windows."
 msgstr ""
 "Indica si se deben mostrar los avatares para los contactos en la lista de "
 "contactos y ventanas de chat."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:85
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
 msgid "Whether to show contacts that are offline in the contact list."
 msgstr ""
 "Indica si se debe mostrar los contactos que están desconectados en la lista "
 "de contactos."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:86
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
 msgid "Whether to show popup notifications when away or busy."
 msgstr ""
 "Indica si se deben mostrar las notificaciones emergentes cuando se esté "
 "ausente u ocupado."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:87
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
 msgid "Whether to show protocols for contacts in the contact list."
 msgstr ""
 "Indica si se deben mostrar los protocolos para los contactos en la lista de "
 "contactos."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:88
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
 msgid "Whether to show the contact list in chat rooms."
 msgstr "Indica si se debe mostrar la lista de contactos en salas de chat."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:89
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
 msgid "Whether to show the contact list in compact mode."
 msgstr "Indica si se debe mostrar la lista de contactos en modo compacto."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:90
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
 msgid ""
 "Whether to show the message dialog about closing the main window with the "
 "'x' button in the title bar."
@@ -470,11 +483,11 @@ msgstr ""
 "Indica si se debe mostrar un mensaje de diálogo sobre cómo cerrar la ventana "
 "principal con el botón «x» en la barra de título."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:91
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:93
 msgid "Whether to use the theme for chat rooms."
 msgstr "Indica si se debe usar el tema para salas de chat."
 
-#: ../data/org.gnome.Empathy.gschema.xml.in.h:92
+#: ../data/org.gnome.Empathy.gschema.xml.in.h:94
 msgid ""
 "Which criterion to use when sorting the contact list. Default is to sort by "
 "the contact's name with the value \"name\". A value of \"state\" will sort "
@@ -1235,36 +1248,36 @@ msgstr "I_D de Yahoo!:"
 msgid "_Room List locale:"
 msgstr "Configuración de la lista de _salas:"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:465
-#: ../libempathy-gtk/empathy-avatar-chooser.c:541
+#: ../libempathy-gtk/empathy-avatar-chooser.c:474
+#: ../libempathy-gtk/empathy-avatar-chooser.c:559
 msgid "Couldn't convert image"
 msgstr "No se pudo convertir la imagen"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:466
+#: ../libempathy-gtk/empathy-avatar-chooser.c:475
 msgid "None of the accepted image formats are supported on your system"
 msgstr "Su sistema no soporta ninguno de los formatos de imagen aceptados"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:749
+#: ../libempathy-gtk/empathy-avatar-chooser.c:822
 msgid "Couldn't save pixbuf to png"
 msgstr "No se pudo guardar el «pixbuf» en png"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:1017
+#: ../libempathy-gtk/empathy-avatar-chooser.c:938
 msgid "Select Your Avatar Image"
 msgstr "Seleccione su imagen de avatar"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:1021
+#: ../libempathy-gtk/empathy-avatar-chooser.c:942
 msgid "Take a picture..."
 msgstr "Tomar una imagen…"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:1024
+#: ../libempathy-gtk/empathy-avatar-chooser.c:945
 msgid "No Image"
 msgstr "Sin imagen"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:1086
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1005
 msgid "Images"
 msgstr "Imágenes"
 
-#: ../libempathy-gtk/empathy-avatar-chooser.c:1090
+#: ../libempathy-gtk/empathy-avatar-chooser.c:1009
 msgid "All Files"
 msgstr "Todos los archivos"
 
@@ -1272,40 +1285,40 @@ msgstr "Todos los archivos"
 msgid "Click to enlarge"
 msgstr "Pulse para agrandar"
 
-#: ../libempathy-gtk/empathy-chat.c:699
+#: ../libempathy-gtk/empathy-chat.c:695
 msgid "Failed to open private chat"
 msgstr "Falló al abrir el chat privado"
 
-#: ../libempathy-gtk/empathy-chat.c:760
+#: ../libempathy-gtk/empathy-chat.c:756
 msgid "Topic not supported on this conversation"
 msgstr "El tema no está soportado en esta conversación"
 
-#: ../libempathy-gtk/empathy-chat.c:766
+#: ../libempathy-gtk/empathy-chat.c:762
 msgid "You are not allowed to change the topic"
 msgstr "No le está permitido cambiar el tema"
 
-#: ../libempathy-gtk/empathy-chat.c:970
+#: ../libempathy-gtk/empathy-chat.c:966
 #, c-format
 msgid "“%s” is not a valid contact ID"
 msgstr "%s no es un identificador de contacto válido"
 
-#: ../libempathy-gtk/empathy-chat.c:1027
+#: ../libempathy-gtk/empathy-chat.c:1023
 msgid "/clear: clear all messages from the current conversation"
 msgstr "/clear: limpiar todos los mensajes de la conversación actual"
 
-#: ../libempathy-gtk/empathy-chat.c:1030
+#: ../libempathy-gtk/empathy-chat.c:1026
 msgid "/topic <topic>: set the topic of the current conversation"
 msgstr "/topic <tema>: establecer el tema para la conversación actual"
 
-#: ../libempathy-gtk/empathy-chat.c:1033
+#: ../libempathy-gtk/empathy-chat.c:1029
 msgid "/join <chat room ID>: join a new chat room"
 msgstr "/join <id de sala de chat>: unirse a una sala de chat nueva"
 
-#: ../libempathy-gtk/empathy-chat.c:1036
+#: ../libempathy-gtk/empathy-chat.c:1032
 msgid "/j <chat room ID>: join a new chat room"
 msgstr "/j <id de sala de chat>: unirse a una sala de chat nueva"
 
-#: ../libempathy-gtk/empathy-chat.c:1040
+#: ../libempathy-gtk/empathy-chat.c:1036
 msgid ""
 "/part [<chat room ID>] [<reason>]: leave the chat room, by default the "
 "current one"
@@ -1313,37 +1326,37 @@ msgstr ""
 "/part [<ID de la sala de chat>] [<razón>]: abandonar la sala de chat, la "
 "actual de manera predeterminada"
 
-#: ../libempathy-gtk/empathy-chat.c:1044
+#: ../libempathy-gtk/empathy-chat.c:1040
 msgid "/query <contact ID> [<message>]: open a private chat"
 msgstr "/query <id del contacto> [<mensaje>]: abrir un chat privado"
 
-#: ../libempathy-gtk/empathy-chat.c:1047
+#: ../libempathy-gtk/empathy-chat.c:1043
 msgid "/msg <contact ID> <message>: open a private chat"
 msgstr "/msg <id del contacto> <mensaje>: abrir un chat privado"
 
-#: ../libempathy-gtk/empathy-chat.c:1050
+#: ../libempathy-gtk/empathy-chat.c:1046
 msgid "/nick <nickname>: change your nickname on the current server"
 msgstr "/nick <apodo>: cambiar su apodo en el servidor actual"
 
-#: ../libempathy-gtk/empathy-chat.c:1053
+#: ../libempathy-gtk/empathy-chat.c:1049
 msgid "/me <message>: send an ACTION message to the current conversation"
 msgstr "/me <mensaje>: enviar un mensaje de ACCIÓN a la conversación actual"
 
-#: ../libempathy-gtk/empathy-chat.c:1056
+#: ../libempathy-gtk/empathy-chat.c:1052
 msgid ""
 "/say <message>: send <message> to the current conversation. This is used to "
 "send a message starting with a '/'. For example: \"/say /join is used to "
 "join a new chat room\""
 msgstr ""
 "/say <mensaje>: enviar un <mensaje> a la conversación actual. Esto se usa "
-"para enviar un mensaje comenzando por una «/». Por ejemplo: «/say /join se usa "
-"para unirse a una sala de chat nueva»"
+"para enviar un mensaje comenzando por una «/». Por ejemplo: «/say /join se "
+"usa para unirse a una sala de chat nueva»"
 
-#: ../libempathy-gtk/empathy-chat.c:1061
+#: ../libempathy-gtk/empathy-chat.c:1057
 msgid "/whois <contact ID>: display information about a contact"
 msgstr "/whois <ID del contacto>: mostrar información sobre un contacto"
 
-#: ../libempathy-gtk/empathy-chat.c:1064
+#: ../libempathy-gtk/empathy-chat.c:1060
 msgid ""
 "/help [<command>]: show all supported commands. If <command> is defined, "
 "show its usage."
@@ -1351,113 +1364,113 @@ msgstr ""
 "/help [<comando>]: mostrar todos los comandos soportados. Si <comando> está "
 "definido, muestra su uso."
 
-#: ../libempathy-gtk/empathy-chat.c:1074
+#: ../libempathy-gtk/empathy-chat.c:1070
 #, c-format
 msgid "Usage: %s"
 msgstr "Uso: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:1113
+#: ../libempathy-gtk/empathy-chat.c:1109
 msgid "Unknown command"
 msgstr "Comando desconocido"
 
-#: ../libempathy-gtk/empathy-chat.c:1239
+#: ../libempathy-gtk/empathy-chat.c:1235
 msgid "Unknown command; see /help for the available commands"
 msgstr "Comando desconocido; consulte /help para ver los comandos disponibles"
 
 #. translators: error used when user doesn't have enough credit on his
 #. * account to send the message.
-#: ../libempathy-gtk/empathy-chat.c:1397
+#: ../libempathy-gtk/empathy-chat.c:1393
 msgid "insufficient balance to send message"
 msgstr "no tiene balance suficiente para enviar el mensaje"
 
-#: ../libempathy-gtk/empathy-chat.c:1399
+#: ../libempathy-gtk/empathy-chat.c:1395
 msgid "not capable"
 msgstr "no es posible"
 
-#: ../libempathy-gtk/empathy-chat.c:1406
+#: ../libempathy-gtk/empathy-chat.c:1402
 msgid "offline"
 msgstr "desconectado"
 
-#: ../libempathy-gtk/empathy-chat.c:1409
+#: ../libempathy-gtk/empathy-chat.c:1405
 msgid "invalid contact"
 msgstr "contacto no válido"
 
-#: ../libempathy-gtk/empathy-chat.c:1412
+#: ../libempathy-gtk/empathy-chat.c:1408
 msgid "permission denied"
 msgstr "permiso denegado"
 
-#: ../libempathy-gtk/empathy-chat.c:1415
+#: ../libempathy-gtk/empathy-chat.c:1411
 msgid "too long message"
 msgstr "mensaje demasiado largo"
 
-#: ../libempathy-gtk/empathy-chat.c:1418
+#: ../libempathy-gtk/empathy-chat.c:1414
 msgid "not implemented"
 msgstr "no implementado"
 
-#: ../libempathy-gtk/empathy-chat.c:1422
+#: ../libempathy-gtk/empathy-chat.c:1418
 msgid "unknown"
 msgstr "desconocido"
 
-#: ../libempathy-gtk/empathy-chat.c:1428
+#: ../libempathy-gtk/empathy-chat.c:1424
 #, c-format
 msgid "Error sending message '%s': %s"
 msgstr "Error al enviar el mensaje «%s»: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:1432
+#: ../libempathy-gtk/empathy-chat.c:1428
 #, c-format
 msgid "Error sending message: %s"
 msgstr "Error al enviar el mensaje: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:1493 ../src/empathy-chat-window.c:760
+#: ../libempathy-gtk/empathy-chat.c:1489 ../src/empathy-chat-window.c:760
 msgid "Topic:"
 msgstr "Tema:"
 
-#: ../libempathy-gtk/empathy-chat.c:1505
+#: ../libempathy-gtk/empathy-chat.c:1501
 #, c-format
 msgid "Topic set to: %s"
 msgstr "El tema se ha establecido a: %s"
 
-#: ../libempathy-gtk/empathy-chat.c:1507
+#: ../libempathy-gtk/empathy-chat.c:1503
 msgid "No topic defined"
 msgstr "No se ha definido el tema"
 
-#: ../libempathy-gtk/empathy-chat.c:2014
+#: ../libempathy-gtk/empathy-chat.c:2010
 msgid "(No Suggestions)"
 msgstr "(Sin sugerencias)"
 
 #. translators: %s is the selected word
-#: ../libempathy-gtk/empathy-chat.c:2082
+#: ../libempathy-gtk/empathy-chat.c:2078
 #, c-format
 msgid "Add '%s' to Dictionary"
 msgstr "Añadir «%s» al diccionario"
 
 #. translators: first %s is the selected word,
 #. * second %s is the language name of the target dictionary
-#: ../libempathy-gtk/empathy-chat.c:2119
+#: ../libempathy-gtk/empathy-chat.c:2115
 #, c-format
 msgid "Add '%s' to %s Dictionary"
 msgstr "Añadir «%s» al diccionario de «%s»"
 
-#: ../libempathy-gtk/empathy-chat.c:2176
+#: ../libempathy-gtk/empathy-chat.c:2172
 msgid "Insert Smiley"
 msgstr "Insertar emoticono"
 
 #. send button
-#: ../libempathy-gtk/empathy-chat.c:2194
-#: ../libempathy-gtk/empathy-ui-utils.c:1808
+#: ../libempathy-gtk/empathy-chat.c:2190
+#: ../libempathy-gtk/empathy-ui-utils.c:1756
 msgid "_Send"
 msgstr "E_nviar"
 
 #. Spelling suggestions
-#: ../libempathy-gtk/empathy-chat.c:2229
+#: ../libempathy-gtk/empathy-chat.c:2225
 msgid "_Spelling Suggestions"
 msgstr "_Sugerencias ortográficas"
 
-#: ../libempathy-gtk/empathy-chat.c:2318
+#: ../libempathy-gtk/empathy-chat.c:2314
 msgid "Failed to retrieve recent logs"
 msgstr "Falló al recibir los registros recientes"
 
-#: ../libempathy-gtk/empathy-chat.c:2429
+#: ../libempathy-gtk/empathy-chat.c:2425
 #, c-format
 msgid "%s has disconnected"
 msgstr "%s se ha desconectado"
@@ -1465,12 +1478,12 @@ msgstr "%s se ha desconectado"
 #. translators: reverse the order of these arguments
 #. * if the kicked should come before the kicker in your locale.
 #.
-#: ../libempathy-gtk/empathy-chat.c:2436
+#: ../libempathy-gtk/empathy-chat.c:2432
 #, c-format
 msgid "%1$s was kicked by %2$s"
 msgstr "%2$s expulsó a %1$s"
 
-#: ../libempathy-gtk/empathy-chat.c:2439
+#: ../libempathy-gtk/empathy-chat.c:2435
 #, c-format
 msgid "%s was kicked"
 msgstr "%s fue expulsado"
@@ -1478,17 +1491,17 @@ msgstr "%s fue expulsado"
 #. translators: reverse the order of these arguments
 #. * if the banned should come before the banner in your locale.
 #.
-#: ../libempathy-gtk/empathy-chat.c:2447
+#: ../libempathy-gtk/empathy-chat.c:2443
 #, c-format
 msgid "%1$s was banned by %2$s"
 msgstr "%2$s vetó a %1$s"
 
-#: ../libempathy-gtk/empathy-chat.c:2450
+#: ../libempathy-gtk/empathy-chat.c:2446
 #, c-format
 msgid "%s was banned"
 msgstr "%s fue vetado"
 
-#: ../libempathy-gtk/empathy-chat.c:2454
+#: ../libempathy-gtk/empathy-chat.c:2450
 #, c-format
 msgid "%s has left the room"
 msgstr "%s ha dejado la sala"
@@ -1498,69 +1511,69 @@ msgstr "%s ha dejado la sala"
 #. * given by the user living the room. If this poses a problem,
 #. * please let us know. :-)
 #.
-#: ../libempathy-gtk/empathy-chat.c:2463
+#: ../libempathy-gtk/empathy-chat.c:2459
 #, c-format
 msgid " (%s)"
 msgstr " (%s)"
 
-#: ../libempathy-gtk/empathy-chat.c:2488
+#: ../libempathy-gtk/empathy-chat.c:2484
 #, c-format
 msgid "%s has joined the room"
 msgstr "%s ha entrado en la sala"
 
-#: ../libempathy-gtk/empathy-chat.c:2513
+#: ../libempathy-gtk/empathy-chat.c:2509
 #, c-format
 msgid "%s is now known as %s"
 msgstr "Ahora %s se llama %s"
 
-#: ../libempathy-gtk/empathy-chat.c:2652
+#: ../libempathy-gtk/empathy-chat.c:2648
 #: ../src/empathy-streamed-media-window.c:1957
-#: ../src/empathy-event-manager.c:1126
+#: ../src/empathy-event-manager.c:1130
 msgid "Disconnected"
 msgstr "Desconectado"
 
 #. Add message
-#: ../libempathy-gtk/empathy-chat.c:3320
+#: ../libempathy-gtk/empathy-chat.c:3316
 msgid "Would you like to store this password?"
 msgstr "¿Quiere guardar esta contraseña?"
 
-#: ../libempathy-gtk/empathy-chat.c:3326
+#: ../libempathy-gtk/empathy-chat.c:3322
 msgid "Remember"
 msgstr "Recordar"
 
-#: ../libempathy-gtk/empathy-chat.c:3336
+#: ../libempathy-gtk/empathy-chat.c:3332
 msgid "Not now"
 msgstr "Ahora no"
 
-#: ../libempathy-gtk/empathy-chat.c:3380
+#: ../libempathy-gtk/empathy-chat.c:3376
 msgid "Retry"
 msgstr "Volver a intentarlo"
 
-#: ../libempathy-gtk/empathy-chat.c:3384
+#: ../libempathy-gtk/empathy-chat.c:3380
 msgid "Wrong password; please try again:"
 msgstr "Contraseña incorrecta; inténtelo de nuevo:"
 
 #. Add message
-#: ../libempathy-gtk/empathy-chat.c:3513
+#: ../libempathy-gtk/empathy-chat.c:3510
 msgid "This room is protected by a password:"
 msgstr "Esta sala está protegida por contraseña:"
 
-#: ../libempathy-gtk/empathy-chat.c:3540
+#: ../libempathy-gtk/empathy-chat.c:3537
 msgid "Join"
 msgstr "Unirse"
 
-#: ../libempathy-gtk/empathy-chat.c:3741 ../src/empathy-event-manager.c:1147
+#: ../libempathy-gtk/empathy-chat.c:3738 ../src/empathy-event-manager.c:1151
 msgid "Connected"
 msgstr "Conectado"
 
-#: ../libempathy-gtk/empathy-chat.c:3796
+#: ../libempathy-gtk/empathy-chat.c:3793
 #: ../libempathy-gtk/empathy-log-window.c:650
 msgid "Conversation"
 msgstr "Conversación"
 
 #. Translators: this string is a something like
 #. * "Escher Cat (SMS)"
-#: ../libempathy-gtk/empathy-chat.c:3801
+#: ../libempathy-gtk/empathy-chat.c:3798
 #, c-format
 msgid "%s (SMS)"
 msgstr "%s (SMS)"
@@ -1593,7 +1606,7 @@ msgstr "Editar contactos bloqueados"
 #: ../libempathy-gtk/empathy-contact-blocking-dialog.ui.h:1
 #: ../libempathy-gtk/empathy-contact-search-dialog.c:521
 #: ../libempathy-gtk/empathy-contact-widget.ui.h:2
-#: ../libempathy-gtk/empathy-individual-widget.c:1479
+#: ../libempathy-gtk/empathy-individual-widget.c:1495
 #: ../libempathy-gtk/empathy-contact-selector-dialog.ui.h:1
 #: ../src/empathy-chatrooms-window.ui.h:1
 #: ../src/empathy-new-chatroom-dialog.ui.h:1
@@ -1602,13 +1615,13 @@ msgstr "Cuenta:"
 
 #. Copy Link Address menu item
 #: ../libempathy-gtk/empathy-chat-text-view.c:320
-#: ../libempathy-gtk/empathy-theme-adium.c:1105
+#: ../libempathy-gtk/empathy-theme-adium.c:1264
 msgid "_Copy Link Address"
 msgstr "_Copiar la dirección del enlace"
 
 #. Open Link menu item
 #: ../libempathy-gtk/empathy-chat-text-view.c:327
-#: ../libempathy-gtk/empathy-theme-adium.c:1112
+#: ../libempathy-gtk/empathy-theme-adium.c:1271
 msgid "_Open Link"
 msgstr "_Abrir enlace"
 
@@ -1633,25 +1646,25 @@ msgid "New Contact"
 msgstr "Contacto nuevo"
 
 #: ../libempathy-gtk/empathy-contact-dialogs.c:533
-#: ../libempathy-gtk/empathy-individual-dialogs.c:199
+#: ../libempathy-gtk/empathy-individual-dialogs.c:200
 #, c-format
 msgid "Block %s?"
 msgstr "¿Bloquear a %s?"
 
 #: ../libempathy-gtk/empathy-contact-dialogs.c:538
-#: ../libempathy-gtk/empathy-individual-dialogs.c:247
+#: ../libempathy-gtk/empathy-individual-dialogs.c:252
 #, c-format
 msgid "Are you sure you want to block '%s' from contacting you again?"
 msgstr ""
 "¿Está seguro de que quiere bloquear a «%s» para que no le vuelva a contactar?"
 
 #: ../libempathy-gtk/empathy-contact-dialogs.c:543
-#: ../libempathy-gtk/empathy-individual-dialogs.c:269
+#: ../libempathy-gtk/empathy-individual-dialogs.c:274
 msgid "_Block"
 msgstr "_Bloquear"
 
 #: ../libempathy-gtk/empathy-contact-dialogs.c:559
-#: ../libempathy-gtk/empathy-individual-dialogs.c:278
+#: ../libempathy-gtk/empathy-individual-dialogs.c:283
 msgid "_Report this contact as abusive"
 msgid_plural "_Report these contacts as abusive"
 msgstr[0] "Info_rmar de este contacto como abusivo"
@@ -1678,33 +1691,33 @@ msgid "Favorite People"
 msgstr "Gente favorita"
 
 #: ../libempathy-gtk/empathy-contact-list-view.c:1983
-#: ../libempathy-gtk/empathy-individual-view.c:2386
+#: ../libempathy-gtk/empathy-individual-view.c:2367
 #, c-format
 msgid "Do you really want to remove the group '%s'?"
 msgstr "¿Realmente quiere quitar el grupo «%s»?"
 
 #: ../libempathy-gtk/empathy-contact-list-view.c:1985
-#: ../libempathy-gtk/empathy-individual-view.c:2389
+#: ../libempathy-gtk/empathy-individual-view.c:2370
 msgid "Removing group"
 msgstr "Quitando grupo"
 
 #. Remove
 #: ../libempathy-gtk/empathy-contact-list-view.c:2034
 #: ../libempathy-gtk/empathy-contact-list-view.c:2111
-#: ../libempathy-gtk/empathy-individual-view.c:2444
-#: ../libempathy-gtk/empathy-individual-view.c:2637
+#: ../libempathy-gtk/empathy-individual-view.c:2425
+#: ../libempathy-gtk/empathy-individual-view.c:2628
 #: ../src/empathy-accounts-dialog.ui.h:7
 msgid "_Remove"
 msgstr "_Quitar"
 
 #: ../libempathy-gtk/empathy-contact-list-view.c:2064
-#: ../libempathy-gtk/empathy-individual-view.c:2508
+#: ../libempathy-gtk/empathy-individual-view.c:2492
 #, c-format
 msgid "Do you really want to remove the contact '%s'?"
 msgstr "¿Realmente quiere quitar el contacto «%s»?"
 
 #: ../libempathy-gtk/empathy-contact-list-view.c:2066
-#: ../libempathy-gtk/empathy-individual-view.c:2529
+#: ../libempathy-gtk/empathy-individual-view.c:2513
 msgid "Removing contact"
 msgstr "Quitando el contacto"
 
@@ -1718,48 +1731,48 @@ msgid "_Block Contact"
 msgstr "_Bloquear contacto"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:328
-#: ../libempathy-gtk/empathy-individual-menu.c:536
+#: ../libempathy-gtk/empathy-individual-menu.c:546
 #: ../src/empathy-main-window.ui.h:16
 msgid "_Chat"
 msgstr "_Chat"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:358
-#: ../libempathy-gtk/empathy-individual-menu.c:625
+#: ../libempathy-gtk/empathy-individual-menu.c:635
 msgctxt "menu item"
 msgid "_Audio Call"
 msgstr "Llamada de vo_z"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:389
-#: ../libempathy-gtk/empathy-individual-menu.c:667
+#: ../libempathy-gtk/empathy-individual-menu.c:677
 msgctxt "menu item"
 msgid "_Video Call"
 msgstr "Llamada de _vídeo"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:435
-#: ../libempathy-gtk/empathy-individual-menu.c:710
+#: ../libempathy-gtk/empathy-individual-menu.c:720
 #: ../src/empathy-main-window.ui.h:27
 msgid "_Previous Conversations"
 msgstr "Conversaciones an_teriores"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:457
-#: ../libempathy-gtk/empathy-individual-menu.c:751
+#: ../libempathy-gtk/empathy-individual-menu.c:761
 msgid "Send File"
 msgstr "Enviar archivo"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:480
-#: ../libempathy-gtk/empathy-individual-menu.c:793
+#: ../libempathy-gtk/empathy-individual-menu.c:803
 msgid "Share My Desktop"
 msgstr "Compartir mi escritorio"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:520
 #: ../libempathy-gtk/empathy-contact-widget.c:1890
-#: ../libempathy-gtk/empathy-individual-menu.c:828
-#: ../libempathy-gtk/empathy-individual-widget.c:1370
+#: ../libempathy-gtk/empathy-individual-menu.c:838
+#: ../libempathy-gtk/empathy-individual-widget.c:1386
 msgid "Favorite"
 msgstr "Favorita"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:549
-#: ../libempathy-gtk/empathy-individual-menu.c:856
+#: ../libempathy-gtk/empathy-individual-menu.c:866
 msgid "Infor_mation"
 msgstr "Infor_mación"
 
@@ -1769,13 +1782,13 @@ msgid "_Edit"
 msgstr "_Editar"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:649
-#: ../libempathy-gtk/empathy-individual-menu.c:1037
+#: ../libempathy-gtk/empathy-individual-menu.c:1053
 #: ../src/empathy-chat-window.c:1010
 msgid "Inviting you to this room"
 msgstr "Invitándolo a esta sala"
 
 #: ../libempathy-gtk/empathy-contact-menu.c:680
-#: ../libempathy-gtk/empathy-individual-menu.c:1084
+#: ../libempathy-gtk/empathy-individual-menu.c:1099
 msgid "_Invite to Chat Room"
 msgstr "_Invitar a sala de chat"
 
@@ -1849,152 +1862,152 @@ msgid "Channels:"
 msgstr "Canales:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:901
-#: ../libempathy-gtk/empathy-individual-widget.c:488
+#: ../libempathy-gtk/empathy-individual-widget.c:495
 msgid "Country ISO Code:"
 msgstr "Código ISO de país:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:903
-#: ../libempathy-gtk/empathy-individual-widget.c:490
+#: ../libempathy-gtk/empathy-individual-widget.c:497
 msgid "Country:"
 msgstr "País:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:905
-#: ../libempathy-gtk/empathy-individual-widget.c:492
+#: ../libempathy-gtk/empathy-individual-widget.c:499
 msgid "State:"
 msgstr "Estado:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:907
-#: ../libempathy-gtk/empathy-individual-widget.c:494
+#: ../libempathy-gtk/empathy-individual-widget.c:501
 msgid "City:"
 msgstr "Ciudad:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:909
-#: ../libempathy-gtk/empathy-individual-widget.c:496
+#: ../libempathy-gtk/empathy-individual-widget.c:503
 msgid "Area:"
 msgstr "Área:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:911
-#: ../libempathy-gtk/empathy-individual-widget.c:498
+#: ../libempathy-gtk/empathy-individual-widget.c:505
 msgid "Postal Code:"
 msgstr "Código postal:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:913
-#: ../libempathy-gtk/empathy-individual-widget.c:500
+#: ../libempathy-gtk/empathy-individual-widget.c:507
 msgid "Street:"
 msgstr "Calle:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:915
-#: ../libempathy-gtk/empathy-individual-widget.c:502
+#: ../libempathy-gtk/empathy-individual-widget.c:509
 msgid "Building:"
 msgstr "Edificio:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:917
-#: ../libempathy-gtk/empathy-individual-widget.c:504
+#: ../libempathy-gtk/empathy-individual-widget.c:511
 msgid "Floor:"
 msgstr "Planta:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:919
-#: ../libempathy-gtk/empathy-individual-widget.c:506
+#: ../libempathy-gtk/empathy-individual-widget.c:513
 msgid "Room:"
 msgstr "Habitación:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:921
-#: ../libempathy-gtk/empathy-individual-widget.c:508
+#: ../libempathy-gtk/empathy-individual-widget.c:515
 msgid "Text:"
 msgstr "Texto:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:923
-#: ../libempathy-gtk/empathy-individual-widget.c:510
+#: ../libempathy-gtk/empathy-individual-widget.c:517
 msgid "Description:"
 msgstr "Descripción:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:925
-#: ../libempathy-gtk/empathy-individual-widget.c:512
+#: ../libempathy-gtk/empathy-individual-widget.c:519
 msgid "URI:"
 msgstr "URI:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:927
-#: ../libempathy-gtk/empathy-individual-widget.c:514
+#: ../libempathy-gtk/empathy-individual-widget.c:521
 msgid "Accuracy Level:"
 msgstr "Nivel de precisión:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:929
-#: ../libempathy-gtk/empathy-individual-widget.c:516
+#: ../libempathy-gtk/empathy-individual-widget.c:523
 msgid "Error:"
 msgstr "Error:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:931
-#: ../libempathy-gtk/empathy-individual-widget.c:518
+#: ../libempathy-gtk/empathy-individual-widget.c:525
 msgid "Vertical Error (meters):"
 msgstr "Error vertical (metros):"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:933
-#: ../libempathy-gtk/empathy-individual-widget.c:520
+#: ../libempathy-gtk/empathy-individual-widget.c:527
 msgid "Horizontal Error (meters):"
 msgstr "Error horizontal (metros):"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:935
-#: ../libempathy-gtk/empathy-individual-widget.c:522
+#: ../libempathy-gtk/empathy-individual-widget.c:529
 msgid "Speed:"
 msgstr "Velocidad:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:937
-#: ../libempathy-gtk/empathy-individual-widget.c:524
+#: ../libempathy-gtk/empathy-individual-widget.c:531
 msgid "Bearing:"
 msgstr "Retardo:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:939
-#: ../libempathy-gtk/empathy-individual-widget.c:526
+#: ../libempathy-gtk/empathy-individual-widget.c:533
 msgid "Climb Speed:"
 msgstr "Velocidad de ascenso:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:941
-#: ../libempathy-gtk/empathy-individual-widget.c:528
+#: ../libempathy-gtk/empathy-individual-widget.c:535
 msgid "Last Updated on:"
 msgstr "Actualizado por última vez:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:943
-#: ../libempathy-gtk/empathy-individual-widget.c:530
+#: ../libempathy-gtk/empathy-individual-widget.c:537
 msgid "Longitude:"
 msgstr "Longitud_"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:945
-#: ../libempathy-gtk/empathy-individual-widget.c:532
+#: ../libempathy-gtk/empathy-individual-widget.c:539
 msgid "Latitude:"
 msgstr "Latitud:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:947
-#: ../libempathy-gtk/empathy-individual-widget.c:534
+#: ../libempathy-gtk/empathy-individual-widget.c:541
 msgid "Altitude:"
 msgstr "Altitud:"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:1000
 #: ../libempathy-gtk/empathy-contact-widget.c:1015
-#: ../libempathy-gtk/empathy-individual-widget.c:616
-#: ../libempathy-gtk/empathy-individual-widget.c:631
+#: ../libempathy-gtk/empathy-individual-widget.c:629
+#: ../libempathy-gtk/empathy-individual-widget.c:644
 #: ../src/empathy-preferences.ui.h:12
 msgid "Location"
 msgstr "Ubicación geográfica"
 
 #. translators: format is "Location, $date"
 #: ../libempathy-gtk/empathy-contact-widget.c:1017
-#: ../libempathy-gtk/empathy-individual-widget.c:633
+#: ../libempathy-gtk/empathy-individual-widget.c:646
 #, c-format
 msgid "%s, %s"
 msgstr "%s, %s"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:1069
-#: ../libempathy-gtk/empathy-individual-widget.c:682
+#: ../libempathy-gtk/empathy-individual-widget.c:695
 msgid "%B %e, %Y at %R UTC"
 msgstr "%e de %B de %Y a las %R UTC"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:1151
-#: ../libempathy-gtk/empathy-individual-widget.c:917
+#: ../libempathy-gtk/empathy-individual-widget.c:931
 msgid "Save Avatar"
 msgstr "Guardar avatar"
 
 #: ../libempathy-gtk/empathy-contact-widget.c:1207
-#: ../libempathy-gtk/empathy-individual-widget.c:975
+#: ../libempathy-gtk/empathy-individual-widget.c:989
 msgid "Unable to save avatar"
 msgstr "No se pudo guardar el avatar"
 
@@ -2004,7 +2017,7 @@ msgstr "<b>Ubicación</b> en (fecha)\t"
 
 #. Alias
 #: ../libempathy-gtk/empathy-contact-widget.ui.h:3
-#: ../libempathy-gtk/empathy-individual-widget.c:1305
+#: ../libempathy-gtk/empathy-individual-widget.c:1321
 msgid "Alias:"
 msgstr "Apodo:"
 
@@ -2024,7 +2037,7 @@ msgstr "Detalles del contacto"
 #. Identifier to connect to Instant Messaging network
 #. Translators: Identifier to connect to Instant Messaging network
 #: ../libempathy-gtk/empathy-contact-widget.ui.h:8
-#: ../libempathy-gtk/empathy-individual-widget.c:1509
+#: ../libempathy-gtk/empathy-individual-widget.c:1525
 msgid "Identifier:"
 msgstr "Identificador:"
 
@@ -2041,11 +2054,11 @@ msgstr "SO:"
 msgid "Version:"
 msgstr "Versión:"
 
-#: ../libempathy-gtk/empathy-groups-widget.c:332
+#: ../libempathy-gtk/empathy-groups-widget.c:333
 msgid "Groups"
 msgstr "Grupos"
 
-#: ../libempathy-gtk/empathy-groups-widget.c:344
+#: ../libempathy-gtk/empathy-groups-widget.c:345
 msgid ""
 "Select the groups you want this contact to appear in.  Note that you can "
 "select more than one group or no groups."
@@ -2053,46 +2066,46 @@ msgstr ""
 "Seleccione los grupos en los que quiere que este contacto aparezca, Note que "
 "puede seleccionar más de un grupo o ningún grupo."
 
-#: ../libempathy-gtk/empathy-groups-widget.c:363
+#: ../libempathy-gtk/empathy-groups-widget.c:364
 msgid "_Add Group"
 msgstr "_Añadir grupo"
 
-#: ../libempathy-gtk/empathy-groups-widget.c:398
+#: ../libempathy-gtk/empathy-groups-widget.c:399
 msgctxt "verb in a column header displaying group names"
 msgid "Select"
 msgstr "Seleccionar"
 
-#: ../libempathy-gtk/empathy-groups-widget.c:408
-#: ../src/empathy-main-window.c:1781
+#: ../libempathy-gtk/empathy-groups-widget.c:409
+#: ../src/empathy-main-window.c:1751
 msgid "Group"
 msgstr "Grupo"
 
-#: ../libempathy-gtk/empathy-individual-dialogs.c:252
+#: ../libempathy-gtk/empathy-individual-dialogs.c:257
 msgid "The following identity will be blocked:"
 msgid_plural "The following identities will be blocked:"
 msgstr[0] "Se bloqueará la siguiente identidad:"
 msgstr[1] "Se bloquearán la siguientes identidades:"
 
-#: ../libempathy-gtk/empathy-individual-dialogs.c:259
+#: ../libempathy-gtk/empathy-individual-dialogs.c:264
 msgid "The following identity can not be blocked:"
 msgid_plural "The following identities can not be blocked:"
 msgstr[0] "No se puede bloquear la siguiente identidad:"
 msgstr[1] "No se pueden bloquear la siguientes identidades:"
 
 #. Translators: the heading at the top of the Information dialogue
-#: ../libempathy-gtk/empathy-individual-information-dialog.c:281
+#: ../libempathy-gtk/empathy-individual-information-dialog.c:288
 msgid "Linked Contacts"
 msgstr "Contactos enlazados"
 
-#: ../libempathy-gtk/empathy-individual-linker.c:354
+#: ../libempathy-gtk/empathy-individual-linker.c:370
 msgid "Select contacts to link"
 msgstr "Seleccionar contactos para enlazar"
 
-#: ../libempathy-gtk/empathy-individual-linker.c:428
+#: ../libempathy-gtk/empathy-individual-linker.c:444
 msgid "New contact preview"
 msgstr "Vista previa del contacto nuevo"
 
-#: ../libempathy-gtk/empathy-individual-linker.c:472
+#: ../libempathy-gtk/empathy-individual-linker.c:488
 msgid "Contacts selected in the list on the left will be linked together."
 msgstr ""
 "Se enlazarán entre sí los contactos seleccionados en la lista de la "
@@ -2101,34 +2114,34 @@ msgstr ""
 #. Translators: this is used in the context menu for a contact. The first
 #. * parameter is a contact ID (e.g. foo@jabber.org) and the second is one
 #. * of the user's account IDs (e.g. me@hotmail.com).
-#: ../libempathy-gtk/empathy-individual-menu.c:131
+#: ../libempathy-gtk/empathy-individual-menu.c:136
 #, c-format
 msgid "%s (%s)"
 msgstr "%s (%s)"
 
 #. add an SMS button
-#: ../libempathy-gtk/empathy-individual-menu.c:582
+#: ../libempathy-gtk/empathy-individual-menu.c:592
 #: ../libempathy-gtk/empathy-new-message-dialog.c:248
 msgid "_SMS"
 msgstr "_SMS"
 
-#: ../libempathy-gtk/empathy-individual-menu.c:904
+#: ../libempathy-gtk/empathy-individual-menu.c:914
 msgctxt "Edit individual (contextual menu)"
 msgid "_Edit"
 msgstr "_Editar"
 
 #. Translators: this is a verb meaning "to connect two contacts together
 #. * to form a meta-contact".
-#: ../libempathy-gtk/empathy-individual-menu.c:930
+#: ../libempathy-gtk/empathy-individual-menu.c:940
 msgctxt "Link individual (contextual menu)"
 msgid "_Link Contacts…"
 msgstr "_Enlazar contactos…"
 
-#: ../libempathy-gtk/empathy-individual-view.c:2351
+#: ../libempathy-gtk/empathy-individual-view.c:2332
 msgid "Delete and _Block"
 msgstr "Eliminar y _bloquear"
 
-#: ../libempathy-gtk/empathy-individual-view.c:2517
+#: ../libempathy-gtk/empathy-individual-view.c:2501
 #, c-format
 msgid ""
 "Do you really want to remove the linked contact '%s'? Note that this will "
@@ -2137,7 +2150,7 @@ msgstr ""
 "¿Realmente quiere quitar el contacto enlazado «%s»? Tenga en cuenta que esto "
 "quitará todos los contactos que componen este contacto enlazado."
 
-#: ../libempathy-gtk/empathy-individual-widget.c:1650
+#: ../libempathy-gtk/empathy-individual-widget.c:1672
 #, c-format
 msgid "Linked contact containing %u contact"
 msgid_plural "Linked contacts containing %u contacts"
@@ -2407,23 +2420,23 @@ msgstr "Guardar mensaje de estado _nuevo"
 msgid "Saved Status Messages"
 msgstr "Mensajes de estado guardados"
 
-#: ../libempathy-gtk/empathy-theme-adium.c:1577
+#: ../libempathy-gtk/empathy-theme-adium.c:1782
 msgid "Normal"
 msgstr "Normal"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:68
+#: ../libempathy-gtk/empathy-theme-manager.c:75
 msgid "Classic"
 msgstr "Clásico"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:69
+#: ../libempathy-gtk/empathy-theme-manager.c:76
 msgid "Simple"
 msgstr "Simple"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:70
+#: ../libempathy-gtk/empathy-theme-manager.c:77
 msgid "Clean"
 msgstr "Limpio"
 
-#: ../libempathy-gtk/empathy-theme-manager.c:71
+#: ../libempathy-gtk/empathy-theme-manager.c:78
 msgid "Blue"
 msgstr "Azul"
 
@@ -2501,19 +2514,19 @@ msgstr "Recordar esta opción para futuras conexiones"
 msgid "Certificate Details"
 msgstr "Detalles del certificado"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1705
+#: ../libempathy-gtk/empathy-ui-utils.c:1653
 msgid "Unable to open URI"
 msgstr "No se pudo abrir el URI"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1800
+#: ../libempathy-gtk/empathy-ui-utils.c:1748
 msgid "Select a file"
 msgstr "Seleccionar un archivo"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1872
+#: ../libempathy-gtk/empathy-ui-utils.c:1820
 msgid "Insufficient free space to save file"
 msgstr "No hay espacio suficiente para guardar el archivo"
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1880
+#: ../libempathy-gtk/empathy-ui-utils.c:1828
 #, c-format
 msgid ""
 "%s of free space are required to save this file, but only %s is available. "
@@ -2522,7 +2535,7 @@ msgstr ""
 "Se requiere %s de espacio libre para guardar este archivo, pero sólo hay %s "
 "disponible. Elija otra ubicación."
 
-#: ../libempathy-gtk/empathy-ui-utils.c:1924
+#: ../libempathy-gtk/empathy-ui-utils.c:1872
 #, c-format
 msgid "Incoming file from %s"
 msgstr "Archivo entrante de %s"
@@ -2710,23 +2723,23 @@ msgstr "Sin mensaje de eeror"
 msgid "Instant Message (Empathy)"
 msgstr "Mensaje instantáneo (Empathy)"
 
-#: ../src/empathy.c:308
+#: ../src/empathy.c:307
 msgid "Don't connect on startup"
 msgstr "No conectarse automáticamente al inicio"
 
-#: ../src/empathy.c:312
+#: ../src/empathy.c:311
 msgid "Don't display the contact list or any other dialogs on startup"
 msgstr "No mostrar la lista de contactos o cualquier otro diálogo al inicio"
 
-#: ../src/empathy.c:320
+#: ../src/empathy.c:319
 msgid "- Empathy IM Client"
 msgstr "- Cliente de mensajería instantánea Empathy"
 
-#: ../src/empathy.c:499
+#: ../src/empathy.c:498
 msgid "Error contacting the Account Manager"
 msgstr "Error al contactar con el Gestor de cuentas"
 
-#: ../src/empathy.c:501
+#: ../src/empathy.c:500
 #, c-format
 msgid ""
 "There was an error while trying to connect to the Telepathy Account Manager. "
@@ -3477,90 +3490,90 @@ msgstr "Autoconectar"
 msgid "Manage Favorite Rooms"
 msgstr "Gestionar salas favoritas"
 
-#: ../src/empathy-event-manager.c:506
+#: ../src/empathy-event-manager.c:510
 msgid "Incoming video call"
 msgstr "Llamada de vídeo entrante"
 
-#: ../src/empathy-event-manager.c:506
+#: ../src/empathy-event-manager.c:510
 msgid "Incoming call"
 msgstr "Llamada entrante"
 
-#: ../src/empathy-event-manager.c:510
+#: ../src/empathy-event-manager.c:514
 #, c-format
 msgid "%s is video calling you. Do you want to answer?"
 msgstr "%s le está llamando con vídeo. ¿Quiere responder?"
 
-#: ../src/empathy-event-manager.c:511
+#: ../src/empathy-event-manager.c:515
 #, c-format
 msgid "%s is calling you. Do you want to answer?"
 msgstr "%s le está llamando. ¿Quiere responder?"
 
-#: ../src/empathy-event-manager.c:514 ../src/empathy-event-manager.c:663
+#: ../src/empathy-event-manager.c:518 ../src/empathy-event-manager.c:667
 #, c-format
 msgid "Incoming call from %s"
 msgstr "Llamada entrante de %s"
 
-#: ../src/empathy-event-manager.c:539
+#: ../src/empathy-event-manager.c:543
 msgid "_Reject"
 msgstr "_Rechazar"
 
-#: ../src/empathy-event-manager.c:545
+#: ../src/empathy-event-manager.c:549
 msgid "_Answer"
 msgstr "Re_spuesta"
 
-#: ../src/empathy-event-manager.c:663
+#: ../src/empathy-event-manager.c:667
 #, c-format
 msgid "Incoming video call from %s"
 msgstr "Llamada de vídeo entrante de %s"
 
-#: ../src/empathy-event-manager.c:736
+#: ../src/empathy-event-manager.c:740
 msgid "Room invitation"
 msgstr "Invitación a una sala"
 
-#: ../src/empathy-event-manager.c:738
+#: ../src/empathy-event-manager.c:742
 #, c-format
 msgid "Invitation to join %s"
 msgstr "Invitación para unirse a %s"
 
-#: ../src/empathy-event-manager.c:745
+#: ../src/empathy-event-manager.c:749
 #, c-format
 msgid "%s is inviting you to join %s"
 msgstr "%s le está invitando a unirse a %s"
 
-#: ../src/empathy-event-manager.c:753
+#: ../src/empathy-event-manager.c:757
 msgid "_Decline"
 msgstr "_Rechazar"
 
-#: ../src/empathy-event-manager.c:758
+#: ../src/empathy-event-manager.c:762
 #: ../src/empathy-new-chatroom-dialog.ui.h:7
 msgid "_Join"
 msgstr "_Unirse"
 
-#: ../src/empathy-event-manager.c:785
+#: ../src/empathy-event-manager.c:789
 #, c-format
 msgid "%s invited you to join %s"
 msgstr "%s le ha invitado a unirse a %s"
 
-#: ../src/empathy-event-manager.c:791
+#: ../src/empathy-event-manager.c:795
 #, c-format
 msgid "You have been invited to join %s"
 msgstr "Le han invitado a unirse a %s"
 
-#: ../src/empathy-event-manager.c:842
+#: ../src/empathy-event-manager.c:846
 #, c-format
 msgid "Incoming file transfer from %s"
 msgstr "Transferencia de archivo entrante de %s"
 
-#: ../src/empathy-event-manager.c:1020 ../src/empathy-main-window.c:377
+#: ../src/empathy-event-manager.c:1024 ../src/empathy-main-window.c:375
 msgid "Password required"
 msgstr "Se requiere una contraseña"
 
-#: ../src/empathy-event-manager.c:1076
+#: ../src/empathy-event-manager.c:1080
 #, c-format
 msgid "%s would like permission to see when you are online"
 msgstr "%s quiere permiso para ver cuándo está en línea"
 
-#: ../src/empathy-event-manager.c:1080
+#: ../src/empathy-event-manager.c:1084
 #, c-format
 msgid ""
 "\n"
@@ -3707,55 +3720,55 @@ msgstr "Protocolo"
 msgid "Source"
 msgstr "Origen"
 
-#: ../src/empathy-main-window.c:394
+#: ../src/empathy-main-window.c:392
 msgid "Provide Password"
 msgstr "Escriba su contraseña"
 
-#: ../src/empathy-main-window.c:400
+#: ../src/empathy-main-window.c:398
 msgid "Disconnect"
 msgstr "Desconectar"
 
-#: ../src/empathy-main-window.c:540
+#: ../src/empathy-main-window.c:538
 msgid "No match found"
 msgstr "No se encontró ninguna coincidencia"
 
-#: ../src/empathy-main-window.c:695
+#: ../src/empathy-main-window.c:693
 msgid "Reconnect"
 msgstr "Reconectar"
 
-#: ../src/empathy-main-window.c:701
+#: ../src/empathy-main-window.c:699
 msgid "Edit Account"
 msgstr "Editar cuenta"
 
-#: ../src/empathy-main-window.c:707
+#: ../src/empathy-main-window.c:705
 msgid "Close"
 msgstr "Cerrar"
 
 #. Translators: this string will be something like:
 #. *   Top up My Account ($1.23)..."
-#: ../src/empathy-main-window.c:849
+#: ../src/empathy-main-window.c:844
 #, c-format
 msgid "Top up %s (%s)..."
 msgstr "Recargar %s (%s)…"
 
-#: ../src/empathy-main-window.c:924
+#: ../src/empathy-main-window.c:891
 msgid "Top up account credit"
 msgstr "Recargar el saldo de la cuenta"
 
 #. top up button
-#: ../src/empathy-main-window.c:999
+#: ../src/empathy-main-window.c:966
 msgid "Top Up..."
 msgstr "Recargar…"
 
-#: ../src/empathy-main-window.c:1763
+#: ../src/empathy-main-window.c:1733
 msgid "Contact"
 msgstr "Contacto"
 
-#: ../src/empathy-main-window.c:2115
+#: ../src/empathy-main-window.c:2085
 msgid "Contact List"
 msgstr "Lista de contactos"
 
-#: ../src/empathy-main-window.c:2233
+#: ../src/empathy-main-window.c:2203
 msgid "Show and edit accounts"
 msgstr "Mostrar y editar cuentas"
 
@@ -3918,79 +3931,79 @@ msgstr "Lista de salas"
 msgid "_Room:"
 msgstr "_Sala:"
 
-#: ../src/empathy-preferences.c:147
+#: ../src/empathy-preferences.c:156
 msgid "Message received"
 msgstr "Mensaje recibido"
 
-#: ../src/empathy-preferences.c:148
+#: ../src/empathy-preferences.c:157
 msgid "Message sent"
 msgstr "Mensaje enviado"
 
-#: ../src/empathy-preferences.c:149
+#: ../src/empathy-preferences.c:158
 msgid "New conversation"
 msgstr "Conversación nueva"
 
-#: ../src/empathy-preferences.c:150
+#: ../src/empathy-preferences.c:159
 msgid "Contact goes online"
 msgstr "El contacto se conecta"
 
-#: ../src/empathy-preferences.c:151
+#: ../src/empathy-preferences.c:160
 msgid "Contact goes offline"
 msgstr "El contacto se desconecta"
 
-#: ../src/empathy-preferences.c:152
+#: ../src/empathy-preferences.c:161
 msgid "Account connected"
 msgstr "Cuenta conectada"
 
-#: ../src/empathy-preferences.c:153
+#: ../src/empathy-preferences.c:162
 msgid "Account disconnected"
 msgstr "Cuenta desconectada"
 
-#: ../src/empathy-preferences.c:450
+#: ../src/empathy-preferences.c:459
 msgid "Language"
 msgstr "Idioma"
 
 #. translators: Contact name for the chat theme preview
-#: ../src/empathy-preferences.c:700
+#: ../src/empathy-preferences.c:709
 msgid "Juliet"
 msgstr "Julieta"
 
 #. translators: Contact name for the chat theme preview
-#: ../src/empathy-preferences.c:707
+#: ../src/empathy-preferences.c:716
 msgid "Romeo"
 msgstr "Romeo"
 
 #. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:713
+#: ../src/empathy-preferences.c:722
 msgid "O Romeo, Romeo, wherefore art thou Romeo?"
 msgstr "¡Oh, Romeo, Romeo!, ¿dónde estás que no te veo?"
 
 #. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:716
+#: ../src/empathy-preferences.c:725
 msgid "Deny thy father and refuse thy name;"
 msgstr "Niega a tu padre y rehúsa tu nombre;"
 
 #. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:719
+#: ../src/empathy-preferences.c:728
 msgid "Or if thou wilt not, be but sworn my love"
 msgstr "O, si no quieres, júrame tan sólo que me amas"
 
 #. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:722
+#: ../src/empathy-preferences.c:731
 msgid "And I'll no longer be a Capulet."
 msgstr "Y dejaré yo de ser una Capuleto"
 
 #. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:725
+#: ../src/empathy-preferences.c:734
 msgid "Shall I hear more, or shall I speak at this?"
 msgstr "¿Debo oír más o contestar a lo dicho?"
 
 #. translators: Quote from Romeo & Julier, for chat theme preview
-#: ../src/empathy-preferences.c:728
+#: ../src/empathy-preferences.c:737
 msgid "Juliet has disconnected"
 msgstr "Julieta se ha desconectado"
 
-#: ../src/empathy-preferences.c:962
+#: ../src/empathy-preferences.c:1131
 msgid "Preferences"
 msgstr "Preferencias"
 
@@ -4093,13 +4106,14 @@ msgstr ""
 "diccionario instalado."
 
 #: ../src/empathy-preferences.ui.h:24
-msgid "Theme Variant:"
-msgstr "Variante del tema:"
-
-#: ../src/empathy-preferences.ui.h:25
 msgid "Themes"
 msgstr "Temas"
 
+#: ../src/empathy-preferences.ui.h:25
+#| msgid "Theme Variant:"
+msgid "Variant:"
+msgstr "Variante:"
+
 #: ../src/empathy-preferences.ui.h:26
 msgid "_Automatically connect on startup"
 msgstr "C_onectarse automáticamente al inicio"
@@ -4213,16 +4227,16 @@ msgstr ""
 "El gestor de conexiones seleccionado no soporta la extensión de depuración "
 "remota."
 
-#: ../src/empathy-invite-participant-dialog.c:239
-#: ../src/empathy-invite-participant-dialog.c:279
+#: ../src/empathy-invite-participant-dialog.c:429
+#: ../src/empathy-invite-participant-dialog.c:477
 msgid "Invite Participant"
 msgstr "Invitar participante"
 
-#: ../src/empathy-invite-participant-dialog.c:240
+#: ../src/empathy-invite-participant-dialog.c:430
 msgid "Choose a contact to invite into the conversation:"
 msgstr "Elegir un contacto para invitar a la conversación:"
 
-#: ../src/empathy-invite-participant-dialog.c:275
+#: ../src/empathy-invite-participant-dialog.c:473
 msgid "Invite"
 msgstr "Invitar"
 
index 4ed26af30c598a0ba7f227edf0523691c9f43c3e..e6ffaa0e926deb2c42c460fb8b065a6b4567b476 100644 (file)
@@ -148,7 +148,7 @@ process_tp_chat (EmpathyChatManager *self,
   if (!tp_str_empty (id))
     {
       chat = empathy_chat_window_find_chat (account, id,
-          empathy_tp_chat_is_sms_channel (tp_chat));
+          tp_text_channel_is_sms_channel ((TpTextChannel *) tp_chat));
     }
 
   if (chat != NULL)
index 9cc65ba61ad3a9887f1b4e93b34b2f6a8d04715a..a9e76a286dfade1e653ebc0e95899e1be3bac718 100644 (file)
@@ -431,12 +431,94 @@ main_window_auth_display (EmpathyMainWindow *window,
        g_hash_table_insert (priv->auths, event, info_bar);
 }
 
+static void
+modify_event_count (GtkTreeModel *model,
+                   GtkTreeIter *iter,
+                   EmpathyEvent *event,
+                   gboolean increase)
+{
+       FolksIndividual *individual;
+       EmpathyContact *contact;
+       guint count;
+
+       gtk_tree_model_get (model, iter,
+                           EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual,
+                           EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, &count,
+                           -1);
+
+       if (individual == NULL)
+               return;
+
+       increase ? count++ : count--;
+
+       contact = empathy_contact_dup_from_folks_individual (individual);
+       if (contact == event->contact) {
+               gtk_tree_store_set (GTK_TREE_STORE (model), iter,
+                                   EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, count, -1);
+       }
+
+       tp_clear_object (&contact);
+       g_object_unref (individual);
+}
+
+static gboolean
+increase_event_count_foreach (GtkTreeModel *model,
+                             GtkTreePath *path,
+                             GtkTreeIter *iter,
+                             gpointer user_data)
+{
+       EmpathyEvent *event = user_data;
+
+       modify_event_count (model, iter, event, TRUE);
+
+       return FALSE;
+}
+
+static void
+increase_event_count (EmpathyMainWindow *self,
+                     EmpathyEvent *event)
+{
+       EmpathyMainWindowPriv *priv = GET_PRIV (self);
+       GtkTreeModel *model;
+
+       model = GTK_TREE_MODEL (priv->individual_store);
+
+       gtk_tree_model_foreach (model, increase_event_count_foreach, event);
+}
+
+static gboolean
+decrease_event_count_foreach (GtkTreeModel *model,
+                             GtkTreePath *path,
+                             GtkTreeIter *iter,
+                             gpointer user_data)
+{
+       EmpathyEvent *event = user_data;
+
+       modify_event_count (model, iter, event, FALSE);
+
+       return FALSE;
+}
+
+static void
+decrease_event_count (EmpathyMainWindow *self,
+                     EmpathyEvent *event)
+{
+       EmpathyMainWindowPriv *priv = GET_PRIV (self);
+       GtkTreeModel *model;
+
+       model = GTK_TREE_MODEL (priv->individual_store);
+
+       gtk_tree_model_foreach (model, decrease_event_count_foreach, event);
+}
+
 static void
 main_window_event_added_cb (EmpathyEventManager *manager,
                            EmpathyEvent        *event,
                            EmpathyMainWindow   *window)
 {
        if (event->contact) {
+               increase_event_count (window, event);
+
                main_window_flash_start (window);
        } else if (event->type == EMPATHY_EVENT_TYPE_AUTH) {
                main_window_auth_display (window, event);
@@ -460,6 +542,8 @@ main_window_event_removed_cb (EmpathyEventManager *manager,
                return;
        }
 
+       decrease_event_count (window, event);
+
        data.on = FALSE;
        data.event = event;
        data.window = window;