diff options
author | Vivek Dasmohapatra <vivek@collabora.co.uk> | 2010-09-13 21:05:39 +0100 |
---|---|---|
committer | Vivek Dasmohapatra <vivek@collabora.co.uk> | 2010-09-13 21:50:30 +0100 |
commit | 3fd92771734ad5ad3820972e6dcb36c0d9c13c7b (patch) | |
tree | 0ed2b79ab48798526b697345a74bf16047d22028 | |
parent | efe36be000112b7d72b216e0946bec9fde6c5ff1 (diff) | |
download | telepathy-mission-control-3fd92771734ad5ad3820972e6dcb36c0d9c13c7b.tar.gz |
Delete account method updated to use new McdStorage interface
-rw-r--r-- | src/mcd-account.c | 55 |
1 files changed, 10 insertions, 45 deletions
diff --git a/src/mcd-account.c b/src/mcd-account.c index 01ec7971..ac340617 100644 --- a/src/mcd-account.c +++ b/src/mcd-account.c @@ -547,55 +547,26 @@ typedef struct } AccountDeleteData; static void -_mcd_account_delete_write_conf_cb (McdAccountManager *account_manager, - const GError *error, - gpointer user_data) -{ - AccountDeleteData *data = (AccountDeleteData *) user_data; - - if (data->callback != NULL) - data->callback (data->account, error, data->user_data); - - g_slice_free (AccountDeleteData, data); -} - -static void _mcd_account_delete (McdAccount *account, McdAccountDeleteCb callback, gpointer user_data) { McdAccountPrivate *priv = account->priv; gchar *data_dir_str; - GError *kf_error = NULL; - AccountDeleteData *delete_data; + GError *error = NULL; + const gchar *name = mcd_account_get_unique_name (account); /* got to turn the account off before removing it, otherwise we can * * end up with an orphaned CM holding the account online */ - if (!_mcd_account_set_enabled (account, FALSE, FALSE, &kf_error)) + if (!_mcd_account_set_enabled (account, FALSE, FALSE, &error)) { - g_warning ("could not disable account (%s)", kf_error->message); - callback (account, kf_error, user_data); - g_error_free (kf_error); + g_warning ("could not disable account %s (%s)", name, error->message); + callback (account, error, user_data); + g_error_free (error); return; } - if (!g_key_file_remove_group (priv->keyfile, priv->unique_name, - &kf_error)) - { - if (kf_error->domain == G_KEY_FILE_ERROR && - kf_error->code == G_KEY_FILE_ERROR_GROUP_NOT_FOUND) - { - DEBUG ("account not found in key file, doing nothing"); - g_clear_error (&kf_error); - } - else - { - g_warning ("Could not remove group (%s)", kf_error->message); - callback (account, kf_error, user_data); - g_error_free (kf_error); - return; - } - } + mcd_storage_delete_account (priv->storage, name); data_dir_str = get_account_data_path (priv); @@ -622,15 +593,9 @@ _mcd_account_delete (McdAccount *account, g_free (data_dir_str); } - delete_data = g_slice_new0 (AccountDeleteData); - delete_data->account = account; - delete_data->callback = callback; - delete_data->user_data = user_data; - - mcd_account_manager_write_conf_async (priv->account_manager, - account, - _mcd_account_delete_write_conf_cb, - delete_data); + mcd_storage_commit (priv->storage, name); + if (callback != NULL) + callback (account, NULL, user_data); } static void |