[Telepathy-commits] [telepathy-mission-control/master] Remove McdConnection from DO constructor

Alberto Mardegan alberto.mardegan at nokia.com
Mon Nov 17 00:05:27 PST 2008


The DispatchOperation can get the connection from any of the channels, it
doesn't need to be passed in when constructiong it.
---
 src/mcd-dispatch-operation.c |   21 +++++++++------------
 src/mcd-dispatch-operation.h |    1 -
 2 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/src/mcd-dispatch-operation.c b/src/mcd-dispatch-operation.c
index 5d84455..6955696 100644
--- a/src/mcd-dispatch-operation.c
+++ b/src/mcd-dispatch-operation.c
@@ -80,7 +80,6 @@ enum
 {
     PROP_0,
     PROP_DBUS_DAEMON,
-    PROP_CONNECTION,
     PROP_CHANNELS,
 };
 
@@ -247,13 +246,18 @@ mcd_dispatch_operation_set_property (GObject *obj, guint prop_id,
             g_object_unref (priv->dbus_daemon);
         priv->dbus_daemon = TP_DBUS_DAEMON (g_value_dup_object (val));
         break;
-    case PROP_CONNECTION:
-        g_assert (priv->connection == NULL);
-        priv->connection = g_value_dup_object (val);
-        break;
     case PROP_CHANNELS:
         g_assert (priv->channels == NULL);
         priv->channels = g_value_get_pointer (val);
+        if (G_LIKELY (priv->channels))
+        {
+            /* get the connection from the first channel */
+            McdChannel *channel = MCD_CHANNEL (priv->channels->data);
+            priv->connection = (McdConnection *)
+                mcd_mission_get_parent (MCD_MISSION (channel));
+            if (G_LIKELY (priv->connection))
+                g_object_ref (priv->connection);
+        }
         break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
@@ -325,11 +329,6 @@ mcd_dispatch_operation_class_init (McdDispatchOperationClass * klass)
 							  TP_TYPE_DBUS_DAEMON,
 							  G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
 
-    g_object_class_install_property (object_class, PROP_CONNECTION,
-        g_param_spec_object ("connection", "connection", "connection",
-							  TP_TYPE_DBUS_DAEMON,
-							  G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
-
     g_object_class_install_property (object_class, PROP_CHANNELS,
         g_param_spec_pointer ("channels", "channels", "channels",
                               G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
@@ -351,13 +350,11 @@ mcd_dispatch_operation_init (McdDispatchOperation *operation)
 
 McdDispatchOperation *
 mcd_dispatch_operation_new (TpDBusDaemon *dbus_daemon,
-                            McdConnection *connection,
                             GList *channels)
 {
     gpointer *obj;
     obj = g_object_new (MCD_TYPE_DISPATCH_OPERATION,
                         "dbus-daemon", dbus_daemon,
-                        "connection", connection,
                         "channels", channels,
                         NULL);
     return MCD_DISPATCH_OPERATION (obj);
diff --git a/src/mcd-dispatch-operation.h b/src/mcd-dispatch-operation.h
index 5359bec..84963d6 100644
--- a/src/mcd-dispatch-operation.h
+++ b/src/mcd-dispatch-operation.h
@@ -59,7 +59,6 @@ struct _McdDispatchOperationClass
 
 GType mcd_dispatch_operation_get_type (void);
 McdDispatchOperation *mcd_dispatch_operation_new (TpDBusDaemon *dbus_daemon,
-                                                  McdConnection *connection,
                                                   GList *channels);
 
 #endif
-- 
1.5.6.5




More information about the Telepathy-commits mailing list