aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
authorLaurent Contzen <lcontzen@gmail.com>2012-07-04 16:54:13 +0800
committerLaurent Contzen <lcontzen@gmail.com>2012-07-23 15:48:42 +0800
commit2a6cc7b7710e6be6416365320a3417f360583af3 (patch)
tree89ed0faf04974c66df6cd59aca4a5228b0240a46 /libempathy-gtk
parent2e9ea0fb13d570edeca7161d827d8041298c2134 (diff)
downloadgsoc2013-empathy-2a6cc7b7710e6be6416365320a3417f360583af3.tar
gsoc2013-empathy-2a6cc7b7710e6be6416365320a3417f360583af3.tar.gz
gsoc2013-empathy-2a6cc7b7710e6be6416365320a3417f360583af3.tar.bz2
gsoc2013-empathy-2a6cc7b7710e6be6416365320a3417f360583af3.tar.lz
gsoc2013-empathy-2a6cc7b7710e6be6416365320a3417f360583af3.tar.xz
gsoc2013-empathy-2a6cc7b7710e6be6416365320a3417f360583af3.tar.zst
gsoc2013-empathy-2a6cc7b7710e6be6416365320a3417f360583af3.zip
empathy-roster-model-manager: Pass an EmpathyIndividualManager to EmpathyRosterModelManager
https://bugzilla.gnome.org/show_bug.cgi?id=680302
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-roster-model-manager.c36
-rw-r--r--libempathy-gtk/empathy-roster-model-manager.h4
2 files changed, 31 insertions, 9 deletions
diff --git a/libempathy-gtk/empathy-roster-model-manager.c b/libempathy-gtk/empathy-roster-model-manager.c
index 824013b86..c9b2620f8 100644
--- a/libempathy-gtk/empathy-roster-model-manager.c
+++ b/libempathy-gtk/empathy-roster-model-manager.c
@@ -36,7 +36,7 @@ G_DEFINE_TYPE_WITH_CODE (EmpathyRosterModelManager,
enum
{
- PROP_FIRST_PROP = 1,
+ PROP_MANAGER = 1,
N_PROPS
};
@@ -51,7 +51,7 @@ static guint signals[LAST_SIGNAL];
struct _EmpathyRosterModelManagerPriv
{
- gpointer badger;
+ EmpathyIndividualManager *manager;
};
static void
@@ -60,10 +60,13 @@ empathy_roster_model_manager_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- //EmpathyRosterModelManager *self = EMPATHY_ROSTER_MODEL_MANAGER (object);
+ EmpathyRosterModelManager *self = EMPATHY_ROSTER_MODEL_MANAGER (object);
switch (property_id)
{
+ case PROP_MANAGER:
+ g_value_set_object (value, self->priv->manager);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -76,10 +79,14 @@ empathy_roster_model_manager_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
- //EmpathyRosterModelManager *self = EMPATHY_ROSTER_MODEL_MANAGER (object);
+ EmpathyRosterModelManager *self = EMPATHY_ROSTER_MODEL_MANAGER (object);
switch (property_id)
{
+ case PROP_MANAGER:
+ g_assert (self->priv->manager == NULL); /* construct only */
+ self->priv->manager = g_value_dup_object (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -89,21 +96,25 @@ empathy_roster_model_manager_set_property (GObject *object,
static void
empathy_roster_model_manager_constructed (GObject *object)
{
- //EmpathyRosterModelManager *self = EMPATHY_ROSTER_MODEL_MANAGER (object);
+ EmpathyRosterModelManager *self = EMPATHY_ROSTER_MODEL_MANAGER (object);
void (*chain_up) (GObject *) =
((GObjectClass *) empathy_roster_model_manager_parent_class)->constructed;
if (chain_up != NULL)
chain_up (object);
+
+ g_assert (EMPATHY_IS_INDIVIDUAL_MANAGER (self->priv->manager));
}
static void
empathy_roster_model_manager_dispose (GObject *object)
{
- //EmpathyRosterModelManager *self = EMPATHY_ROSTER_MODEL_MANAGER (object);
+ EmpathyRosterModelManager *self = EMPATHY_ROSTER_MODEL_MANAGER (object);
void (*chain_up) (GObject *) =
((GObjectClass *) empathy_roster_model_manager_parent_class)->dispose;
+ g_clear_object (&self->priv->manager);
+
if (chain_up != NULL)
chain_up (object);
}
@@ -124,7 +135,7 @@ empathy_roster_model_manager_class_init (
EmpathyRosterModelManagerClass *klass)
{
GObjectClass *oclass = G_OBJECT_CLASS (klass);
- //GParamSpec *spec;
+ GParamSpec *spec;
oclass->get_property = empathy_roster_model_manager_get_property;
oclass->set_property = empathy_roster_model_manager_set_property;
@@ -132,6 +143,12 @@ empathy_roster_model_manager_class_init (
oclass->dispose = empathy_roster_model_manager_dispose;
oclass->finalize = empathy_roster_model_manager_finalize;
+ spec = g_param_spec_object ("manager", "Manager",
+ "EmpathyIndividualManager",
+ EMPATHY_TYPE_INDIVIDUAL_MANAGER,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+ g_object_class_install_property (oclass, PROP_MANAGER, spec);
+
g_type_class_add_private (klass, sizeof (EmpathyRosterModelManagerPriv));
}
@@ -143,9 +160,12 @@ empathy_roster_model_manager_init (EmpathyRosterModelManager *self)
}
EmpathyRosterModelManager *
-empathy_roster_model_manager_new (void)
+empathy_roster_model_manager_new (EmpathyIndividualManager *manager)
{
+ g_return_val_if_fail (EMPATHY_IS_INDIVIDUAL_MANAGER (manager), NULL);
+
return g_object_new (EMPATHY_TYPE_ROSTER_MODEL_MANAGER,
+ "manager", manager,
NULL);
}
diff --git a/libempathy-gtk/empathy-roster-model-manager.h b/libempathy-gtk/empathy-roster-model-manager.h
index 79474945c..8e1d25c43 100644
--- a/libempathy-gtk/empathy-roster-model-manager.h
+++ b/libempathy-gtk/empathy-roster-model-manager.h
@@ -23,6 +23,8 @@
#include <glib-object.h>
+#include <libempathy/empathy-individual-manager.h>
+
G_BEGIN_DECLS
typedef struct _EmpathyRosterModelManager EmpathyRosterModelManager;
@@ -66,7 +68,7 @@ GType empathy_roster_model_manager_get_type (void);
EMPATHY_TYPE_ROSTER_MODEL_MANAGER, \
EmpathyRosterModelManagerClass))
-EmpathyRosterModelManager * empathy_roster_model_manager_new (void);
+EmpathyRosterModelManager * empathy_roster_model_manager_new (EmpathyIndividualManager *manager);
G_END_DECLS