annotate libpurple/protocols/oscar/visibility.c @ 31836:8d6630912021

Add two hash tables to the oscar code that deals with your server stored buddy list. One hash table is indexed by a combination of group id and buddy id. The other hash table is indexed by a combination of item type and item name. This should reduce the number of times we iterate through a linked list by A LOT. This is a modified version of Oliver's patch from #4816. Fixes #4816.
author Mark Doliner <mark@kingant.net>
date Sun, 20 Mar 2011 20:20:52 +0000
parents 1ade51ed363c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30372
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
1 /*
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
2 * Purple's oscar protocol plugin
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
3 * This file is the legal property of its developers.
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
4 * Please see the AUTHORS file distributed alongside this file.
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
5 *
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
6 * This library is free software; you can redistribute it and/or
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
8 * License as published by the Free Software Foundation; either
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
9 * version 2 of the License, or (at your option) any later version.
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
10 *
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
11 * This library is distributed in the hope that it will be useful,
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
14 * Lesser General Public License for more details.
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
15 *
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
17 * License along with this library; if not, write to the Free Software
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
30577
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
19 */
30372
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
20
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
21 #include "visibility.h"
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
22
30938
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
23 /* Translators: This string is a menu option that, if selected, will cause
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
24 you to appear online to the chosen user even when your status is set to
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
25 Invisible. */
30375
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
26 #define APPEAR_ONLINE N_("Appear Online")
30938
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
27
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
28 /* Translators: This string is a menu option that, if selected, will cause
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
29 you to appear offline to the chosen user when your status is set to
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
30 Invisible (this is the default). */
30375
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
31 #define DONT_APPEAR_ONLINE N_("Don't Appear Online")
30938
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
32
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
33 /* Translators: This string is a menu option that, if selected, will cause
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
34 you to always appear offline to the chosen user (even when your status
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
35 isn't Invisible). */
30375
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
36 #define APPEAR_OFFLINE N_("Appear Offline")
30938
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
37
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
38 /* Translators: This string is a menu option that, if selected, will cause
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
39 you to appear offline to the chosen user if you are invisible, and
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
40 appear online to the chosen user if you are not invisible (this is the
1ade51ed363c Add comments for translators
Mark Doliner <mark@kingant.net>
parents: 30578
diff changeset
41 default). */
30375
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
42 #define DONT_APPEAR_OFFLINE N_("Don't Appear Offline")
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
43
30374
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
44 static guint16
30380
2d4dd38c5db5 Two small fixes Mark suggested:
ivan.komarov@soc.pidgin.im
parents: 30378
diff changeset
45 get_buddy_list_type(OscarData *od)
30372
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
46 {
30374
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
47 PurpleAccount *account = purple_connection_get_account(od->gc);
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
48 return purple_account_is_status_active(account, OSCAR_STATUS_ID_INVISIBLE) ? AIM_SSI_TYPE_PERMIT : AIM_SSI_TYPE_DENY;
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
49 }
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
50
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
51 static gboolean
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
52 is_buddy_on_list(OscarData *od, const char *bname)
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
53 {
31836
8d6630912021 Add two hash tables to the oscar code that deals with your server stored
Mark Doliner <mark@kingant.net>
parents: 30938
diff changeset
54 return aim_ssi_itemlist_finditem(&od->ssi.local, NULL, bname, get_buddy_list_type(od)) != NULL;
30374
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
55 }
30372
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
56
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
57 static void
30374
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
58 visibility_cb(PurpleBlistNode *node, gpointer whatever)
30372
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
59 {
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
60 PurpleBuddy *buddy = PURPLE_BUDDY(node);
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
61 const char* bname = purple_buddy_get_name(buddy);
30374
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
62 OscarData *od = purple_connection_get_protocol_data(purple_account_get_connection(purple_buddy_get_account(buddy)));
30380
2d4dd38c5db5 Two small fixes Mark suggested:
ivan.komarov@soc.pidgin.im
parents: 30378
diff changeset
63 guint16 list_type = get_buddy_list_type(od);
30372
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
64
30374
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
65 if (!is_buddy_on_list(od, bname)) {
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
66 aim_ssi_add_to_private_list(od, bname, list_type);
30372
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
67 } else {
30374
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
68 aim_ssi_del_from_private_list(od, bname, list_type);
30372
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
69 }
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
70 }
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
71
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
72 PurpleMenuAction *
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
73 create_visibility_menu_item(OscarData *od, const char *bname)
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
74 {
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
75 PurpleAccount *account = purple_connection_get_account(od->gc);
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
76 gboolean invisible = purple_account_is_status_active(account, OSCAR_STATUS_ID_INVISIBLE);
30374
48fe4720d795 Removed callback data that was causing a segfault in Finch, because
ivan.komarov@soc.pidgin.im
parents: 30373
diff changeset
77 gboolean on_list = is_buddy_on_list(od, bname);
30375
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
78 const gchar *label;
30372
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
79
30375
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
80 if (invisible) {
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
81 label = on_list ? _(DONT_APPEAR_ONLINE) : _(APPEAR_ONLINE);
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
82 } else {
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
83 label = on_list ? _(DONT_APPEAR_OFFLINE) : _(APPEAR_OFFLINE);
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
84 }
ab7e28b1b478 Gettextized the code and rephrased some of the messages slightly.
ivan.komarov@soc.pidgin.im
parents: 30374
diff changeset
85 return purple_menu_action_new(label, PURPLE_CALLBACK(visibility_cb), NULL, NULL);
30372
5bfef3338383 Added a way to add a user to the (In)Visible list via the context menu.
ivan.komarov@soc.pidgin.im
parents:
diff changeset
86 }
30373
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
87
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
88 static void
30577
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
89 show_private_list(PurplePluginAction *action, guint16 list_type, const gchar *title, const gchar *list_description, const gchar *menu_action_name)
30373
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
90 {
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
91 PurpleConnection *gc = (PurpleConnection *) action->context;
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
92 OscarData *od = purple_connection_get_protocol_data(gc);
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
93 PurpleAccount *account = purple_connection_get_account(gc);
30577
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
94 GSList *buddies, *filtered_buddies, *cur;
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
95 gchar *text, *secondary;
30373
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
96
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
97 buddies = purple_find_buddies(account, NULL);
30577
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
98 filtered_buddies = NULL;
30373
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
99 for (cur = buddies; cur != NULL; cur = cur->next) {
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
100 PurpleBuddy *buddy;
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
101 const gchar *bname;
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
102
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
103 buddy = cur->data;
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
104 bname = purple_buddy_get_name(buddy);
31836
8d6630912021 Add two hash tables to the oscar code that deals with your server stored
Mark Doliner <mark@kingant.net>
parents: 30938
diff changeset
105 if (aim_ssi_itemlist_finditem(&od->ssi.local, NULL, bname, list_type)) {
30577
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
106 filtered_buddies = g_slist_prepend(filtered_buddies, buddy);
30373
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
107 }
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
108 }
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
109
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
110 g_slist_free(buddies);
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
111
30577
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
112 filtered_buddies = g_slist_reverse(filtered_buddies);
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
113 text = oscar_format_buddies(filtered_buddies, _("you have no buddies on this list"));
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
114 g_slist_free(filtered_buddies);
30373
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
115
30577
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
116 secondary = g_strdup_printf(_("You can add a buddy to this list "
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
117 "by right-clicking on them and "
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
118 "selecting \"%s\""), menu_action_name);
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
119 purple_notify_formatted(gc, title, list_description, secondary, text, NULL, NULL);
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
120 g_free(secondary);
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
121 g_free(text);
30373
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
122 }
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
123
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
124 void
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
125 oscar_show_visible_list(PurplePluginAction *action)
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
126 {
30577
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
127 show_private_list(action, AIM_SSI_TYPE_PERMIT, _("Visible List"),
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
128 _("These buddies will see "
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
129 "your status when you switch "
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
130 "to \"Invisible\""),
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
131 _(APPEAR_ONLINE));
30373
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
132 }
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
133
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
134 void
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
135 oscar_show_invisible_list(PurplePluginAction *action)
4e804413b12b Added a way to view the Visible/Invisible lists.
ivan.komarov@soc.pidgin.im
parents: 30372
diff changeset
136 {
30577
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
137 show_private_list(action, AIM_SSI_TYPE_DENY, _("Invisible List"),
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
138 _("These buddies will always see you as offline"),
7b761c8601f7 disapproval of revision 'eca3adf7cdd9217fcf670611fb705385fcfaa48d'
ivan.komarov@soc.pidgin.im
parents: 30379
diff changeset
139 _(APPEAR_OFFLINE));
30379
242bcf6b1258 Applied and slightly modified Sadrul's patch (http://pidgin.im/~sadrul/pp/icq-list.patch.txt)
ivan.komarov@soc.pidgin.im
parents: 30378
diff changeset
140 }