diff options
author | Laurent Contzen <lcontzen@gmail.com> | 2012-07-04 16:54:13 +0800 |
---|---|---|
committer | Laurent Contzen <lcontzen@gmail.com> | 2012-07-23 15:48:42 +0800 |
commit | 2a6cc7b7710e6be6416365320a3417f360583af3 (patch) | |
tree | 89ed0faf04974c66df6cd59aca4a5228b0240a46 /libempathy-gtk/empathy-roster-model-manager.c | |
parent | 2e9ea0fb13d570edeca7161d827d8041298c2134 (diff) | |
download | gsoc2013-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/empathy-roster-model-manager.c')
-rw-r--r-- | libempathy-gtk/empathy-roster-model-manager.c | 36 |
1 files changed, 28 insertions, 8 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); } |