summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2012-08-28 16:50:12 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2012-09-07 14:29:06 +0100
commitf1a2718edbe6392e399e4498dc86249ef3f90fac (patch)
tree5815ddb82adcb954d41b54bcf1d74a21aa94fe1f
parent9ead40da113ae477439c322d605d9dc35d38e062 (diff)
downloadtelepathy-mission-control-f1a2718edbe6392e399e4498dc86249ef3f90fac.tar.gz
McdAccountManager: move initialization from init to constructed
This lets us use the construct properties, and in particular the TpDBusDaemon, which means we can make it a construct-time property on McdStorage. Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk> Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=54633
-rw-r--r--src/mcd-account-manager.c32
-rw-r--r--src/mcd-storage.c15
-rw-r--r--src/mcd-storage.h4
3 files changed, 16 insertions, 35 deletions
diff --git a/src/mcd-account-manager.c b/src/mcd-account-manager.c
index e0e23502..e7524066 100644
--- a/src/mcd-account-manager.c
+++ b/src/mcd-account-manager.c
@@ -1622,6 +1622,18 @@ static void
mcd_account_manager_init (McdAccountManager *account_manager)
{
McdAccountManagerPrivate *priv;
+
+ priv = G_TYPE_INSTANCE_GET_PRIVATE ((account_manager),
+ MCD_TYPE_ACCOUNT_MANAGER,
+ McdAccountManagerPrivate);
+ account_manager->priv = priv;
+}
+
+static void
+_mcd_account_manager_constructed (GObject *obj)
+{
+ McdAccountManager *account_manager = MCD_ACCOUNT_MANAGER (obj);
+ McdAccountManagerPrivate *priv = account_manager->priv;
guint i = 0;
static struct { const gchar *name; GCallback handler; } sig[] =
{ { "created", G_CALLBACK (created_cb) },
@@ -1634,12 +1646,7 @@ mcd_account_manager_init (McdAccountManager *account_manager)
DEBUG ("");
- priv = G_TYPE_INSTANCE_GET_PRIVATE ((account_manager),
- MCD_TYPE_ACCOUNT_MANAGER,
- McdAccountManagerPrivate);
- account_manager->priv = priv;
-
- priv->storage = mcd_storage_new ();
+ priv->storage = mcd_storage_new (priv->dbus_daemon);
priv->accounts = g_hash_table_new_full (g_str_hash, g_str_equal,
NULL, unref_account);
@@ -1662,19 +1669,6 @@ mcd_account_manager_init (McdAccountManager *account_manager)
mcd_dbus_init_interfaces_instances (account_manager);
}
-static void
-_mcd_account_manager_constructed (GObject *obj)
-{
- McdAccountManager *manager = MCD_ACCOUNT_MANAGER (obj);
- McdAccountManagerPrivate *priv = MCD_ACCOUNT_MANAGER_PRIV (manager);
-
- /* FIXME: I'm pretty sure we should just move most of the above code out of
- * _init() to here and then mcd_plugin_account_manager_new() could take the
- * TpDBusDaemon * as it should and everyone wins.
- */
- mcd_storage_set_dbus_daemon (priv->storage, priv->dbus_daemon);
-}
-
McdAccountManager *
mcd_account_manager_new (TpDBusDaemon *dbus_daemon)
{
diff --git a/src/mcd-storage.c b/src/mcd-storage.c
index e786eed6..814474c0 100644
--- a/src/mcd-storage.c
+++ b/src/mcd-storage.c
@@ -153,24 +153,13 @@ mcd_storage_class_init (McdStorageClass *cls)
}
McdStorage *
-mcd_storage_new ()
+mcd_storage_new (TpDBusDaemon *dbus_daemon)
{
return g_object_new (MCD_TYPE_STORAGE,
+ "dbus-daemon", dbus_daemon,
NULL);
}
-void
-mcd_storage_set_dbus_daemon (McdStorage *self,
- TpDBusDaemon *dbusd)
-{
- GValue value = { 0 };
-
- g_value_init (&value, G_TYPE_OBJECT);
- g_value_take_object (&value, dbusd);
-
- g_object_set_property (G_OBJECT (self), "dbus-daemon", &value);
-}
-
static gchar *
get_value (const McpAccountManager *ma,
const gchar *account,
diff --git a/src/mcd-storage.h b/src/mcd-storage.h
index 5a091559..c8c031b2 100644
--- a/src/mcd-storage.h
+++ b/src/mcd-storage.h
@@ -56,9 +56,7 @@ typedef struct _McdStoragePrivate McdStoragePrivate;
GType mcd_storage_get_type (void);
-McdStorage *mcd_storage_new (void);
-void mcd_storage_set_dbus_daemon (McdStorage *self,
- TpDBusDaemon *dbusd);
+McdStorage *mcd_storage_new (TpDBusDaemon *dbus_daemon);
void mcd_storage_ready (McdStorage *self);
void mcd_storage_connect_signal (const gchar *signal,
GCallback func,