Sun, 09 Nov 2008 20:55:10 +0000
Added menu items to buddy list context menu to start voice and video sessions
After discussing the matter with Maiku, we decided to have two choises.
"Audio call" which will show up if audio sessions is possible with a buddy and
the other item is either "Audio/Video" or "Video" depending on if the buddy
supports both at the same time or not
|
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 | } |
|
22602
68b71eecdaaf
Update gevolution plugin with support for the new protocol ids for AIM &
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20644
diff
changeset
|
112 | else if (!strcmp(protocol_id, "prpl-aim")) |
|
68b71eecdaaf
Update gevolution plugin with support for the new protocol ids for AIM &
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20644
diff
changeset
|
113 | protocol_field = E_CONTACT_IM_AIM; |
|
68b71eecdaaf
Update gevolution plugin with support for the new protocol ids for AIM &
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20644
diff
changeset
|
114 | else if (!strcmp(protocol_id, "prpl-icq")) |
|
68b71eecdaaf
Update gevolution plugin with support for the new protocol ids for AIM &
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20644
diff
changeset
|
115 | protocol_field = E_CONTACT_IM_ICQ; |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
116 | else if (!strcmp(protocol_id, "prpl-msn")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
117 | protocol_field = E_CONTACT_IM_MSN; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
118 | else if (!strcmp(protocol_id, "prpl-yahoo")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
119 | protocol_field = E_CONTACT_IM_YAHOO; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
120 | else if (!strcmp(protocol_id, "prpl-jabber")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
121 | protocol_field = E_CONTACT_IM_JABBER; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
122 | else if (!strcmp(protocol_id, "prpl-novell")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
123 | protocol_field = E_CONTACT_IM_GROUPWISE; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
124 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
125 | return protocol_field; |
|
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 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
128 | gboolean |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
129 | gevo_prpl_is_supported(PurpleAccount *account, PurpleBuddy *buddy) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
130 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
131 | return (gevo_prpl_get_field(account, buddy) != 0); |
|
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 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
134 | gboolean |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
135 | gevo_load_addressbook(const gchar* uri, EBook **book, GError **error) |
|
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 | gboolean result = FALSE; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
138 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
139 | g_return_val_if_fail(book != NULL, FALSE); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
140 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
141 | if (uri == NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
142 | *book = e_book_new_system_addressbook(NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
143 | else |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
144 | *book = e_book_new_from_uri(uri, error); |
|
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 | result = e_book_open(*book, FALSE, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
147 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
148 | if (!result && *book != NULL) |
|
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 | g_object_unref(*book); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
151 | *book = NULL; |
|
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 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
154 | return result; |
|
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 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
157 | char * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
158 | gevo_get_email_for_buddy(PurpleBuddy *buddy) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
159 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
160 | EContact *contact; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
161 | char *mail = 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 | contact = gevo_search_buddy_in_contacts(buddy, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
164 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
165 | if (contact != NULL) |
|
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 | mail = g_strdup(e_contact_get(contact, E_CONTACT_EMAIL_1)); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
168 | g_object_unref(contact); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
169 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
170 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
171 | if (mail == NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
172 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
173 | PurpleAccount *account = purple_buddy_get_account(buddy); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
174 | const char *prpl_id = purple_account_get_protocol_id(account); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
175 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
176 | if (!strcmp(prpl_id, "prpl-msn")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
177 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
178 | mail = g_strdup(purple_normalize(account, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
179 | purple_buddy_get_name(buddy))); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
180 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
181 | else if (!strcmp(prpl_id, "prpl-yahoo")) |
|
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 | mail = g_strdup_printf("%s@yahoo.com", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
184 | purple_normalize(account, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
185 | purple_buddy_get_name(buddy))); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
186 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
187 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
188 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
189 | return mail; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
190 | } |