[empathy] roster-view: add 'show-groups' property
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] roster-view: add 'show-groups' property
- Date: Thu, 14 Jun 2012 07:49:22 +0000 (UTC)
commit cfeb597b9cafbf61b950a0a3a76daff7ccf03f90
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Fri May 25 13:25:15 2012 +0200
roster-view: add 'show-groups' property
Not implemented yet.
libempathy-gtk/empathy-roster-view.c | 38 ++++++++++++++++++++++++++++++++++
libempathy-gtk/empathy-roster-view.h | 3 ++
2 files changed, 41 insertions(+), 0 deletions(-)
---
diff --git a/libempathy-gtk/empathy-roster-view.c b/libempathy-gtk/empathy-roster-view.c
index 95b1498..793832a 100644
--- a/libempathy-gtk/empathy-roster-view.c
+++ b/libempathy-gtk/empathy-roster-view.c
@@ -11,6 +11,7 @@ enum
{
PROP_MANAGER = 1,
PROP_SHOW_OFFLINE,
+ PROP_SHOW_GROUPS,
N_PROPS
};
@@ -31,6 +32,7 @@ struct _EmpathyRosterViewPriv
GHashTable *items;
gboolean show_offline;
+ gboolean show_groups;
};
static void
@@ -49,6 +51,9 @@ empathy_roster_view_get_property (GObject *object,
case PROP_SHOW_OFFLINE:
g_value_set_boolean (value, self->priv->show_offline);
break;
+ case PROP_SHOW_GROUPS:
+ g_value_set_boolean (value, self->priv->show_groups);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -72,6 +77,9 @@ empathy_roster_view_set_property (GObject *object,
case PROP_SHOW_OFFLINE:
empathy_roster_view_show_offline (self, g_value_get_boolean (value));
break;
+ case PROP_SHOW_GROUPS:
+ empathy_roster_view_show_groups (self, g_value_get_boolean (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -295,6 +303,12 @@ empathy_roster_view_class_init (
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
g_object_class_install_property (oclass, PROP_SHOW_OFFLINE, spec);
+ spec = g_param_spec_boolean ("show-groups", "Show Groups",
+ "Show groups",
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ g_object_class_install_property (oclass, PROP_SHOW_GROUPS, spec);
+
g_type_class_add_private (klass, sizeof (EmpathyRosterViewPriv));
}
@@ -335,3 +349,27 @@ empathy_roster_view_show_offline (EmpathyRosterView *self,
g_object_notify (G_OBJECT (self), "show-offline");
}
+
+static void
+clear_view (EmpathyRosterView *self)
+{
+ gtk_container_foreach (GTK_CONTAINER (self),
+ (GtkCallback) gtk_widget_destroy, NULL);
+
+ g_hash_table_remove_all (self->priv->items);
+}
+
+void
+empathy_roster_view_show_groups (EmpathyRosterView *self,
+ gboolean show)
+{
+ if (self->priv->show_groups == show)
+ return;
+
+ self->priv->show_groups = show;
+
+ clear_view (self);
+ populate_view (self);
+
+ g_object_notify (G_OBJECT (self), "show-groups");
+}
diff --git a/libempathy-gtk/empathy-roster-view.h b/libempathy-gtk/empathy-roster-view.h
index 57fb809..8706da3 100644
--- a/libempathy-gtk/empathy-roster-view.h
+++ b/libempathy-gtk/empathy-roster-view.h
@@ -56,6 +56,9 @@ EmpathyIndividualManager * empathy_roster_view_get_manager (
void empathy_roster_view_show_offline (EmpathyRosterView *self,
gboolean show);
+void empathy_roster_view_show_groups (EmpathyRosterView *self,
+ gboolean show);
+
G_END_DECLS
#endif /* #ifndef __EMPATHY_ROSTER_VIEW_H__*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]