Mercurial > pidgin.yaz
comparison libpurple/privacy.c @ 28035:14ce47859540
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Patch from Jan "HanzZ" Kaluza with some changes by me so that it's
easier to merge with Sulabh and Eric's SoC projects (mostly so grim
wouldn't yell at me). Anyway, any bugs introduced by me (darkrain42).
committer: Paul Aurich <paul@darkrain42.org>
author | hanzz@soc.pidgin.im |
---|---|
date | Mon, 27 Jul 2009 05:20:52 +0000 |
parents | 4b8c4870b13a |
children | f75041cb3fec |
comparison
equal
deleted
inserted
replaced
28034:2cb2da84663d | 28035:14ce47859540 |
---|---|
33 gboolean local_only) | 33 gboolean local_only) |
34 { | 34 { |
35 GSList *l; | 35 GSList *l; |
36 char *name; | 36 char *name; |
37 PurpleBuddy *buddy; | 37 PurpleBuddy *buddy; |
38 PurpleBlistUiOps *blist_ops; | |
38 | 39 |
39 g_return_val_if_fail(account != NULL, FALSE); | 40 g_return_val_if_fail(account != NULL, FALSE); |
40 g_return_val_if_fail(who != NULL, FALSE); | 41 g_return_val_if_fail(who != NULL, FALSE); |
41 | 42 |
42 name = g_strdup(purple_normalize(account, who)); | 43 name = g_strdup(purple_normalize(account, who)); |
60 serv_add_permit(purple_account_get_connection(account), who); | 61 serv_add_permit(purple_account_get_connection(account), who); |
61 | 62 |
62 if (privacy_ops != NULL && privacy_ops->permit_added != NULL) | 63 if (privacy_ops != NULL && privacy_ops->permit_added != NULL) |
63 privacy_ops->permit_added(account, who); | 64 privacy_ops->permit_added(account, who); |
64 | 65 |
65 purple_blist_schedule_save(); | 66 blist_ops = purple_blist_get_ui_ops(); |
67 if (blist_ops != NULL && blist_ops->save_account != NULL) | |
68 blist_ops->save_account(account); | |
66 | 69 |
67 /* This lets the UI know a buddy has had its privacy setting changed */ | 70 /* This lets the UI know a buddy has had its privacy setting changed */ |
68 buddy = purple_find_buddy(account, name); | 71 buddy = purple_find_buddy(account, name); |
69 if (buddy != NULL) { | 72 if (buddy != NULL) { |
70 purple_signal_emit(purple_blist_get_handle(), | 73 purple_signal_emit(purple_blist_get_handle(), |
79 { | 82 { |
80 GSList *l; | 83 GSList *l; |
81 const char *name; | 84 const char *name; |
82 PurpleBuddy *buddy; | 85 PurpleBuddy *buddy; |
83 char *del; | 86 char *del; |
87 PurpleBlistUiOps *blist_ops; | |
84 | 88 |
85 g_return_val_if_fail(account != NULL, FALSE); | 89 g_return_val_if_fail(account != NULL, FALSE); |
86 g_return_val_if_fail(who != NULL, FALSE); | 90 g_return_val_if_fail(who != NULL, FALSE); |
87 | 91 |
88 name = purple_normalize(account, who); | 92 name = purple_normalize(account, who); |
107 serv_rem_permit(purple_account_get_connection(account), who); | 111 serv_rem_permit(purple_account_get_connection(account), who); |
108 | 112 |
109 if (privacy_ops != NULL && privacy_ops->permit_removed != NULL) | 113 if (privacy_ops != NULL && privacy_ops->permit_removed != NULL) |
110 privacy_ops->permit_removed(account, who); | 114 privacy_ops->permit_removed(account, who); |
111 | 115 |
112 purple_blist_schedule_save(); | 116 blist_ops = purple_blist_get_ui_ops(); |
117 if (blist_ops != NULL && blist_ops->save_account != NULL) | |
118 blist_ops->save_account(account); | |
113 | 119 |
114 buddy = purple_find_buddy(account, name); | 120 buddy = purple_find_buddy(account, name); |
115 if (buddy != NULL) { | 121 if (buddy != NULL) { |
116 purple_signal_emit(purple_blist_get_handle(), | 122 purple_signal_emit(purple_blist_get_handle(), |
117 "buddy-privacy-changed", buddy); | 123 "buddy-privacy-changed", buddy); |
125 gboolean local_only) | 131 gboolean local_only) |
126 { | 132 { |
127 GSList *l; | 133 GSList *l; |
128 char *name; | 134 char *name; |
129 PurpleBuddy *buddy; | 135 PurpleBuddy *buddy; |
136 PurpleBlistUiOps *blist_ops; | |
130 | 137 |
131 g_return_val_if_fail(account != NULL, FALSE); | 138 g_return_val_if_fail(account != NULL, FALSE); |
132 g_return_val_if_fail(who != NULL, FALSE); | 139 g_return_val_if_fail(who != NULL, FALSE); |
133 | 140 |
134 name = g_strdup(purple_normalize(account, who)); | 141 name = g_strdup(purple_normalize(account, who)); |
152 serv_add_deny(purple_account_get_connection(account), who); | 159 serv_add_deny(purple_account_get_connection(account), who); |
153 | 160 |
154 if (privacy_ops != NULL && privacy_ops->deny_added != NULL) | 161 if (privacy_ops != NULL && privacy_ops->deny_added != NULL) |
155 privacy_ops->deny_added(account, who); | 162 privacy_ops->deny_added(account, who); |
156 | 163 |
157 purple_blist_schedule_save(); | 164 blist_ops = purple_blist_get_ui_ops(); |
165 if (blist_ops != NULL && blist_ops->save_account != NULL) | |
166 blist_ops->save_account(account); | |
158 | 167 |
159 buddy = purple_find_buddy(account, name); | 168 buddy = purple_find_buddy(account, name); |
160 if (buddy != NULL) { | 169 if (buddy != NULL) { |
161 purple_signal_emit(purple_blist_get_handle(), | 170 purple_signal_emit(purple_blist_get_handle(), |
162 "buddy-privacy-changed", buddy); | 171 "buddy-privacy-changed", buddy); |
170 { | 179 { |
171 GSList *l; | 180 GSList *l; |
172 const char *normalized; | 181 const char *normalized; |
173 char *name; | 182 char *name; |
174 PurpleBuddy *buddy; | 183 PurpleBuddy *buddy; |
184 PurpleBlistUiOps *blist_ops; | |
175 | 185 |
176 g_return_val_if_fail(account != NULL, FALSE); | 186 g_return_val_if_fail(account != NULL, FALSE); |
177 g_return_val_if_fail(who != NULL, FALSE); | 187 g_return_val_if_fail(who != NULL, FALSE); |
178 | 188 |
179 normalized = purple_normalize(account, who); | 189 normalized = purple_normalize(account, who); |
203 purple_signal_emit(purple_blist_get_handle(), | 213 purple_signal_emit(purple_blist_get_handle(), |
204 "buddy-privacy-changed", buddy); | 214 "buddy-privacy-changed", buddy); |
205 } | 215 } |
206 | 216 |
207 g_free(name); | 217 g_free(name); |
208 purple_blist_schedule_save(); | 218 |
219 blist_ops = purple_blist_get_ui_ops(); | |
220 if (blist_ops != NULL && blist_ops->save_account != NULL) | |
221 blist_ops->save_account(account); | |
209 | 222 |
210 return TRUE; | 223 return TRUE; |
211 } | 224 } |
212 | 225 |
213 /** | 226 /** |