]> git.0d.be Git - empathy.git/commitdiff
roster-view: remember state expanded status of groups
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 30 Aug 2012 12:11:20 +0000 (14:11 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 30 Aug 2012 12:12:25 +0000 (14:12 +0200)
Pretty simple actually, that's a simple port of the logic from
empathy-individual-view.

https://bugzilla.gnome.org/show_bug.cgi?id=679259

libempathy-gtk/empathy-roster-view.c

index 4ad2d16ef79ffae9cb8492e7020e8cef9d5cbffd..00544fbb0d17799534ebb0dec42a40f9db3e2bee 100644 (file)
@@ -4,6 +4,8 @@
 
 #include <glib/gi18n-lib.h>
 
+#include <libempathy/empathy-contact-groups.h>
+
 #include <libempathy-gtk/empathy-roster-contact.h>
 #include <libempathy-gtk/empathy-roster-group.h>
 #include <libempathy-gtk/empathy-ui-utils.h>
@@ -200,6 +202,9 @@ group_expanded_cb (EmpathyRosterGroup *group,
     }
 
   g_list_free (widgets);
+
+  empathy_contact_group_set_expanded (empathy_roster_group_get_name (group),
+      gtk_expander_get_expanded (GTK_EXPANDER (group)));
 }
 
 static EmpathyRosterGroup *
@@ -226,6 +231,9 @@ ensure_roster_group (EmpathyRosterView *self,
   else
     roster_group = empathy_roster_group_new (group, NULL);
 
+  gtk_expander_set_expanded (GTK_EXPANDER (roster_group),
+      empathy_contact_group_get_expanded (group));
+
   g_signal_connect (roster_group, "notify::expanded",
       G_CALLBACK (group_expanded_cb), self);
 
@@ -932,6 +940,9 @@ empathy_roster_view_constructed (GObject *object)
 
   g_assert (EMPATHY_IS_ROSTER_MODEL (self->priv->model));
 
+  /* Get saved group states. */
+  empathy_contact_groups_get_all ();
+
   populate_view (self);
 
   tp_g_signal_connect_object (self->priv->model, "individual-added",