2 * Copyright (C) 2009 Collabora Ltd.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 * Authors: Jonny Lamb <jonny.lamb@collabora.co.uk>
19 * Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
22 #include <telepathy-glib/util.h>
24 #include <libempathy/empathy-connection-managers.h>
25 #include <libempathy/empathy-utils.h>
27 #include "empathy-import-utils.h"
28 #include "empathy-import-pidgin.h"
30 EmpathyImportAccountData
*
31 empathy_import_account_data_new (const gchar
*source
)
33 EmpathyImportAccountData
*data
;
35 g_return_val_if_fail (!EMP_STR_EMPTY (source
), NULL
);
37 data
= g_slice_new0 (EmpathyImportAccountData
);
38 data
->settings
= g_hash_table_new_full (g_str_hash
, g_str_equal
, NULL
,
39 (GDestroyNotify
) tp_g_value_slice_free
);
40 data
->source
= g_strdup (source
);
41 data
->protocol
= NULL
;
42 data
->connection_manager
= NULL
;
48 empathy_import_account_data_free (EmpathyImportAccountData
*data
)
52 if (data
->protocol
!= NULL
)
53 g_free (data
->protocol
);
54 if (data
->connection_manager
!= NULL
)
55 g_free (data
->connection_manager
);
56 if (data
->settings
!= NULL
)
57 g_hash_table_destroy (data
->settings
);
58 if (data
->source
!= NULL
)
59 g_free (data
->source
);
61 g_slice_free (EmpathyImportAccountData
, data
);
65 empathy_import_accounts_to_import (void)
67 return empathy_import_pidgin_accounts_to_import ();
71 empathy_import_accounts_load (EmpathyImportApplication id
)
73 if (id
== EMPATHY_IMPORT_APPLICATION_PIDGIN
)
74 return empathy_import_pidgin_load ();
76 return empathy_import_pidgin_load ();
80 empathy_import_protocol_is_supported (const gchar
*protocol
,
81 TpConnectionManager
**cm
)
83 EmpathyConnectionManagers
*manager
;
86 gboolean proto_is_supported
= FALSE
;
88 manager
= empathy_connection_managers_dup_singleton ();
89 cms
= empathy_connection_managers_get_cms (manager
);
91 for (l
= cms
; l
; l
= l
->next
)
94 TpConnectionManager
*tp_cm
= l
->data
;
95 if (tp_connection_manager_has_protocol (tp_cm
,
96 (const gchar
*) protocol
))
98 if (!proto_is_supported
)
101 proto_is_supported
= TRUE
;
106 /* we have more than one CM for this protocol,
107 * select the one which is not haze.
109 if (!tp_strdiff ((*cm
)->name
, "haze"))
117 g_object_unref (manager
);
119 return proto_is_supported
;