]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-roster-model.c
individual-menu: stop creating single_individual
[empathy.git] / libempathy-gtk / empathy-roster-model.c
index eaceca5f7e835cc221377f6c2c760f381852c5da..994ab9896435704e67196468d7a48ebce9d3b410 100644 (file)
@@ -18,7 +18,6 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include "config.h"
-
 #include "empathy-roster-model.h"
 
 G_DEFINE_INTERFACE (EmpathyRosterModel, empathy_roster_model, G_TYPE_OBJECT)
@@ -85,11 +84,20 @@ empathy_roster_model_fire_groups_changed (EmpathyRosterModel *self,
     const gchar *group,
     gboolean is_member)
 {
-  g_signal_emit (self, signals[SIG_GROUPS_CHANGED], 0, individual, group, is_member);
+  g_signal_emit (self, signals[SIG_GROUPS_CHANGED], 0, individual, group,
+      is_member);
 }
 
 /***** Public *****/
 
+/**
+ * empathy_roster_model_get_individuals:
+ * @self: a #EmpathyRosterModel
+ *
+ * Returns all the individuals stored by @self.
+ *
+ * Returns: (transfer container): a #GList of #FolksIndividual
+ */
 GList *
 empathy_roster_model_get_individuals (EmpathyRosterModel *self)
 {
@@ -102,3 +110,27 @@ empathy_roster_model_get_individuals (EmpathyRosterModel *self)
 
   return (* iface->get_individuals) (self);
 }
+
+/**
+ * empathy_roster_model_dup_groups_for_individual:
+ * @self: a #EmpathyRosterModel
+ * @individual: a #FolksIndidivual
+ *
+ * Returns the groups of which @individual is a member of.
+ *
+ * Returns: (transfer full): a #GList of (gchar *) representing the
+ * groups of @individual
+ */
+GList *
+empathy_roster_model_dup_groups_for_individual (EmpathyRosterModel *self,
+    FolksIndividual *individual)
+{
+  EmpathyRosterModelInterface *iface;
+
+  g_return_val_if_fail (EMPATHY_IS_ROSTER_MODEL (self), NULL);
+
+  iface = EMPATHY_ROSTER_MODEL_GET_IFACE (self);
+  g_return_val_if_fail (iface->dup_groups_for_individual != NULL, NULL);
+
+  return (* iface->dup_groups_for_individual) (self, individual);
+}