diff options
-rw-r--r-- | src/mcd-account-manager.c | 21 | ||||
-rw-r--r-- | src/mcd-account-priv.h | 1 | ||||
-rw-r--r-- | src/mcd-account.c | 6 |
3 files changed, 27 insertions, 1 deletions
diff --git a/src/mcd-account-manager.c b/src/mcd-account-manager.c index 69725414..b21f0289 100644 --- a/src/mcd-account-manager.c +++ b/src/mcd-account-manager.c @@ -4,7 +4,7 @@ * This file is part of mission-control * * Copyright © 2007-2011 Nokia Corporation. - * Copyright © 2009-2011 Collabora Ltd. + * Copyright © 2009-2012 Collabora Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -1212,6 +1212,8 @@ migrate_butterfly_haze_ready (McdManager *manager, GValue v = {0,}; GHashTable *parameters, *properties; gchar *str; + GPtrArray *supersedes; + GPtrArray *old_supersedes; if (error != NULL) { @@ -1246,6 +1248,23 @@ migrate_butterfly_haze_ready (McdManager *manager, if (str != NULL) tp_asv_take_string (properties, TP_PROP_ACCOUNT_NICKNAME, str); + supersedes = g_ptr_array_new (); + old_supersedes = _mcd_account_get_supersedes (ctx->account); + + if (old_supersedes != NULL) + { + guint i; + + for (i = 0; i < old_supersedes->len; i++) + g_ptr_array_add (supersedes, + g_strdup (g_ptr_array_index (old_supersedes, i))); + } + + g_ptr_array_add (supersedes, + g_strdup (mcd_account_get_object_path (ctx->account))); + tp_asv_take_boxed (properties, TP_PROP_ACCOUNT_SUPERSEDES, + TP_ARRAY_TYPE_OBJECT_PATH_LIST, supersedes); + /* Set the service while we're on it */ tp_asv_set_string (properties, TP_PROP_ACCOUNT_SERVICE, "windows-live"); diff --git a/src/mcd-account-priv.h b/src/mcd-account-priv.h index 9097ed5c..624227a6 100644 --- a/src/mcd-account-priv.h +++ b/src/mcd-account-priv.h @@ -87,6 +87,7 @@ G_GNUC_INTERNAL void _mcd_account_set_alias (McdAccount *account, const gchar *alias); G_GNUC_INTERNAL gchar *_mcd_account_get_avatar_filename (McdAccount *account); +G_GNUC_INTERNAL GPtrArray *_mcd_account_get_supersedes (McdAccount *self); G_GNUC_INTERNAL void _mcd_account_tp_connection_changed (McdAccount *account, TpConnection *tp_conn); diff --git a/src/mcd-account.c b/src/mcd-account.c index fd8cfcfc..115bf920 100644 --- a/src/mcd-account.c +++ b/src/mcd-account.c @@ -3731,6 +3731,12 @@ _mcd_account_get_avatar (McdAccount *account, GArray **avatar, g_free (filename); } +GPtrArray * +_mcd_account_get_supersedes (McdAccount *self) +{ + return self->priv->supersedes; +} + static void mcd_account_connection_self_nickname_changed_cb (McdAccount *account, const gchar *alias, |