comparison finch/gntblist.c @ 18586:4fda1fc6d7cf

Add an 'auto-join' checkbox in the 'Add Chat' dialog, thanks to fmoo's suggestion in #pidgin. (No new strings)
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Mon, 23 Jul 2007 20:54:16 +0000
parents 823946ddd527
children 5551e5ec1ce0 069c036d9b72
comparison
equal deleted inserted replaced
18585:823946ddd527 18586:4fda1fc6d7cf
352 const char *alias, *name, *group; 352 const char *alias, *name, *group;
353 PurpleChat *chat; 353 PurpleChat *chat;
354 PurpleGroup *grp; 354 PurpleGroup *grp;
355 GHashTable *hash = NULL; 355 GHashTable *hash = NULL;
356 PurpleConnection *gc; 356 PurpleConnection *gc;
357 gboolean autojoin;
357 358
358 account = purple_request_fields_get_account(allfields, "account"); 359 account = purple_request_fields_get_account(allfields, "account");
359 name = purple_request_fields_get_string(allfields, "name"); 360 name = purple_request_fields_get_string(allfields, "name");
360 alias = purple_request_fields_get_string(allfields, "alias"); 361 alias = purple_request_fields_get_string(allfields, "alias");
361 group = purple_request_fields_get_string(allfields, "group"); 362 group = purple_request_fields_get_string(allfields, "group");
363 autojoin = purple_request_fields_get_bool(allfields, "autojoin");
362 364
363 if (!purple_account_is_connected(account) || !name || !*name) 365 if (!purple_account_is_connected(account) || !name || !*name)
364 return; 366 return;
365 367
366 if (!group || !*group) 368 if (!group || !*group)
378 grp = purple_group_new(group); 380 grp = purple_group_new(group);
379 purple_blist_add_group(grp, NULL); 381 purple_blist_add_group(grp, NULL);
380 } 382 }
381 purple_blist_add_chat(chat, grp, NULL); 383 purple_blist_add_chat(chat, grp, NULL);
382 purple_blist_alias_chat(chat, alias); 384 purple_blist_alias_chat(chat, alias);
385 purple_blist_node_set_bool((PurpleBlistNode*)chat, "gnt-autojoin", autojoin);
386 if (autojoin)
387 serv_join_chat(chat->account->gc, chat->components);
383 } 388 }
384 } 389 }
385 390
386 static void 391 static void
387 finch_request_add_chat(PurpleAccount *account, PurpleGroup *grp, const char *alias, const char *name) 392 finch_request_add_chat(PurpleAccount *account, PurpleGroup *grp, const char *alias, const char *name)
403 408
404 field = purple_request_field_string_new("alias", _("Alias"), alias, FALSE); 409 field = purple_request_field_string_new("alias", _("Alias"), alias, FALSE);
405 purple_request_field_group_add_field(group, field); 410 purple_request_field_group_add_field(group, field);
406 411
407 field = purple_request_field_string_new("group", _("Group"), grp ? grp->name : NULL, FALSE); 412 field = purple_request_field_string_new("group", _("Group"), grp ? grp->name : NULL, FALSE);
413 purple_request_field_group_add_field(group, field);
414
415 field = purple_request_field_bool_new("autojoin", _("Auto-join"), FALSE);
408 purple_request_field_group_add_field(group, field); 416 purple_request_field_group_add_field(group, field);
409 417
410 purple_request_fields(NULL, _("Add Chat"), NULL, 418 purple_request_fields(NULL, _("Add Chat"), NULL,
411 _("You can edit more information from the context menu later."), 419 _("You can edit more information from the context menu later."),
412 fields, _("Add"), G_CALLBACK(add_chat_cb), _("Cancel"), NULL, 420 fields, _("Add"), G_CALLBACK(add_chat_cb), _("Cancel"), NULL,