Sun, 28 Oct 2007 18:13:50 +0000
Track the actual visibility for the buddy list (unobscured, partially and
fully obscured). This maintains the behavior from the previous commit
(raising partially obscured buddy list instead of hiding), but also
maintains refreshing of the buddy list when partially obscured which the
previous commit broke.
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
1 | /* |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
2 | * Evolution integration plugin for Purple |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
3 | * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
4 | * Copyright (C) 2003 Christian Hammond. |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
5 | * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
6 | * This program is free software; you can redistribute it and/or |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
7 | * modify it under the terms of the GNU General Public License as |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
8 | * published by the Free Software Foundation; either version 2 of the |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
9 | * License, or (at your option) any later version. |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
10 | * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
11 | * This program is distributed in the hope that it will be useful, but |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
14 | * General Public License for more details. |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
15 | * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
16 | * You should have received a copy of the GNU General Public License |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
17 | * along with this program; if not, write to the Free Software |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
19 | * 02111-1301, USA. |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
20 | */ |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
21 | #include "internal.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
22 | #include "gtkblist.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
23 | #include "pidgin.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
24 | #include "gtkutils.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
25 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
26 | #include "gevolution.h" |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
27 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
28 | void |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
29 | gevo_add_buddy(PurpleAccount *account, const char *group_name, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
30 | const char *screenname, const char *alias) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
31 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
32 | PurpleConversation *conv = NULL; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
33 | PurpleBuddy *buddy; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
34 | PurpleGroup *group; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
35 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
36 | conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, screenname, account); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
37 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
38 | if ((group = purple_find_group(group_name)) == NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
39 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
40 | group = purple_group_new(group_name); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
41 | purple_blist_add_group(group, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
42 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
43 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
44 | buddy = purple_buddy_new(account, screenname, alias); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
45 | purple_blist_add_buddy(buddy, NULL, group, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
46 | purple_account_add_buddy(account, buddy); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
47 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
48 | if (conv != NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
49 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
50 | purple_buddy_icon_update(purple_conv_im_get_icon(PURPLE_CONV_IM(conv))); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
51 | purple_conversation_update(conv, PURPLE_CONV_UPDATE_ADD); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
52 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
53 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
54 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
55 | GList * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
56 | gevo_get_groups(void) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
57 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
58 | static GList *list = NULL; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
59 | PurpleGroup *g; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
60 | PurpleBlistNode *gnode; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
61 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
62 | g_list_free(list); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
63 | list = NULL; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
64 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
65 | if (purple_get_blist()->root == NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
66 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
67 | list = g_list_append(list, (gpointer)_("Buddies")); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
68 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
69 | else |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
70 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
71 | for (gnode = purple_get_blist()->root; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
72 | gnode != NULL; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
73 | gnode = gnode->next) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
74 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
75 | if (PURPLE_BLIST_NODE_IS_GROUP(gnode)) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
76 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
77 | g = (PurpleGroup *)gnode; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
78 | list = g_list_append(list, g->name); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
79 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
80 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
81 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
82 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
83 | return list; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
84 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
85 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
86 | EContactField |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
87 | gevo_prpl_get_field(PurpleAccount *account, PurpleBuddy *buddy) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
88 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
89 | EContactField protocol_field = 0; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
90 | const char *protocol_id; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
91 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
92 | g_return_val_if_fail(account != NULL, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
93 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
94 | protocol_id = purple_account_get_protocol_id(account); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
95 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
96 | if (!strcmp(protocol_id, "prpl-oscar")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
97 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
98 | PurpleConnection *gc; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
99 | PurplePluginProtocolInfo *prpl_info; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
100 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
101 | gc = purple_account_get_connection(account); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
102 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
103 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
104 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
105 | if (!strcmp("aim", prpl_info->list_icon(account, buddy))) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
106 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
107 | protocol_field = E_CONTACT_IM_AIM; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
108 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
109 | else |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
110 | protocol_field = E_CONTACT_IM_ICQ; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
111 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
112 | else if (!strcmp(protocol_id, "prpl-msn")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
113 | protocol_field = E_CONTACT_IM_MSN; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
114 | else if (!strcmp(protocol_id, "prpl-yahoo")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
115 | protocol_field = E_CONTACT_IM_YAHOO; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
116 | else if (!strcmp(protocol_id, "prpl-jabber")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
117 | protocol_field = E_CONTACT_IM_JABBER; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
118 | else if (!strcmp(protocol_id, "prpl-novell")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
119 | protocol_field = E_CONTACT_IM_GROUPWISE; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
120 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
121 | return protocol_field; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
122 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
123 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
124 | gboolean |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
125 | gevo_prpl_is_supported(PurpleAccount *account, PurpleBuddy *buddy) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
126 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
127 | return (gevo_prpl_get_field(account, buddy) != 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
128 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
129 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
130 | gboolean |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
131 | gevo_load_addressbook(const gchar* uri, EBook **book, GError **error) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
132 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
133 | gboolean result = FALSE; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
134 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
135 | g_return_val_if_fail(book != NULL, FALSE); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
136 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
137 | if (uri == NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
138 | *book = e_book_new_system_addressbook(NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
139 | else |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
140 | *book = e_book_new_from_uri(uri, error); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
141 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
142 | result = e_book_open(*book, FALSE, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
143 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
144 | if (!result && *book != NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
145 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
146 | g_object_unref(*book); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
147 | *book = NULL; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
148 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
149 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
150 | return result; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
151 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
152 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
153 | char * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
154 | gevo_get_email_for_buddy(PurpleBuddy *buddy) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
155 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
156 | EContact *contact; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
157 | char *mail = NULL; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
158 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
159 | contact = gevo_search_buddy_in_contacts(buddy, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
160 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
161 | if (contact != NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
162 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
163 | mail = g_strdup(e_contact_get(contact, E_CONTACT_EMAIL_1)); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
164 | g_object_unref(contact); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
165 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
166 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
167 | if (mail == NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
168 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
169 | PurpleAccount *account = purple_buddy_get_account(buddy); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
170 | const char *prpl_id = purple_account_get_protocol_id(account); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
171 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
172 | if (!strcmp(prpl_id, "prpl-msn")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
173 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
174 | mail = g_strdup(purple_normalize(account, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
175 | purple_buddy_get_name(buddy))); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
176 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
177 | else if (!strcmp(prpl_id, "prpl-yahoo")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
178 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
179 | mail = g_strdup_printf("%s@yahoo.com", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
180 | purple_normalize(account, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
181 | purple_buddy_get_name(buddy))); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
182 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
183 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
184 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
185 | return mail; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
186 | } |