Wed, 21 Sep 2011 06:45:26 +0000
Apply conversation theme when opening the GTK conversation. All the
parsing stuff was moved out of the theme code and into the conversation
code.
Someone (not me!) needs to check the code I commented out and see if
we really need that stuff (and then port it to WebKit/styling).
We also need to determine where to place Template.html and the rest
of our (not-yet-written) default theme.
|
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, |
|
25889
26d9ca30335c
Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents:
22602
diff
changeset
|
30 | const char *buddy_name, const char *alias) |
|
20400
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 | |
|
25889
26d9ca30335c
Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents:
22602
diff
changeset
|
36 | conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, buddy_name, account); |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
37 | |
|
28391
bde9215d656e
Fix what looks like an incorrect merge that caused gevolution's add buddy dialog
Paul Aurich <darkrain42@pidgin.im>
parents:
27706
diff
changeset
|
38 | group = purple_find_group(group_name); |
|
bde9215d656e
Fix what looks like an incorrect merge that caused gevolution's add buddy dialog
Paul Aurich <darkrain42@pidgin.im>
parents:
27706
diff
changeset
|
39 | if (group == NULL) |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
40 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
41 | group = purple_group_new(group_name); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
42 | purple_blist_add_group(group, NULL); |
|
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 | |
|
28391
bde9215d656e
Fix what looks like an incorrect merge that caused gevolution's add buddy dialog
Paul Aurich <darkrain42@pidgin.im>
parents:
27706
diff
changeset
|
45 | buddy = purple_find_buddy_in_group(account, buddy_name, group); |
|
bde9215d656e
Fix what looks like an incorrect merge that caused gevolution's add buddy dialog
Paul Aurich <darkrain42@pidgin.im>
parents:
27706
diff
changeset
|
46 | if (buddy == NULL) |
|
bde9215d656e
Fix what looks like an incorrect merge that caused gevolution's add buddy dialog
Paul Aurich <darkrain42@pidgin.im>
parents:
27706
diff
changeset
|
47 | { |
|
26091
83f52ce0929f
propagate from branch 'im.pidgin.pidgin' (head b4bbfacd7f2050d87deeda12ea7bb3adc3608cb7)
Paul Aurich <darkrain42@pidgin.im>
diff
changeset
|
48 | buddy = purple_buddy_new(account, buddy_name, alias); |
|
24867
69105eeaf010
The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents:
22602
diff
changeset
|
49 | purple_blist_add_buddy(buddy, NULL, group, NULL); |
|
69105eeaf010
The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents:
22602
diff
changeset
|
50 | } |
|
69105eeaf010
The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents:
22602
diff
changeset
|
51 | |
|
32550
717457d52473
Fix compilation of the gevolution plugin. Need to pass an invite message
Mark Doliner <markdoliner@pidgin.im>
parents:
30710
diff
changeset
|
52 | purple_account_add_buddy(account, buddy, NULL); |
|
20400
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 | if (conv != NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
55 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
56 | 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
|
57 | purple_conversation_update(conv, PURPLE_CONV_UPDATE_ADD); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
58 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
59 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
60 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
61 | GList * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
62 | gevo_get_groups(void) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
63 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
64 | static GList *list = NULL; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
65 | PurpleGroup *g; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
66 | PurpleBlistNode *gnode; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
67 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
68 | g_list_free(list); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
69 | list = NULL; |
|
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 | if (purple_get_blist()->root == NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
72 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
73 | list = g_list_append(list, (gpointer)_("Buddies")); |
|
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 | else |
|
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 | for (gnode = purple_get_blist()->root; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
78 | gnode != NULL; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
79 | gnode = gnode->next) |
|
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 | if (PURPLE_BLIST_NODE_IS_GROUP(gnode)) |
|
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 | g = (PurpleGroup *)gnode; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
84 | list = g_list_append(list, g->name); |
|
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 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
87 | } |
|
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 | return list; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
90 | } |
|
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 | EContactField |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
93 | gevo_prpl_get_field(PurpleAccount *account, PurpleBuddy *buddy) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
94 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
95 | EContactField protocol_field = 0; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
96 | const char *protocol_id; |
|
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 | g_return_val_if_fail(account != NULL, 0); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
99 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
100 | protocol_id = purple_account_get_protocol_id(account); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
101 | |
|
29935
d28b5dcc7554
Remove a bunch of old references to prpl-oscar
Mark Doliner <markdoliner@pidgin.im>
parents:
28391
diff
changeset
|
102 | if (!strcmp(protocol_id, "prpl-aim")) |
|
22602
68b71eecdaaf
Update gevolution plugin with support for the new protocol ids for AIM &
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20644
diff
changeset
|
103 | 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
|
104 | 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
|
105 | protocol_field = E_CONTACT_IM_ICQ; |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
106 | else if (!strcmp(protocol_id, "prpl-msn")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
107 | protocol_field = E_CONTACT_IM_MSN; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
108 | else if (!strcmp(protocol_id, "prpl-yahoo")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
109 | protocol_field = E_CONTACT_IM_YAHOO; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
110 | else if (!strcmp(protocol_id, "prpl-jabber")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
111 | protocol_field = E_CONTACT_IM_JABBER; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
112 | else if (!strcmp(protocol_id, "prpl-novell")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
113 | protocol_field = E_CONTACT_IM_GROUPWISE; |
|
30710
b3c55bf4a7c6
Add GG support to gevolution.
Etan Reisner <deryni@pidgin.im>
parents:
29935
diff
changeset
|
114 | else if (!strcmp(protocol_id, "prpl-gg")) |
|
b3c55bf4a7c6
Add GG support to gevolution.
Etan Reisner <deryni@pidgin.im>
parents:
29935
diff
changeset
|
115 | protocol_field = E_CONTACT_IM_GADUGADU; |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
116 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
117 | return protocol_field; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
118 | } |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
119 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
120 | gboolean |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
121 | gevo_prpl_is_supported(PurpleAccount *account, PurpleBuddy *buddy) |
|
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 | return (gevo_prpl_get_field(account, buddy) != 0); |
|
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 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
126 | gboolean |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
127 | gevo_load_addressbook(const gchar* uri, EBook **book, GError **error) |
|
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 | gboolean result = FALSE; |
|
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 | g_return_val_if_fail(book != NULL, FALSE); |
|
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 | if (uri == NULL) |
|
27706
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
26092
diff
changeset
|
134 | *book = e_book_new_system_addressbook(error); |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
135 | else |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
136 | *book = e_book_new_from_uri(uri, error); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
137 | |
|
27706
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
26092
diff
changeset
|
138 | if (*book == NULL) |
|
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
26092
diff
changeset
|
139 | return FALSE; |
|
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
26092
diff
changeset
|
140 | |
|
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
26092
diff
changeset
|
141 | *error = NULL; |
|
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
26092
diff
changeset
|
142 | |
|
ae1893256821
Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
26092
diff
changeset
|
143 | result = e_book_open(*book, FALSE, error); |
|
20400
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
144 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
145 | if (!result && *book != NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
146 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
147 | g_object_unref(*book); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
148 | *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 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
151 | return result; |
|
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 | char * |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
155 | gevo_get_email_for_buddy(PurpleBuddy *buddy) |
|
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 | EContact *contact; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
158 | char *mail = NULL; |
|
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 | contact = gevo_search_buddy_in_contacts(buddy, NULL); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
161 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
162 | if (contact != NULL) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
163 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
164 | mail = g_strdup(e_contact_get(contact, E_CONTACT_EMAIL_1)); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
165 | g_object_unref(contact); |
|
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 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
168 | if (mail == NULL) |
|
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 | PurpleAccount *account = purple_buddy_get_account(buddy); |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
171 | const char *prpl_id = purple_account_get_protocol_id(account); |
|
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 | if (!strcmp(prpl_id, "prpl-msn")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
174 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
175 | mail = g_strdup(purple_normalize(account, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
176 | purple_buddy_get_name(buddy))); |
|
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 | else if (!strcmp(prpl_id, "prpl-yahoo")) |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
179 | { |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
180 | mail = g_strdup_printf("%s@yahoo.com", |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
181 | purple_normalize(account, |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
182 | purple_buddy_get_name(buddy))); |
|
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 | |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
186 | return mail; |
|
f7a9cc27b997
disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff
changeset
|
187 | } |