]> git.0d.be Git - empathy.git/blobdiff - libempathy/empathy-contact-manager.c
Add a remove option to delete a contact group. Fixes bug #459520 (David Turner).
[empathy.git] / libempathy / empathy-contact-manager.c
index 219cf888607209e8e82c6198109bfaf402c6d65d..d862750482a80714a21873d0de50049f0923fc81 100644 (file)
@@ -482,6 +482,27 @@ contact_manager_rename_group (EmpathyContactList *manager,
                              &data);
 }
 
+static void contact_manager_remove_group_foreach (McAccount    *account,
+                                                 EmpathyTpContactList *list,
+                                                 const gchar *group)
+{
+       empathy_contact_list_remove_group (EMPATHY_CONTACT_LIST (list),
+                                          group);
+}
+
+static void
+contact_manager_remove_group (EmpathyContactList *manager,
+                             const gchar *group)
+{
+       EmpathyContactManagerPriv *priv = GET_PRIV (manager);
+       
+       g_return_if_fail (EMPATHY_IS_CONTACT_MANAGER (manager));
+
+       g_hash_table_foreach (priv->lists,
+                             (GHFunc) contact_manager_remove_group_foreach,
+                             (gpointer) group);
+}
+
 static void
 contact_manager_iface_init (EmpathyContactListIface *iface)
 {
@@ -494,5 +515,6 @@ contact_manager_iface_init (EmpathyContactListIface *iface)
        iface->add_to_group      = contact_manager_add_to_group;
        iface->remove_from_group = contact_manager_remove_from_group;
        iface->rename_group      = contact_manager_rename_group;
+       iface->remove_group      = contact_manager_remove_group;
 }