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;