comparison src/dialogs.c @ 6058:d5f4ae4f9a02

[gaim-migrate @ 6508] This should fix http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=196664 I also removed the dialog for rename buddy. The UI doesn't use it anymore. We think renaming a buddy is silly. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Tue, 08 Jul 2003 02:33:17 +0000
parents ac0dd4dd9465
children d8cd876e613e
comparison
equal deleted inserted replaced
6057:dc2124210882 6058:d5f4ae4f9a02
47 static GtkWidget *importdialog; 47 static GtkWidget *importdialog;
48 static GaimConnection *importgc; 48 static GaimConnection *importgc;
49 static GtkWidget *icondlg; 49 static GtkWidget *icondlg;
50 static GtkWidget *alias_dialog = NULL; 50 static GtkWidget *alias_dialog = NULL;
51 static GtkWidget *rename_dialog = NULL; 51 static GtkWidget *rename_dialog = NULL;
52 static GtkWidget *rename_bud_dialog = NULL;
53 static GtkWidget *fontseld = NULL; 52 static GtkWidget *fontseld = NULL;
54 53
55 54
56 struct confirm_del { 55 struct confirm_del {
57 GtkWidget *window; 56 GtkWidget *window;
287 } 286 }
288 else if (dest == icondlg) 287 else if (dest == icondlg)
289 icondlg = NULL; 288 icondlg = NULL;
290 else if (dest == rename_dialog) 289 else if (dest == rename_dialog)
291 rename_dialog = NULL; 290 rename_dialog = NULL;
292 else if (dest == rename_bud_dialog)
293 rename_bud_dialog = NULL;
294 291
295 dialogwindows = g_list_remove(dialogwindows, dest); 292 dialogwindows = g_list_remove(dialogwindows, dest);
296 gtk_widget_destroy(dest); 293 gtk_widget_destroy(dest);
297 } 294 }
298 295
4328 if(name_entry) 4325 if(name_entry)
4329 gtk_widget_grab_focus(GTK_WIDGET(name_entry)); 4326 gtk_widget_grab_focus(GTK_WIDGET(name_entry));
4330 } 4327 }
4331 4328
4332 4329
4333 /*------------------------------------------------------------------------*/
4334 /* The dialog for renaming buddies */
4335 /*------------------------------------------------------------------------*/
4336
4337 static void do_rename_buddy(GObject *obj, GtkWidget *entry)
4338 {
4339 const char *new_name;
4340 struct buddy *b;
4341
4342 new_name = gtk_entry_get_text(GTK_ENTRY(entry));
4343 b = g_object_get_data(obj, "buddy");
4344
4345 if (!g_list_find(gaim_connections_get_all(), b->account->gc)) {
4346 destroy_dialog(rename_bud_dialog, rename_bud_dialog);
4347 return;
4348 }
4349
4350 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, b->name)) {
4351 struct group *g = gaim_find_buddys_group(b);
4352 char *prevname = b->name;
4353 if (g)
4354 serv_remove_buddy(b->account->gc, b->name, g->name);
4355 b->name = g_strdup(new_name);
4356 serv_add_buddy(b->account->gc, b->name);
4357 gaim_blist_rename_buddy(b, prevname);
4358 gaim_blist_save();
4359 g_free(prevname);
4360 }
4361
4362 destroy_dialog(rename_bud_dialog, rename_bud_dialog);
4363 }
4364
4365 void show_rename_buddy(GtkWidget *unused, struct buddy *b)
4366 {
4367 GtkWidget *mainbox;
4368 GtkWidget *frame;
4369 GtkWidget *fbox;
4370 GtkWidget *bbox;
4371 GtkWidget *button;
4372 GtkWidget *name_entry;
4373 GtkWidget *label;
4374
4375 if (!rename_bud_dialog) {
4376 GAIM_DIALOG(rename_bud_dialog);
4377 gtk_window_set_role(GTK_WINDOW(rename_bud_dialog), "rename_bud_dialog");
4378 gtk_window_set_resizable(GTK_WINDOW(rename_bud_dialog), TRUE);
4379 gtk_window_set_title(GTK_WINDOW(rename_bud_dialog), _("Rename Buddy"));
4380 g_signal_connect(G_OBJECT(rename_bud_dialog), "destroy",
4381 G_CALLBACK(destroy_dialog), rename_bud_dialog);
4382 gtk_widget_realize(rename_bud_dialog);
4383
4384 mainbox = gtk_vbox_new(FALSE, 5);
4385 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5);
4386 gtk_container_add(GTK_CONTAINER(rename_bud_dialog), mainbox);
4387
4388 frame = gtk_frame_new(_("Rename Buddy"));
4389 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0);
4390
4391 fbox = gtk_hbox_new(FALSE, 5);
4392 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
4393 gtk_container_add(GTK_CONTAINER(frame), fbox);
4394
4395 label = gtk_label_new(_("New name:"));
4396 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0);
4397
4398 name_entry = gtk_entry_new();
4399 gtk_box_pack_start(GTK_BOX(fbox), name_entry, TRUE, TRUE, 0);
4400 g_object_set_data(G_OBJECT(name_entry), "buddy", b);
4401 gtk_entry_set_text(GTK_ENTRY(name_entry), b->name);
4402 g_signal_connect(G_OBJECT(name_entry), "activate",
4403 G_CALLBACK(do_rename_buddy), name_entry);
4404 gtk_widget_grab_focus(name_entry);
4405
4406 bbox = gtk_hbox_new(FALSE, 5);
4407 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0);
4408
4409 button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
4410 g_object_set_data(G_OBJECT(button), "buddy", b);
4411 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
4412 g_signal_connect(G_OBJECT(button), "clicked",
4413 G_CALLBACK(do_rename_buddy), name_entry);
4414
4415 button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
4416 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
4417 g_signal_connect(G_OBJECT(button), "clicked",
4418 G_CALLBACK(destroy_dialog), rename_bud_dialog);
4419 }
4420
4421 gtk_widget_show_all(rename_bud_dialog);
4422 }
4423
4424
4425 GtkWidget *gaim_pixbuf_toolbar_button_from_stock(char *icon) 4330 GtkWidget *gaim_pixbuf_toolbar_button_from_stock(char *icon)
4426 { 4331 {
4427 GtkWidget *button, *image, *bbox; 4332 GtkWidget *button, *image, *bbox;
4428 4333
4429 button = gtk_toggle_button_new(); 4334 button = gtk_toggle_button_new();