summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2014-04-01 12:24:13 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2014-04-01 12:24:13 +0100
commit960a57beff44d380cd89dd014feb4d0f5b4611b7 (patch)
tree8b3aa50440223e00b0045c101cfad5f059c1ef58
parent965b7d36dd645ff88a402887ceac6f952fb12b3b (diff)
McdAccount: have a construct-only factory and demote dbus-daemon to readable
-rw-r--r--src/mcd-account.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/mcd-account.c b/src/mcd-account.c
index e6ee7662..2d28e0e3 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -106,6 +106,7 @@ struct _McdAccountPrivate
McdManager *manager;
McdStorage *storage;
+ TpClientFactory *factory;
TpDBusDaemon *dbus_daemon;
McdConnectivityMonitor *connectivity;
@@ -175,6 +176,7 @@ enum
PROP_STORAGE,
PROP_STORAGE_PLUGIN,
PROP_NAME,
+ PROP_FACTORY,
};
enum
@@ -3114,9 +3116,11 @@ set_property (GObject *obj, guint prop_id,
priv->storage_plugin = g_value_dup_object (val);
break;
- case PROP_DBUS_DAEMON:
- g_assert (priv->dbus_daemon == NULL);
- priv->dbus_daemon = g_value_dup_object (val);
+ case PROP_FACTORY:
+ g_assert (priv->factory == NULL);
+ priv->factory = g_value_dup_object (val);
+ priv->dbus_daemon = tp_client_factory_get_dbus_daemon (priv->factory);
+ g_object_ref (priv->dbus_daemon);
break;
case PROP_CONNECTIVITY_MONITOR:
@@ -3147,6 +3151,10 @@ get_property (GObject *obj, guint prop_id,
g_value_set_object (val, priv->dbus_daemon);
break;
+ case PROP_FACTORY:
+ g_value_set_object (val, priv->factory);
+ break;
+
case PROP_CONNECTIVITY_MONITOR:
g_value_set_object (val, priv->connectivity);
break;
@@ -3230,6 +3238,7 @@ _mcd_account_dispose (GObject *object)
tp_clear_object (&priv->storage_plugin);
tp_clear_object (&priv->storage);
tp_clear_object (&priv->dbus_daemon);
+ tp_clear_object (&priv->factory);
tp_clear_object (&priv->self_contact);
tp_clear_object (&priv->connectivity);
@@ -3352,10 +3361,16 @@ mcd_account_class_init (McdAccountClass * klass)
klass->check_request = _mcd_account_check_request_real;
g_object_class_install_property
+ (object_class, PROP_FACTORY,
+ g_param_spec_object ("factory", "Factory", "Client factory",
+ TP_TYPE_CLIENT_FACTORY,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
(object_class, PROP_DBUS_DAEMON,
g_param_spec_object ("dbus-daemon", "DBus daemon", "DBus daemon",
TP_TYPE_DBUS_DAEMON,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ G_PARAM_READABLE));
g_object_class_install_property
(object_class, PROP_CONNECTIVITY_MONITOR,
@@ -3461,8 +3476,7 @@ mcd_account_new (McdAccountManager *account_manager,
obj = g_object_new (MCD_TYPE_ACCOUNT,
"storage", storage,
"storage-plugin", storage_plugin,
- "dbus-daemon",
- tp_client_factory_get_dbus_daemon (factory),
+ "factory", factory,
"connectivity-monitor", connectivity,
"name", name,
NULL);