| 202 COLUMN_NAME, name, |
201 COLUMN_NAME, name, |
| 203 COLUMN_DATA, contact, |
202 COLUMN_DATA, contact, |
| 204 -1); |
203 -1); |
| 205 |
204 |
| 206 /* See if this user has the buddy in its list. */ |
205 /* See if this user has the buddy in its list. */ |
| 207 protocol_field = gevo_protocol_get_field(purple_buddy_get_account(dialog->buddy), |
206 protocol_field = gevo_protocol_get_field( |
| 208 dialog->buddy); |
207 purple_buddy_get_account(dialog->buddy), |
| |
208 dialog->buddy); |
| 209 |
209 |
| 210 if (protocol_field > 0) |
210 if (protocol_field > 0) |
| 211 { |
211 { |
| 212 GList *ims, *l; |
212 GList *ims, *l; |
| 213 |
213 |
| 214 ims = e_contact_get(contact, protocol_field); |
214 ims = e_contact_get(contact, protocol_field); |
| 215 |
215 |
| 216 for (l = ims; l != NULL; l = l->next) |
216 for (l = ims; l != NULL; l = l->next) |
| 217 { |
217 { |
| 218 if (!strcmp(l->data, purple_buddy_get_name(dialog->buddy))) |
218 if (!strcmp(l->data, |
| |
219 purple_buddy_get_name(dialog->buddy))) |
| 219 { |
220 { |
| 220 GtkTreeSelection *selection; |
221 GtkTreeSelection *selection; |
| 221 |
222 |
| 222 /* This is it. Select it. */ |
223 /* This is it. Select it. */ |
| 223 selection = gtk_tree_view_get_selection( |
224 selection = gtk_tree_view_get_selection( |
| 251 } |
252 } |
| 252 |
253 |
| 253 static void |
254 static void |
| 254 new_person_cb(GtkWidget *w, GevoAssociateBuddyDialog *dialog) |
255 new_person_cb(GtkWidget *w, GevoAssociateBuddyDialog *dialog) |
| 255 { |
256 { |
| 256 gevo_new_person_dialog_show(dialog->book, NULL, purple_buddy_get_account(dialog->buddy), |
257 gevo_new_person_dialog_show(dialog->book, NULL, |
| 257 purple_buddy_get_name(dialog->buddy), NULL, dialog->buddy, |
258 purple_buddy_get_account(dialog->buddy), |
| 258 TRUE); |
259 purple_buddy_get_name(dialog->buddy), |
| |
260 NULL, dialog->buddy, TRUE); |
| 259 |
261 |
| 260 delete_win_cb(NULL, NULL, dialog); |
262 delete_win_cb(NULL, NULL, dialog); |
| 261 } |
263 } |
| 262 |
264 |
| 263 static void |
265 static void |
| 284 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, |
286 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, |
| 285 COLUMN_NAME, &fullname, |
287 COLUMN_NAME, &fullname, |
| 286 COLUMN_DATA, &contact, |
288 COLUMN_DATA, &contact, |
| 287 -1); |
289 -1); |
| 288 |
290 |
| 289 protocol_field = gevo_protocol_get_field(purple_buddy_get_account(dialog->buddy), dialog->buddy); |
291 protocol_field = gevo_protocol_get_field( |
| |
292 purple_buddy_get_account(dialog->buddy), dialog->buddy); |
| 290 |
293 |
| 291 if (protocol_field == 0) |
294 if (protocol_field == 0) |
| 292 return; /* XXX */ |
295 return; /* XXX */ |
| 293 |
296 |
| 294 list = e_contact_get(contact, protocol_field); |
297 list = e_contact_get(contact, protocol_field); |
| 295 list = g_list_append(list, g_strdup(purple_buddy_get_name(dialog->buddy))); |
298 list = g_list_append(list, |
| |
299 g_strdup(purple_buddy_get_name(dialog->buddy))); |
| 296 |
300 |
| 297 e_contact_set(contact, protocol_field, list); |
301 e_contact_set(contact, protocol_field, list); |
| 298 |
302 |
| 299 if (!e_book_commit_contact(dialog->book, contact, NULL)) |
303 if (!e_book_commit_contact(dialog->book, contact, NULL)) |
| 300 purple_debug_error("evolution", "Error adding contact to book\n"); |
304 purple_debug_error("evolution", "Error adding contact to book\n"); |
| 414 gevo_addrbooks_model_populate( dialog->addrbooks ); |
417 gevo_addrbooks_model_populate( dialog->addrbooks ); |
| 415 g_signal_connect(G_OBJECT(dialog->addrbooks_combo), "changed", |
418 g_signal_connect(G_OBJECT(dialog->addrbooks_combo), "changed", |
| 416 G_CALLBACK(addrbook_change_cb), dialog); |
419 G_CALLBACK(addrbook_change_cb), dialog); |
| 417 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->addrbooks_combo), 0); |
420 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->addrbooks_combo), 0); |
| 418 |
421 |
| 419 /* Add the expander */ |
|
| 420 expander = gtk_expander_new_with_mnemonic(_("User _details")); |
|
| 421 gtk_box_pack_start(GTK_BOX(vbox), expander, FALSE, FALSE, 0); |
|
| 422 gtk_widget_show(expander); |
|
| 423 |
|
| 424 /* |
|
| 425 * User details |
|
| 426 */ |
|
| 427 |
|
| 428 /* Textview */ |
|
| 429 dialog->imhtml = gtk_imhtml_new(NULL, NULL); |
|
| 430 gtk_container_add(GTK_CONTAINER(expander), |
|
| 431 pidgin_make_scrollable(dialog->imhtml, GTK_POLICY_NEVER, GTK_POLICY_ALWAYS, GTK_SHADOW_IN, -1, -1)); |
|
| 432 gtk_widget_show(dialog->imhtml); |
|
| 433 |
|
| 434 /* Separator. */ |
422 /* Separator. */ |
| 435 sep = gtk_hseparator_new(); |
423 sep = gtk_hseparator_new(); |
| 436 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); |
424 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); |
| 437 gtk_widget_show(sep); |
425 gtk_widget_show(sep); |
| 438 |
426 |