]> git.0d.be Git - empathy.git/commitdiff
empathy-roster-model-manager: Pass an EmpathyIndividualManager to EmpathyRosterModelM...
authorLaurent Contzen <lcontzen@gmail.com>
Wed, 4 Jul 2012 08:54:13 +0000 (10:54 +0200)
committerLaurent Contzen <lcontzen@gmail.com>
Mon, 23 Jul 2012 07:48:42 +0000 (09:48 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=680302

libempathy-gtk/empathy-roster-model-manager.c
libempathy-gtk/empathy-roster-model-manager.h

index 824013b863a9c858da43401a429cbde8941f5036..c9b2620f8eb80a618ed857e56e904aafccb79d94 100644 (file)
@@ -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);
 }
 
index 79474945c644487c17efc65fc557002eb52c386f..8e1d25c4375c18ffff6a2ab33fa4ccf78093ebfe 100644 (file)
@@ -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