Mercurial > pidgin
comparison src/dialogs.c @ 6742:d93c6a1fadf2
[gaim-migrate @ 7274]
this should let you delete contacts, and should make ChipX86 happy by telling
the prpls when we move buddies around
committer: Tailor Script <tailor@pidgin.im>
| author | Nathan Walp <nwalp@pidgin.im> |
|---|---|
| date | Thu, 04 Sep 2003 18:40:40 +0000 |
| parents | 0c5637b5462e |
| children | 57a24492434b |
comparison
equal
deleted
inserted
replaced
| 6741:b3a0b79131dd | 6742:d93c6a1fadf2 |
|---|---|
| 410 | 410 |
| 411 if (c != NULL) | 411 if (c != NULL) |
| 412 gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE); | 412 gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE); |
| 413 | 413 |
| 414 g_free(name); | 414 g_free(name); |
| 415 } | |
| 416 | |
| 417 static void do_remove_contact(GaimContact *c) | |
| 418 { | |
| 419 GaimBlistNode *bnode, *cnode; | |
| 420 GaimGroup *g; | |
| 421 | |
| 422 if(!c) | |
| 423 return; | |
| 424 | |
| 425 cnode = (GaimBlistNode *)c; | |
| 426 g = (GaimGroup*)cnode->parent; | |
| 427 for(bnode = cnode->child; bnode; bnode = bnode->next) { | |
| 428 GaimBuddy *b = (GaimBuddy*)bnode; | |
| 429 if(b->account->gc) | |
| 430 serv_remove_buddy(b->account->gc, b->name, g->name); | |
| 431 } | |
| 432 gaim_blist_remove_contact(c); | |
| 415 } | 433 } |
| 416 | 434 |
| 417 void do_remove_group(GaimGroup *g) | 435 void do_remove_group(GaimGroup *g) |
| 418 { | 436 { |
| 419 GaimBlistNode *cnode, *bnode; | 437 GaimBlistNode *cnode, *bnode; |
| 490 _("Cancel"), NULL); | 508 _("Cancel"), NULL); |
| 491 | 509 |
| 492 g_free(text); | 510 g_free(text); |
| 493 } | 511 } |
| 494 | 512 |
| 513 void show_confirm_del_contact(GaimContact *c) | |
| 514 { | |
| 515 GaimBuddy *b = gaim_contact_get_priority_buddy(c); | |
| 516 | |
| 517 if(!b) | |
| 518 return; | |
| 519 | |
| 520 if(((GaimBlistNode*)c)->child == (GaimBlistNode*)b && | |
| 521 !((GaimBlistNode*)b)->next) { | |
| 522 show_confirm_del(b); | |
| 523 } else { | |
| 524 char *text = g_strdup_printf(_("You are about to remove the contact containing %s and %d other buddies from your buddy list. Do you want to continue?"), | |
| 525 b->name, c->totalsize - 1); | |
| 526 | |
| 527 gaim_request_action(NULL, NULL, _("Remove Contact"), text, -1, c, 2, | |
| 528 _("Remove Contact"), G_CALLBACK(do_remove_contact), | |
| 529 _("Cancel"), NULL); | |
| 530 | |
| 531 g_free(text); | |
| 532 } | |
| 533 } | |
| 534 | |
| 495 /*------------------------------------------------------------------------*/ | 535 /*------------------------------------------------------------------------*/ |
| 496 /* The dialog for getting an error */ | 536 /* The dialog for getting an error */ |
| 497 /*------------------------------------------------------------------------*/ | 537 /*------------------------------------------------------------------------*/ |
| 498 static void do_im(GtkWidget *widget, int resp, struct getuserinfo *info) | 538 static void do_im(GtkWidget *widget, int resp, struct getuserinfo *info) |
| 499 { | 539 { |
