]> git.0d.be Git - empathy.git/commitdiff
Added new function _get_top_individuals in the model
authorLaurent Contzen <lcontzen@gmail.com>
Sat, 4 Aug 2012 10:30:08 +0000 (12:30 +0200)
committerLaurent Contzen <lcontzen@gmail.com>
Mon, 6 Aug 2012 09:02:18 +0000 (11:02 +0200)
empathy-roster-model: new function _get_top_individuals
empathy-roster-model-manager: implemented _get_top_individuals
empathy-roster-view: uses the roster-model's _get_top_individuals instead of the individual-manager's

libempathy-gtk/empathy-roster-model-manager.c
libempathy-gtk/empathy-roster-model.c
libempathy-gtk/empathy-roster-model.h
libempathy-gtk/empathy-roster-view.c

index c0549d80a1223e1dcef00e3367160a396db361f0..be41aceca1453a2f51075fa40a944b3debbf8ece 100644 (file)
@@ -271,10 +271,19 @@ empathy_roster_model_manager_get_groups_for_individual (EmpathyRosterModel *mode
   return groups_list;
 }
 
+static GList *
+empathy_roster_model_manager_get_top_individuals (EmpathyRosterModel *model)
+{
+  EmpathyRosterModelManager *self = EMPATHY_ROSTER_MODEL_MANAGER (model);
+
+  return empathy_individual_manager_get_top_individuals (self->priv->manager);
+}
+
 static void
 roster_model_iface_init (EmpathyRosterModelInterface *iface)
 {
   iface->get_individuals = empathy_roster_model_manager_get_individuals;
   iface->get_groups_for_individual =
     empathy_roster_model_manager_get_groups_for_individual;
+  iface->get_top_individuals = empathy_roster_model_manager_get_top_individuals;
 }
index 80a82bf1d5740976ad2b4510059d6f07b5b9a648..37ca594fe69a03485141fdab6269627e41a3678c 100644 (file)
@@ -134,3 +134,24 @@ empathy_roster_model_get_groups_for_individual (EmpathyRosterModel *self,
 
   return (* iface->get_groups_for_individual) (self, individual);
 }
+
+/**
+ * empathy_roster_model_get_top_individuals:
+ * @self: a #EmpathyRosterModel
+ *
+ * Returns a list of the top_individuals.
+ *
+ * Return value: (transfer none): a #GList of #FolksIndividual
+ */
+GList *
+empathy_roster_model_get_top_individuals (EmpathyRosterModel *self)
+{
+  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->get_top_individuals != NULL, NULL);
+
+  return (* iface->get_top_individuals) (self);
+}
index 9d600089362a86b9417d86759c5442d0c98cca27..860efd77f6f78abe09930e5e4196636874076122 100644 (file)
@@ -38,6 +38,7 @@ struct _EmpathyRosterModelInterface
   GList * (* get_individuals) (EmpathyRosterModel *self);
   GList * (*get_groups_for_individual) (EmpathyRosterModel *self,
       FolksIndividual *individual);
+  GList * (*get_top_individuals) (EmpathyRosterModel *self);
 };
 
 GType empathy_roster_model_get_type (void);
@@ -76,6 +77,8 @@ GList * empathy_roster_model_get_individuals (EmpathyRosterModel *self);
 GList * empathy_roster_model_get_groups_for_individual (EmpathyRosterModel *self,
     FolksIndividual *individual);
 
+GList * empathy_roster_model_get_top_individuals (EmpathyRosterModel *self);
+
 G_END_DECLS
 
 #endif /* #ifndef __EMPATHY_ROSTER_MODEL_H__*/
index 3fc664c5f07155909268b19b25909252ced3e3ca..0b50b0d39601d586045a163c1aafe642aade1955 100644 (file)
@@ -316,8 +316,7 @@ individual_added (EmpathyRosterView *self,
       GList *groups, *l;
       GList *tops;
 
-      tops = empathy_individual_manager_get_top_individuals (
-          self->priv->manager);
+      tops = empathy_roster_model_get_top_individuals (self->priv->model);
 
       if (folks_favourite_details_get_is_favourite (
             FOLKS_FAVOURITE_DETAILS (individual)) ||
@@ -544,7 +543,7 @@ contact_in_top (EmpathyRosterView *self,
 
   individual = empathy_roster_contact_get_individual (contact);
 
-  tops = empathy_individual_manager_get_top_individuals (self->priv->manager);
+  tops = empathy_roster_model_get_top_individuals (self->priv->model);
 
   if (g_list_index (tops, individual) != -1)
     return TRUE;
@@ -959,7 +958,7 @@ update_top_contacts (EmpathyRosterView *self)
       return;
     }
 
-  tops = empathy_individual_manager_get_top_individuals (self->priv->manager);
+  tops = empathy_roster_model_get_top_individuals (self->priv->model);
 
   group = g_hash_table_lookup (self->priv->roster_groups,
       EMPATHY_ROSTER_VIEW_GROUP_TOP_GROUP);