[empathy] Bug 636700 — Add an extra warning when deleting a metacontact



commit a2f8a7b9198d90f6a2e8e38c403e29c25b0b560c
Author: Philip Withnall <philip withnall collabora co uk>
Date:   Sun Dec 12 18:15:51 2010 +0000

    Bug 636700 â?? Add an extra warning when deleting a metacontact

 libempathy-gtk/empathy-individual-view.c |   41 +++++++++++++++++++++++++++---
 1 files changed, 37 insertions(+), 4 deletions(-)
---
diff --git a/libempathy-gtk/empathy-individual-view.c b/libempathy-gtk/empathy-individual-view.c
index 39dc3b3..ee2a3af 100644
--- a/libempathy-gtk/empathy-individual-view.c
+++ b/libempathy-gtk/empathy-individual-view.c
@@ -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))
         {



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