]> git.0d.be Git - empathy.git/commitdiff
Bug 636700 — Add an extra warning when deleting a metacontact
authorPhilip Withnall <philip.withnall@collabora.co.uk>
Sun, 12 Dec 2010 18:15:51 +0000 (18:15 +0000)
committerPhilip Withnall <philip.withnall@collabora.co.uk>
Mon, 13 Dec 2010 12:16:54 +0000 (12:16 +0000)
libempathy-gtk/empathy-individual-view.c

index 39dc3b34b98c2b3fc1325ed6bc74662bb8bce30f..ee2a3af854c52c846f01a2b454dd5feca8e4513c 100644 (file)
@@ -2345,12 +2345,45 @@ individual_view_remove_activate_cb (GtkMenuItem *menuitem,
     {
       gchar *text;
       GtkWindow *parent;
+      GList *l, *personas;
+      guint persona_count = 0;
+
+      personas = folks_individual_get_personas (individual);
+
+      /* If we have more than one TpfPersona, display a different message
+       * ensuring the user knows that *all* of the meta-contacts' personas will
+       * be removed. */
+      for (l = personas; l != NULL; l = l->next)
+        {
+          if (!TPF_IS_PERSONA (l->data))
+            continue;
+
+          persona_count++;
+          if (persona_count >= 2)
+            break;
+        }
+
+      if (persona_count < 2)
+        {
+          /* Not a meta-contact */
+          text =
+              g_strdup_printf (
+                  _("Do you really want to remove the contact '%s'?"),
+                  folks_aliasable_get_alias (FOLKS_ALIASABLE (individual)));
+        }
+      else
+        {
+          /* Meta-contact */
+          text =
+              g_strdup_printf (
+                  _("Do you really want to remove the linked contact '%s'? "
+                    "Note that this will remove all the contacts which make up "
+                    "this linked contact."),
+                  folks_aliasable_get_alias (FOLKS_ALIASABLE (individual)));
+        }
 
       parent = empathy_get_toplevel_window (GTK_WIDGET (view));
-      text =
-          g_strdup_printf (_
-          ("Do you really want to remove the contact '%s'?"),
-          folks_aliasable_get_alias (FOLKS_ALIASABLE (individual)));
+
       if (individual_view_remove_dialog_show (parent, _("Removing contact"),
               text))
         {