Mercurial > pidgin.yaz
diff src/dialogs.c @ 4349:0c68d402f59f
[gaim-migrate @ 4614]
XML Blist
Gaim stores all the buddy lists in one big happy file now. You can order
the buddies however you want, and they'll stay ordered that way.
We can also store some per-buddy information now, which will be cool.
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Sun, 19 Jan 2003 22:16:52 +0000 |
parents | cc2f780c0505 |
children | 7142f59bec2c |
line wrap: on
line diff
--- a/src/dialogs.c Sun Jan 19 22:03:57 2003 +0000 +++ b/src/dialogs.c Sun Jan 19 22:16:52 2003 +0000 @@ -449,17 +449,16 @@ void do_remove_buddy(struct buddy *b) { - struct group *g = find_group_by_buddy(b->gc, b->name); - struct gaim_connection *gc = b->gc; + struct group *g = find_group_by_buddy(b); struct conversation *cv; if (!b) return; debug_printf(_("Removing '%s' from buddy list.\n"), b->name); - serv_remove_buddy(b->gc, b->name, g->name); - remove_buddy(gc, g, b); - do_export(gc); + serv_remove_buddy(b->user->gc, b->name, g->name); + remove_buddy(b); + gaim_blist_save(); cv = find_conversation(b->name); @@ -470,7 +469,7 @@ void show_confirm_del(struct gaim_connection *gc, gchar *name) { - struct buddy *bd = find_buddy(gc, name); + struct buddy *bd = find_buddy(gc->user, name); char *text; if (!bd) return; @@ -884,14 +883,14 @@ c = find_conversation(who); - add_buddy(a->gc, grp, who, whoalias); + add_buddy(a->gc->user, grp, who, whoalias); serv_add_buddy(a->gc, who); if (c != NULL) { update_buttons_by_protocol(c); } - do_export(a->gc); + gaim_blist_save(); } destroy_dialog(NULL, a->window); @@ -900,15 +899,15 @@ void do_add_group(GtkWidget *w, int resp, struct addbuddy *a) { const char *grp; - + if (resp == GTK_RESPONSE_OK) { grp = gtk_entry_get_text(GTK_ENTRY(a->entry)); if (!a->gc) a->gc = connections->data; - add_group(a->gc, grp); - do_export(a->gc); + add_group(grp); + gaim_blist_save(); } destroy_dialog(NULL, a->window); @@ -920,7 +919,7 @@ GList *tmp = NULL; char *tmp2; struct group *g; - GSList *grp = gc->groups; + GSList *grp = groups; if (!grp) { tmp2 = g_strdup(_("Buddies")); @@ -1176,9 +1175,9 @@ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) return; debug_printf("setting deny mode %d\n", data); - current_deny_gc->permdeny = data; + current_deny_gc->user->permdeny = data; serv_set_permit_deny(current_deny_gc); - do_export(current_deny_gc); + gaim_blist_save(); } static GtkWidget *deny_opt(char *label, int which, GtkWidget *set) @@ -1194,7 +1193,7 @@ g_signal_connect(GTK_OBJECT(opt), "toggled", G_CALLBACK(set_deny_mode), (void *)which); gtk_widget_show(opt); - if (current_deny_gc->permdeny == which) + if (current_deny_gc->user->permdeny == which) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); return opt; @@ -1219,7 +1218,7 @@ { GSList *bg = gtk_radio_button_group(GTK_RADIO_BUTTON(deny_type)); - switch (current_deny_gc->permdeny) { + switch (current_deny_gc->user->permdeny) { case 5: bg = bg->next->next; break; @@ -1248,7 +1247,7 @@ if (!current_is_deny) return; - p = current_deny_gc->permit; + p = current_deny_gc->user->permit; gtk_list_store_clear(GTK_LIST_STORE(allow_store)); @@ -1272,7 +1271,7 @@ if (!current_is_deny) return; - d = current_deny_gc->deny; + d = current_deny_gc->user->deny; gtk_list_store_clear(GTK_LIST_STORE(block_store)); @@ -1390,24 +1389,24 @@ return; if (permit) { - char *name = find_permdeny_by_name(current_deny_gc->permit, who); + char *name = find_permdeny_by_name(current_deny_gc->user->permit, who); if (name) { - current_deny_gc->permit = g_slist_remove(current_deny_gc->permit, name); + gaim_privacy_permit_remove(current_deny_gc->user, name); serv_rem_permit(current_deny_gc, who); build_allow_list(); } } else { - char *name = find_permdeny_by_name(current_deny_gc->deny, who); + char *name = find_permdeny_by_name(current_deny_gc->user->deny, who); if (name) { - current_deny_gc->deny = g_slist_remove(current_deny_gc->deny, name); + gaim_privacy_deny_remove(current_deny_gc->user, name); serv_rem_deny(current_deny_gc, who); build_block_list(); } } - do_export(current_deny_gc); + gaim_blist_save(); } GtkWidget *privacy_win; @@ -2496,47 +2495,21 @@ { const char *who; - char *name; who = gtk_entry_get_text(GTK_ENTRY(p->entry)); - name = g_malloc(strlen(who) + 2); - g_snprintf(name, strlen(who) + 2, "%s", who); - if (!p->permit) { - GSList *d = p->gc->deny; - char *n; - n = g_strdup(normalize(name)); - while (d) { - if (!g_strcasecmp(n, normalize(d->data))) - break; - d = d->next; + if (gaim_privacy_deny_add(p->gc->user, who)) { + serv_add_deny(p->gc, who); + build_block_list(); + gaim_blist_save(); } - g_free(n); - if (!d) { - p->gc->deny = g_slist_append(p->gc->deny, name); - serv_add_deny(p->gc, name); - build_block_list(); - do_export(p->gc); - } else - g_free(name); } else { - GSList *d = p->gc->permit; - char *n; - n = g_strdup(normalize(name)); - while (d) { - if (!g_strcasecmp(n, normalize(d->data))) - break; - d = d->next; + if (gaim_privacy_permit_add(p->gc->user, who)) { + serv_add_permit(p->gc, who); + build_allow_list(); + gaim_blist_save(); } - g_free(n); - if (!d) { - p->gc->permit = g_slist_append(p->gc->permit, name); - serv_add_permit(p->gc, name); - build_allow_list(); - do_export(p->gc); - } else - g_free(name); } destroy_dialog(NULL, p->window); @@ -3357,8 +3330,8 @@ return; } if (g_slist_find(connections, importgc)) { - do_import(importgc, file); - do_export(importgc); + do_import(gc->user, file); + gaim_blist_save(); } destroy_dialog(NULL, importdialog); } @@ -3777,7 +3750,7 @@ b->alias[0] = '\0'; handle_buddy_rename(b, b->name); serv_alias_buddy(b); - do_export(b->gc); + gaim_blist_save(); destroy_dialog(aliasdlg, aliasdlg); } @@ -4298,7 +4271,7 @@ const char *new_name; struct group *g; struct group *orig; - struct gaim_connection *gc; + GSList *accts; if (resp == GTK_RESPONSE_OK) { @@ -4307,27 +4280,35 @@ if (new_name && (strlen(new_name) != 0) && strcmp(new_name, g->name)) { char *prevname; - gc = g->gc; - if ((orig = find_group(g->gc, new_name)) != NULL && g_strcasecmp(new_name, g->name)) { + if ((orig = find_group(new_name)) != NULL && g_strcasecmp(new_name, g->name)) { orig->members = g_slist_concat(orig->members, g->members); handle_group_rename(orig, g->name); - g->gc->groups = g_slist_remove(g->gc->groups, g); + groups = g_slist_remove(groups, g); /* FIXME, i don't like calling this. it's sloppy. */ build_edit_tree(); - serv_rename_group(gc, g, new_name); + accts = gaim_group_get_accounts(g); + while(accts) { + struct aim_user *au = accts->data; + serv_rename_group(au->gc, g, new_name); + accts = g_slist_remove(accts, accts->data); + } g_free(g); } else { prevname = g_strdup(g->name); - serv_rename_group(gc, g, new_name); + accts = gaim_group_get_accounts(g); + while(accts) { + struct aim_user *au = accts->data; + serv_rename_group(au->gc, g, new_name); + accts = g_slist_remove(accts, accts->data); + } g_snprintf(g->name, sizeof(g->name), "%s", new_name); handle_group_rename(g, prevname); /* FIXME, i don't like calling this. it's sloppy. */ build_edit_tree(); g_free(prevname); } - do_export(gc); + gaim_blist_save(); } } - destroy_dialog(rename_dialog, rename_dialog); } @@ -4403,12 +4384,12 @@ new_name = gtk_entry_get_text(GTK_ENTRY(entry)); b = gtk_object_get_user_data(obj); - if (!g_slist_find(connections, b->gc)) { + if (!g_slist_find(connections, b->user->gc)) { destroy_dialog(rename_bud_dialog, rename_bud_dialog); return; } - gr = b->gc->groups; + gr = groups; while (gr) { if (g_slist_find(((struct group *)gr->data)->members, b)) break; @@ -4420,14 +4401,14 @@ } if (new_name && (strlen(new_name) != 0) && strcmp(new_name, b->name)) { - struct group *g = find_group_by_buddy(b->gc, b->name); + struct group *g = find_group_by_buddy(b); char *prevname = g_strdup(b->name); if (g) - serv_remove_buddy(b->gc, b->name, g->name); + serv_remove_buddy(b->user->gc, b->name, g->name); g_snprintf(b->name, sizeof(b->name), "%s", new_name); - serv_add_buddy(b->gc, b->name); + serv_add_buddy(b->user->gc, b->name); handle_buddy_rename(b, prevname); - do_export(b->gc); + gaim_blist_save(); g_free(prevname); }