empathy r1632 - trunk/src
- From: xclaesse svn gnome org
- To: svn-commits-list gnome org
- Subject: empathy r1632 - trunk/src
- Date: Fri, 17 Oct 2008 12:47:55 +0000 (UTC)
Author: xclaesse
Date: Fri Oct 17 12:47:55 2008
New Revision: 1632
URL: http://svn.gnome.org/viewvc/empathy?rev=1632&view=rev
Log:
Removed call to mc_accounts_filter and wrote another function to loop through the accounts. (Jonny Lamb)
Signed-off-by: Jonny Lamb <jonny lamb collabora co uk>
Modified:
trunk/src/empathy-import-dialog.c
Modified: trunk/src/empathy-import-dialog.c
==============================================================================
--- trunk/src/empathy-import-dialog.c (original)
+++ trunk/src/empathy-import-dialog.c Fri Oct 17 12:47:55 2008
@@ -487,24 +487,30 @@
}
static gboolean
-import_dialog_filter_mc_accounts (McAccount *account,
- gpointer user_data)
+import_dialog_account_id_in_list (GList *accounts,
+ const gchar *account_id)
{
- gchar *value;
- const gchar *username;
- gboolean result;
+ GList *l;
- username = (const gchar *) user_data;
+ for (l = accounts; l; l = l->next)
+ {
+ McAccount *account = l->data;
+ gchar *value;
+ gboolean result;
+
+ if (mc_account_get_param_string (account, "account", &value)
+ == MC_ACCOUNT_SETTING_ABSENT)
+ continue;
- if (mc_account_get_param_string (account, "account", &value)
- == MC_ACCOUNT_SETTING_ABSENT)
- return FALSE;
+ result = tp_strdiff (value, account_id);
- result = tp_strdiff (value, username);
+ g_free (value);
- g_free (value);
+ if (!result)
+ return TRUE;
+ }
- return !result;
+ return FALSE;
}
static void
@@ -521,7 +527,7 @@
GValue *value, *account_data;
AccountData *data = (AccountData *) account->data;
gboolean import;
- GList *accounts, *all_accounts;
+ GList *accounts;
McProfile *profile;
account_data = tp_g_value_slice_new (G_TYPE_POINTER);
@@ -533,18 +539,13 @@
* accounts in MC. */
profile = mc_profile_lookup (data->protocol);
- all_accounts = profile ? mc_accounts_list_by_profile (profile) :
+ accounts = profile ? mc_accounts_list_by_profile (profile) :
mc_accounts_list ();
- /* Filter the list of all relevant accounts to remove ones which are NOT
- * the same as the one we're now adding. */
- accounts = mc_accounts_filter (all_accounts,
- import_dialog_filter_mc_accounts,
- (gpointer) g_value_get_string (value));
-
- /* Make the checkbox ticked if there is *no* account already with the
- * relevant details. */
- import = accounts == NULL;
+ /* Only set the "Import" cell to be active if there isn't already an
+ * account set up with the same account id. */
+ import = !import_dialog_account_id_in_list (accounts,
+ g_value_get_string (value));
mc_accounts_list_free (accounts);
g_object_unref (profile);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]