aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-roster-model.c
diff options
context:
space:
mode:
authorLaurent Contzen <lcontzen@gmail.com>2012-07-04 20:59:48 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-07-23 22:11:28 +0800
commit5e102f002d353aceb687f92499635b86a0ba2d9b (patch)
tree3a5d3e2b6eb0d0717faa0c9aa9380b42fac00ff8 /libempathy-gtk/empathy-roster-model.c
parent136088b2686da8dc9fca4e3b77faad28e1a873d1 (diff)
downloadgsoc2013-empathy-5e102f002d353aceb687f92499635b86a0ba2d9b.tar
gsoc2013-empathy-5e102f002d353aceb687f92499635b86a0ba2d9b.tar.gz
gsoc2013-empathy-5e102f002d353aceb687f92499635b86a0ba2d9b.tar.bz2
gsoc2013-empathy-5e102f002d353aceb687f92499635b86a0ba2d9b.tar.lz
gsoc2013-empathy-5e102f002d353aceb687f92499635b86a0ba2d9b.tar.xz
gsoc2013-empathy-5e102f002d353aceb687f92499635b86a0ba2d9b.tar.zst
gsoc2013-empathy-5e102f002d353aceb687f92499635b86a0ba2d9b.zip
empathy-roster-model, empathy-roster-model-manager: Now deals with groups-changed signal empathy-roster-view.c: now uses roster-model's groups-changed signal
https://bugzilla.gnome.org/show_bug.cgi?id=680302
Diffstat (limited to 'libempathy-gtk/empathy-roster-model.c')
-rw-r--r--libempathy-gtk/empathy-roster-model.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-roster-model.c b/libempathy-gtk/empathy-roster-model.c
index ce86e58a6..eaceca5f7 100644
--- a/libempathy-gtk/empathy-roster-model.c
+++ b/libempathy-gtk/empathy-roster-model.c
@@ -27,6 +27,7 @@ enum
{
SIG_INDIVIDUAL_ADDED,
SIG_INDIVIDUAL_REMOVED,
+ SIG_GROUPS_CHANGED,
LAST_SIGNAL
};
@@ -50,6 +51,16 @@ empathy_roster_model_default_init (EmpathyRosterModelInterface *iface)
0, NULL, NULL, NULL,
G_TYPE_NONE, 1,
FOLKS_TYPE_INDIVIDUAL);
+
+ signals[SIG_GROUPS_CHANGED] =
+ g_signal_new ("groups-changed",
+ EMPATHY_TYPE_ROSTER_MODEL,
+ G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 3,
+ FOLKS_TYPE_INDIVIDUAL,
+ G_TYPE_STRING,
+ G_TYPE_BOOLEAN);
}
/***** Restricted *****/
@@ -68,6 +79,15 @@ empathy_roster_model_fire_individual_removed (EmpathyRosterModel *self,
g_signal_emit (self, signals[SIG_INDIVIDUAL_REMOVED], 0, individual);
}
+void
+empathy_roster_model_fire_groups_changed (EmpathyRosterModel *self,
+ FolksIndividual *individual,
+ const gchar *group,
+ gboolean is_member)
+{
+ g_signal_emit (self, signals[SIG_GROUPS_CHANGED], 0, individual, group, is_member);
+}
+
/***** Public *****/
GList *