diff options
author | Philip Withnall <philip.withnall@collabora.co.uk> | 2010-07-02 00:03:59 +0800 |
---|---|---|
committer | Travis Reitter <treitter@gmail.com> | 2010-07-21 07:12:36 +0800 |
commit | 2fcee569ba4bf86f78b6b5d6c12bfeeecbb1c47e (patch) | |
tree | 3ecac9006bf0638fd3ec866bcaaa294bf92e73d0 /libempathy | |
parent | 2999dda22d4d80df40420334273fcbb7aadac091 (diff) | |
download | gsoc2013-empathy-2fcee569ba4bf86f78b6b5d6c12bfeeecbb1c47e.tar gsoc2013-empathy-2fcee569ba4bf86f78b6b5d6c12bfeeecbb1c47e.tar.gz gsoc2013-empathy-2fcee569ba4bf86f78b6b5d6c12bfeeecbb1c47e.tar.bz2 gsoc2013-empathy-2fcee569ba4bf86f78b6b5d6c12bfeeecbb1c47e.tar.lz gsoc2013-empathy-2fcee569ba4bf86f78b6b5d6c12bfeeecbb1c47e.tar.xz gsoc2013-empathy-2fcee569ba4bf86f78b6b5d6c12bfeeecbb1c47e.tar.zst gsoc2013-empathy-2fcee569ba4bf86f78b6b5d6c12bfeeecbb1c47e.zip |
Support removing groups
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/empathy-individual-manager.c | 26 | ||||
-rw-r--r-- | libempathy/empathy-individual-manager.h | 3 |
2 files changed, 29 insertions, 0 deletions
diff --git a/libempathy/empathy-individual-manager.c b/libempathy/empathy-individual-manager.c index ef2688b14..c2c2eefae 100644 --- a/libempathy/empathy-individual-manager.c +++ b/libempathy/empathy-individual-manager.c @@ -329,6 +329,32 @@ empathy_individual_manager_remove (EmpathyIndividualManager *self, folks_individual_aggregator_remove_individual (priv->aggregator, individual); } +static void +remove_group_cb (const gchar *id, FolksIndividual *individual, + const gchar *group) +{ + folks_groups_change_group (FOLKS_GROUPS (individual), group, FALSE); +} + +void +empathy_individual_manager_remove_group (EmpathyIndividualManager *manager, + const gchar *group) +{ + EmpathyIndividualManagerPriv *priv; + GHashTable *individuals; + + g_return_if_fail (EMPATHY_IS_INDIVIDUAL_MANAGER (manager)); + g_return_if_fail (group != NULL); + + priv = GET_PRIV (manager); + + DEBUG (G_STRLOC ": removing group %s", group); + + /* Remove every individual from the group */ + individuals = folks_individual_aggregator_get_individuals (priv->aggregator); + g_hash_table_foreach (individuals, (GHFunc) remove_group_cb, group); +} + EmpathyIndividualManagerFlags empathy_individual_manager_get_flags_for_connection ( EmpathyIndividualManager *self, diff --git a/libempathy/empathy-individual-manager.h b/libempathy/empathy-individual-manager.h index 2fab1ffb0..66014bcbb 100644 --- a/libempathy/empathy-individual-manager.h +++ b/libempathy/empathy-individual-manager.h @@ -79,6 +79,9 @@ void empathy_individual_manager_remove (EmpathyIndividualManager *manager, FolksIndividual *individual, const gchar *message); +void empathy_individual_manager_remove_group (EmpathyIndividualManager *manager, + const gchar *group); + EmpathyIndividualManagerFlags empathy_individual_manager_get_flags_for_connection ( EmpathyIndividualManager *manager, |