pidgin/plugins/gevolution/assoc-buddy.c

branch
soc.2013.gobjectification.plugins
changeset 37049
02db93eb6506
parent 36773
62148e91059f
parent 35316
68de575c5e0c
child 37059
18f5830bd82c
equal deleted inserted replaced
37048:6a395246c742 37049:02db93eb6506
20 */ 20 */
21 #include "internal.h" 21 #include "internal.h"
22 #include "gtkblist.h" 22 #include "gtkblist.h"
23 #include "pidgin.h" 23 #include "pidgin.h"
24 #include "gtkutils.h" 24 #include "gtkutils.h"
25 #include "gtkimhtml.h"
26 25
27 #include "debug.h" 26 #include "debug.h"
28 27
29 #include "gevolution.h" 28 #include "gevolution.h"
30 29
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");
314 GtkWidget *label; 318 GtkWidget *label;
315 GtkWidget *vbox; 319 GtkWidget *vbox;
316 GtkWidget *hbox; 320 GtkWidget *hbox;
317 GtkWidget *bbox; 321 GtkWidget *bbox;
318 GtkWidget *sep; 322 GtkWidget *sep;
319 GtkWidget *expander;
320 GtkTreeSelection *selection; 323 GtkTreeSelection *selection;
321 GtkCellRenderer *cell; 324 GtkCellRenderer *cell;
322 325
323 g_return_val_if_fail(buddy != NULL, NULL); 326 g_return_val_if_fail(buddy != NULL, NULL);
324 327
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

mercurial