Mercurial > pidgin
annotate plugins/gevolution/eds-utils.c @ 11249:b4b1be482b4e
[gaim-migrate @ 13418]
sf patch #1235519, from Sadrul Habib Chowdhury
This is a pretty big patch that makes Gaim correctly save and restore
the current status (away/available, away message, available message,
invisible, etc).
The GaimGtkStatusBoxWidget thing I think defaults to "Available"
every time its created, which overrides the setting that was saved
to the XML file. So that still needs to be fixed before this will
really work.
Anyway, mad props to Sadrul for putting up with my requests on this patch
committer: Tailor Script <tailor@pidgin.im>
| author | Mark Doliner <mark@kingant.net> |
|---|---|
| date | Sat, 13 Aug 2005 05:22:09 +0000 |
| parents | 5a8bc4b1f5b6 |
| children | 8d7c99f20e4c |
| rev | line source |
|---|---|
| 10083 | 1 /* |
| 2 * Evolution integration plugin for Gaim | |
| 3 * | |
| 4 * Copyright (C) 2004 Henry Jen. | |
| 5 * | |
| 6 * This program is free software; you can redistribute it and/or | |
| 7 * modify it under the terms of the GNU General Public License as | |
| 8 * published by the Free Software Foundation; either version 2 of the | |
| 9 * License, or (at your option) any later version. | |
| 10 * | |
| 11 * This program is distributed in the hope that it will be useful, but | |
| 12 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 14 * General Public License for more details. | |
| 15 * | |
| 16 * You should have received a copy of the GNU General Public License | |
| 17 * along with this program; if not, write to the Free Software | |
| 18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
| 19 * 02111-1307, USA. | |
| 20 */ | |
| 21 | |
| 22 #include "internal.h" | |
| 23 #include "gtkblist.h" | |
| 24 #include "gtkgaim.h" | |
| 25 #include "gtkutils.h" | |
| 26 #include "gtkimhtml.h" | |
|
10313
455c0830d108
[gaim-migrate @ 11511]
Luke Schierer <lschiere@pidgin.im>
parents:
10083
diff
changeset
|
27 #include "gtkgaim-disclosure.h" |
| 10083 | 28 |
| 29 #include "debug.h" | |
| 30 #include "gevolution.h" | |
| 31 | |
| 32 GtkTreeModel * | |
| 33 gevo_addrbooks_model_new() | |
| 34 { | |
| 35 return GTK_TREE_MODEL(gtk_list_store_new(NUM_ADDRBOOK_COLUMNS, | |
| 36 G_TYPE_STRING, G_TYPE_STRING)); | |
| 37 } | |
| 38 | |
| 39 void | |
| 40 gevo_addrbooks_model_unref(GtkTreeModel *model) | |
| 41 { | |
| 42 GtkTreeIter iter; | |
| 43 | |
| 44 g_return_if_fail(model != NULL); | |
| 45 g_return_if_fail(GTK_IS_LIST_STORE(model)); | |
| 46 | |
| 47 if (!gtk_tree_model_get_iter_first(model, &iter)) | |
| 48 return; | |
| 49 | |
| 50 g_object_unref(model); | |
| 51 } | |
| 52 | |
| 53 void | |
| 54 gevo_addrbooks_model_populate(GtkTreeModel *model) | |
| 55 { | |
| 56 ESourceList *addressbooks; | |
| 57 GError *err; | |
| 58 GSList *groups, *g; | |
| 59 GtkTreeIter iter; | |
| 60 GtkListStore *list; | |
| 61 | |
| 62 g_return_if_fail(model != NULL); | |
| 63 g_return_if_fail(GTK_IS_LIST_STORE(model)); | |
| 64 | |
| 65 list = GTK_LIST_STORE(model); | |
| 66 | |
| 67 if (!e_book_get_addressbooks(&addressbooks, &err)) | |
| 68 { | |
| 69 gaim_debug_error("evolution", | |
| 70 "Unable to fetch list of address books.\n"); | |
| 71 | |
| 72 gtk_list_store_append(list, &iter); | |
| 73 gtk_list_store_set(list, &iter, | |
| 74 ADDRBOOK_COLUMN_NAME, _("None"), | |
| 75 ADDRBOOK_COLUMN_URI, NULL, | |
| 76 -1); | |
| 77 | |
| 78 return; | |
| 79 } | |
| 80 | |
| 81 groups = e_source_list_peek_groups(addressbooks); | |
| 82 | |
| 83 if (groups == NULL) | |
| 84 { | |
| 85 gtk_list_store_append(list, &iter); | |
| 86 gtk_list_store_set(list, &iter, | |
| 87 ADDRBOOK_COLUMN_NAME, _("None"), | |
| 88 ADDRBOOK_COLUMN_URI, NULL, | |
| 89 -1); | |
| 90 | |
| 91 return; | |
| 92 } | |
| 93 | |
| 94 for (g = groups; g != NULL; g = g->next) | |
| 95 { | |
| 96 GSList *sources, *s; | |
| 97 | |
| 98 sources = e_source_group_peek_sources(g->data); | |
| 99 | |
| 100 for (s = sources; s != NULL; s = s->next) | |
| 101 { | |
| 102 ESource *source = E_SOURCE(s->data); | |
| 103 | |
| 104 g_object_ref(source); | |
| 105 | |
| 106 gtk_list_store_append(list, &iter); | |
| 107 gtk_list_store_set(list, &iter, | |
| 108 ADDRBOOK_COLUMN_NAME, e_source_peek_name(source), | |
| 109 ADDRBOOK_COLUMN_URI, e_source_get_uri(source), | |
| 110 -1); | |
| 111 } | |
| 112 } | |
| 113 | |
| 114 g_object_unref(addressbooks); | |
| 115 } | |
|
11117
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
116 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
117 EContact * |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
118 gevo_run_query_in_uri(const gchar *uri, EBookQuery *query) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
119 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
120 EBook *book; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
121 gboolean status; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
122 GList *cards; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
123 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
124 if (!gevo_load_addressbook(uri, &book, NULL)) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
125 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
126 gaim_debug_error("evolution", |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
127 "Error retrieving addressbook\n"); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
128 return NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
129 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
130 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
131 status = e_book_get_contacts(book, query, &cards, NULL); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
132 if (!status) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
133 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
134 gaim_debug_error("evolution", "Error %d in getting card list\n", |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
135 status); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
136 g_object_unref(book); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
137 return NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
138 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
139 g_object_unref(book); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
140 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
141 if (cards != NULL) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
142 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
143 EContact *contact = E_CONTACT(cards->data); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
144 GList *cards2 = cards->next; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
145 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
146 if (cards2 != NULL) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
147 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
148 /* Break off the first contact and free the rest. */ |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
149 cards->next = NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
150 cards2->prev = NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
151 g_list_foreach(cards2, (GFunc)g_object_unref, NULL); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
152 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
153 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
154 /* Free the whole list. */ |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
155 g_list_free(cards); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
156 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
157 return contact; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
158 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
159 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
160 return NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
161 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
162 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
163 /* |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
164 * Search for a buddy in the Evolution contacts. |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
165 * |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
166 * @param buddy The buddy to search for. |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
167 * @param query An optional query. This function takes ownership of @a query, |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
168 * so callers must e_book_query_ref() it in advance (to obtain a |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
169 * second reference) if they want to reuse @a query. |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
170 */ |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
171 EContact * |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
172 gevo_search_buddy_in_contacts(GaimBuddy *buddy, EBookQuery *query) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
173 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
174 ESourceList *addressbooks; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
175 GError *err; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
176 EBookQuery *full_query; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
177 GSList *groups, *g; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
178 EContact *result; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
179 EContactField protocol_field = gevo_prpl_get_field(buddy->account, buddy); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
180 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
181 if (protocol_field == 0) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
182 return NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
183 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
184 if (query != NULL) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
185 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
186 EBookQuery *queries[2]; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
187 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
188 queries[0] = query; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
189 queries[1] = e_book_query_field_test(protocol_field, E_BOOK_QUERY_IS, buddy->name); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
190 if (queries[1] == NULL) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
191 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
192 gaim_debug_error("evolution", "Error in creating protocol query\n"); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
193 e_book_query_unref(query); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
194 return NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
195 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
196 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
197 full_query = e_book_query_and(2, queries, TRUE); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
198 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
199 else |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
200 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
201 full_query = e_book_query_field_test(protocol_field, E_BOOK_QUERY_IS, buddy->name); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
202 if (full_query == NULL) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
203 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
204 gaim_debug_error("evolution", "Error in creating protocol query\n"); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
205 return NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
206 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
207 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
208 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
209 if (!e_book_get_addressbooks(&addressbooks, &err)) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
210 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
211 gaim_debug_error("evolution", |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
212 "Unable to fetch list of address books.\n"); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
213 e_book_query_unref(full_query); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
214 if (err != NULL) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
215 g_error_free(err); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
216 return NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
217 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
218 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
219 groups = e_source_list_peek_groups(addressbooks); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
220 if (groups == NULL) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
221 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
222 g_object_unref(addressbooks); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
223 e_book_query_unref(full_query); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
224 return NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
225 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
226 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
227 for (g = groups; g != NULL; g = g->next) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
228 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
229 GSList *sources, *s; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
230 sources = e_source_group_peek_sources(g->data); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
231 for (s = sources; s != NULL; s = s->next) |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
232 { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
233 result = gevo_run_query_in_uri(e_source_get_uri(E_SOURCE(s->data)), full_query); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
234 if (result != NULL) { |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
235 g_object_unref(addressbooks); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
236 e_book_query_unref(full_query); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
237 return result; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
238 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
239 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
240 } |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
241 |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
242 g_object_unref(addressbooks); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
243 e_book_query_unref(full_query); |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
244 return NULL; |
|
5a8bc4b1f5b6
[gaim-migrate @ 13173]
Richard Laager <rlaager@wiktel.com>
parents:
10313
diff
changeset
|
245 } |
