aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
authorLaurent Contzen <lcontzen@gmail.com>2012-07-04 17:59:15 +0800
committerLaurent Contzen <lcontzen@gmail.com>2012-07-23 15:48:42 +0800
commit87511314e60d6a9c67caaed5d5fd2e3f2f3657c8 (patch)
tree4fae80b9a44c02e2f572cf486f87591ed1e64636 /libempathy-gtk
parent3ba0b1109440fc6b1bd7f196c14aa5fe44ff1884 (diff)
downloadgsoc2013-empathy-87511314e60d6a9c67caaed5d5fd2e3f2f3657c8.tar
gsoc2013-empathy-87511314e60d6a9c67caaed5d5fd2e3f2f3657c8.tar.gz
gsoc2013-empathy-87511314e60d6a9c67caaed5d5fd2e3f2f3657c8.tar.bz2
gsoc2013-empathy-87511314e60d6a9c67caaed5d5fd2e3f2f3657c8.tar.lz
gsoc2013-empathy-87511314e60d6a9c67caaed5d5fd2e3f2f3657c8.tar.xz
gsoc2013-empathy-87511314e60d6a9c67caaed5d5fd2e3f2f3657c8.tar.zst
gsoc2013-empathy-87511314e60d6a9c67caaed5d5fd2e3f2f3657c8.zip
empathy-roster-view: start using empathy-roster-model
https://bugzilla.gnome.org/show_bug.cgi?id=680302
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-roster-view.c27
-rw-r--r--libempathy-gtk/empathy-roster-view.h4
2 files changed, 27 insertions, 4 deletions
diff --git a/libempathy-gtk/empathy-roster-view.c b/libempathy-gtk/empathy-roster-view.c
index 9647a1a4f..fb157ac90 100644
--- a/libempathy-gtk/empathy-roster-view.c
+++ b/libempathy-gtk/empathy-roster-view.c
@@ -18,6 +18,7 @@ G_DEFINE_TYPE (EmpathyRosterView, empathy_roster_view, EGG_TYPE_LIST_BOX)
enum
{
PROP_MANAGER = 1,
+ PROP_MODEL,
PROP_SHOW_OFFLINE,
PROP_SHOW_GROUPS,
PROP_EMPTY,
@@ -66,6 +67,8 @@ struct _EmpathyRosterViewPriv
gboolean empty;
EmpathyLiveSearch *search;
+
+ EmpathyRosterModel *model;
};
typedef struct
@@ -114,6 +117,9 @@ empathy_roster_view_get_property (GObject *object,
case PROP_MANAGER:
g_value_set_object (value, self->priv->manager);
break;
+ case PROP_MODEL:
+ g_value_set_object (value, self->priv->model);
+ break;
case PROP_SHOW_OFFLINE:
g_value_set_boolean (value, self->priv->show_offline);
break;
@@ -143,6 +149,10 @@ empathy_roster_view_set_property (GObject *object,
g_assert (self->priv->manager == NULL); /* construct only */
self->priv->manager = g_value_dup_object (value);
break;
+ case PROP_MODEL:
+ g_assert (self->priv->model == NULL);
+ self->priv->model = g_value_dup_object (value);
+ break;
case PROP_SHOW_OFFLINE:
empathy_roster_view_show_offline (self, g_value_get_boolean (value));
break;
@@ -930,7 +940,7 @@ populate_view (EmpathyRosterView *self)
{
GList *individuals, *l;
- individuals = empathy_individual_manager_get_members (self->priv->manager);
+ individuals = empathy_roster_model_get_individuals (self->priv->model);
for (l = individuals; l != NULL; l = g_list_next (l))
{
FolksIndividual *individual = l->data;
@@ -1109,6 +1119,7 @@ empathy_roster_view_constructed (GObject *object)
chain_up (object);
g_assert (EMPATHY_IS_INDIVIDUAL_MANAGER (self->priv->manager));
+ g_assert (EMPATHY_IS_ROSTER_MODEL (self->priv->model));
populate_view (self);
@@ -1143,6 +1154,7 @@ empathy_roster_view_dispose (GObject *object)
empathy_roster_view_set_live_search (self, NULL);
g_clear_object (&self->priv->manager);
+ g_clear_object (&self->priv->model);
if (chain_up != NULL)
chain_up (object);
@@ -1375,6 +1387,12 @@ empathy_roster_view_class_init (
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
g_object_class_install_property (oclass, PROP_MANAGER, spec);
+ spec = g_param_spec_object ("model", "Model",
+ "EmpathyRosterModel",
+ EMPATHY_TYPE_ROSTER_MODEL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ g_object_class_install_property (oclass, PROP_MODEL, spec);
+
spec = g_param_spec_boolean ("show-offline", "Show Offline",
"Show offline contacts",
FALSE,
@@ -1442,12 +1460,15 @@ empathy_roster_view_init (EmpathyRosterView *self)
}
GtkWidget *
-empathy_roster_view_new (EmpathyIndividualManager *manager)
+empathy_roster_view_new (EmpathyIndividualManager *manager,
+ EmpathyRosterModel *model)
{
g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_MANAGER (manager), NULL);
-
+ g_return_val_if_fail (EMPATHY_IS_ROSTER_MODEL (model), NULL);
+
return g_object_new (EMPATHY_TYPE_ROSTER_VIEW,
"manager", manager,
+ "model", model,
NULL);
}
diff --git a/libempathy-gtk/empathy-roster-view.h b/libempathy-gtk/empathy-roster-view.h
index 07c170970..fd4f13ec1 100644
--- a/libempathy-gtk/empathy-roster-view.h
+++ b/libempathy-gtk/empathy-roster-view.h
@@ -6,6 +6,7 @@
#include <libempathy-gtk/empathy-live-search.h>
#include <libempathy/empathy-individual-manager.h>
+#include <libempathy-gtk/empathy-roster-model.h>
G_BEGIN_DECLS
@@ -54,7 +55,8 @@ GType empathy_roster_view_get_type (void);
EMPATHY_TYPE_ROSTER_VIEW, \
EmpathyRosterViewClass))
-GtkWidget * empathy_roster_view_new (EmpathyIndividualManager *manager);
+GtkWidget * empathy_roster_view_new (EmpathyIndividualManager *manager,
+ EmpathyRosterModel *model);
EmpathyIndividualManager * empathy_roster_view_get_manager (
EmpathyRosterView *self);