Mercurial > pidgin.yaz
comparison finch/gntblist.c @ 22816:04e0d8677b9a
Add a 'View log' option in the buddylist menu.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Sun, 04 May 2008 04:15:11 +0000 |
parents | 2d10cd28aa57 |
children | a601807bae2b |
comparison
equal
deleted
inserted
replaced
22815:f67edee0224e | 22816:04e0d8677b9a |
---|---|
2777 NULL, NULL, NULL, | 2777 NULL, NULL, NULL, |
2778 NULL); | 2778 NULL); |
2779 } | 2779 } |
2780 | 2780 |
2781 static void | 2781 static void |
2782 view_log_select_cb(gpointer data, PurpleRequestFields *fields) | |
2783 { | |
2784 PurpleAccount *account; | |
2785 const char *name; | |
2786 PurpleBuddy *buddy; | |
2787 PurpleContact *contact; | |
2788 | |
2789 account = purple_request_fields_get_account(fields, "account"); | |
2790 name = purple_request_fields_get_string(fields, "screenname"); | |
2791 | |
2792 buddy = purple_find_buddy(account, name); | |
2793 if (buddy) { | |
2794 contact = purple_buddy_get_contact(buddy); | |
2795 } else { | |
2796 contact = NULL; | |
2797 } | |
2798 | |
2799 if (contact) { | |
2800 finch_log_show_contact(contact); | |
2801 } else { | |
2802 finch_log_show(PURPLE_LOG_IM, name, account); | |
2803 } | |
2804 } | |
2805 | |
2806 static void | |
2807 view_log_cb(GntMenuItem *item, gpointer n) | |
2808 { | |
2809 PurpleRequestFields *fields; | |
2810 PurpleRequestFieldGroup *group; | |
2811 PurpleRequestField *field; | |
2812 | |
2813 fields = purple_request_fields_new(); | |
2814 | |
2815 group = purple_request_field_group_new(NULL); | |
2816 purple_request_fields_add_group(fields, group); | |
2817 | |
2818 field = purple_request_field_string_new("screenname", _("Name"), NULL, FALSE); | |
2819 purple_request_field_set_type_hint(field, "screenname-all"); | |
2820 purple_request_field_set_required(field, TRUE); | |
2821 purple_request_field_group_add_field(group, field); | |
2822 | |
2823 field = purple_request_field_account_new("account", _("Account"), NULL); | |
2824 purple_request_field_set_type_hint(field, "account"); | |
2825 purple_request_field_set_visible(field, | |
2826 (purple_accounts_get_all() != NULL && | |
2827 purple_accounts_get_all()->next != NULL)); | |
2828 purple_request_field_set_required(field, TRUE); | |
2829 purple_request_field_group_add_field(group, field); | |
2830 purple_request_field_account_set_show_all(field, TRUE); | |
2831 | |
2832 purple_request_fields(purple_get_blist(), _("View Log"), | |
2833 NULL, | |
2834 _("Please enter the username or alias of the person " | |
2835 "whose log you would like to view."), | |
2836 fields, | |
2837 _("OK"), G_CALLBACK(view_log_select_cb), | |
2838 _("Cancel"), NULL, | |
2839 NULL, NULL, NULL, | |
2840 NULL); | |
2841 } | |
2842 | |
2843 static void | |
2782 menu_add_buddy_cb(GntMenuItem *item, gpointer null) | 2844 menu_add_buddy_cb(GntMenuItem *item, gpointer null) |
2783 { | 2845 { |
2784 purple_blist_request_add_buddy(NULL, NULL, NULL, NULL); | 2846 purple_blist_request_add_buddy(NULL, NULL, NULL, NULL); |
2785 } | 2847 } |
2786 | 2848 |
2835 | 2897 |
2836 item = gnt_menuitem_new(_("Join Chat...")); | 2898 item = gnt_menuitem_new(_("Join Chat...")); |
2837 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "join-chat"); | 2899 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "join-chat"); |
2838 gnt_menu_add_item(GNT_MENU(sub), item); | 2900 gnt_menu_add_item(GNT_MENU(sub), item); |
2839 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), join_chat_select, NULL); | 2901 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), join_chat_select, NULL); |
2902 | |
2903 item = gnt_menuitem_new(_("View Log...")); | |
2904 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "view-log"); | |
2905 gnt_menu_add_item(GNT_MENU(sub), item); | |
2906 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), view_log_cb, NULL); | |
2840 | 2907 |
2841 item = gnt_menuitem_new(_("Show")); | 2908 item = gnt_menuitem_new(_("Show")); |
2842 gnt_menu_add_item(GNT_MENU(sub), item); | 2909 gnt_menu_add_item(GNT_MENU(sub), item); |
2843 subsub = gnt_menu_new(GNT_MENU_POPUP); | 2910 subsub = gnt_menu_new(GNT_MENU_POPUP); |
2844 gnt_menuitem_set_submenu(item, GNT_MENU(subsub)); | 2911 gnt_menuitem_set_submenu(item, GNT_MENU(subsub)); |