Mercurial > pidgin
annotate finch/plugins/grouping.c @ 32797:aacfb71133cc
Fix a possible MSN remote crash
Incoming messages with certain characters or character encodings
can cause clients to crash. The fix is for the contents of all
incoming plaintext messages are converted to UTF-8 and validated
before used.
This was reported to us by Fabian Yamaguchi and this patch was written
by Elliott Sales de Andrade (maybe with small, insignificant changes by me)
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Mon, 07 May 2012 03:18:08 +0000 |
parents | 7921a53b94b3 |
children | d288f5215a9a |
rev | line source |
---|---|
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
1 /** |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
2 * @file grouping.c Provides different grouping options. |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
3 * |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
4 * Copyright (C) 2008 Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
5 * |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
6 * This program is free software; you can redistribute it and/or modify |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
7 * it under the terms of the GNU General Public License as published by |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
8 * the Free Software Foundation; either version 2 of the License, or |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
9 * (at your option) any later version. |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
10 * |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
11 * This program is distributed in the hope that it will be useful, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
14 * GNU General Public License for more details. |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
15 * |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
16 * You should have received a copy of the GNU General Public License |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
17 * along with this program; if not, write to the Free Software |
28070
7921a53b94b3
Oops, Elliott correctly pointed out this was wrong...
Paul Aurich <paul@darkrain42.org>
parents:
28049
diff
changeset
|
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
19 */ |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
20 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
21 #define PURPLE_PLUGIN |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
22 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
23 #include "internal.h" |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
24 #include "purple.h" |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
25 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
26 #include "gntblist.h" |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
27 #include "gntplugin.h" |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
28 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
29 #include "gnttree.h" |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
30 |
24029
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
31 static FinchBlistManager *default_manager; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
32 |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
33 /** |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
34 * Online/Offline |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
35 */ |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
36 static PurpleBlistNode online = {.type = PURPLE_BLIST_OTHER_NODE}, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
37 offline = {.type = PURPLE_BLIST_OTHER_NODE}; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
38 |
22190
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
39 static gboolean on_offline_init() |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
40 { |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
41 GntTree *tree = finch_blist_get_tree(); |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
42 |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
43 gnt_tree_add_row_after(tree, &online, |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
44 gnt_tree_create_row(tree, _("Online")), NULL, NULL); |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
45 gnt_tree_add_row_after(tree, &offline, |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
46 gnt_tree_create_row(tree, _("Offline")), NULL, &online); |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
47 |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
48 return TRUE; |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
49 } |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
50 |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
51 static gboolean on_offline_can_add_node(PurpleBlistNode *node) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
52 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
53 switch (purple_blist_node_get_type(node)) { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
54 case PURPLE_BLIST_CONTACT_NODE: |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
55 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
56 PurpleContact *contact = (PurpleContact*)node; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
57 if (contact->currentsize > 0) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
58 return TRUE; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
59 return FALSE; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
60 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
61 break; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
62 case PURPLE_BLIST_BUDDY_NODE: |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
63 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
64 PurpleBuddy *buddy = (PurpleBuddy*)node; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
65 if (PURPLE_BUDDY_IS_ONLINE(buddy)) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
66 return TRUE; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
67 if (purple_prefs_get_bool("/finch/blist/showoffline") && |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
68 purple_account_is_connected(purple_buddy_get_account(buddy))) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
69 return TRUE; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
70 return FALSE; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
71 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
72 break; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
73 case PURPLE_BLIST_CHAT_NODE: |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
74 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
75 PurpleChat *chat = (PurpleChat*)node; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
76 return purple_account_is_connected(purple_chat_get_account(chat)); |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
77 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
78 break; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
79 default: |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
80 return FALSE; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
81 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
82 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
83 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
84 static gpointer on_offline_find_parent(PurpleBlistNode *node) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
85 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
86 gpointer ret = NULL; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
87 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
88 switch (purple_blist_node_get_type(node)) { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
89 case PURPLE_BLIST_CONTACT_NODE: |
25827
0e08c847517d
Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@wiktel.com>
parents:
24029
diff
changeset
|
90 node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node))); |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
91 ret = PURPLE_BUDDY_IS_ONLINE((PurpleBuddy*)node) ? &online : &offline; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
92 break; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
93 case PURPLE_BLIST_BUDDY_NODE: |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
94 ret = purple_blist_node_get_parent(node); |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
95 finch_blist_manager_add_node(ret); |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
96 break; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
97 case PURPLE_BLIST_CHAT_NODE: |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
98 ret = &online; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
99 break; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
100 default: |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
101 break; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
102 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
103 return ret; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
104 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
105 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
106 static gboolean on_offline_create_tooltip(gpointer selected_row, GString **body, char **tool_title) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
107 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
108 PurpleBlistNode *node = selected_row; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
109 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
110 if (purple_blist_node_get_type(node) == PURPLE_BLIST_OTHER_NODE) { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
111 /* There should be some easy way of getting the total online count, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
112 * or total number of chats. Doing a loop here will probably be pretty |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
113 * expensive. */ |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
114 if (body) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
115 *body = g_string_new(node == &online ? _("Online Buddies") : _("Offline Buddies")); |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
116 return TRUE; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
117 } else { |
24029
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
118 return default_manager ? default_manager->create_tooltip(selected_row, body, tool_title) : FALSE; |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
119 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
120 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
121 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
122 static FinchBlistManager on_offline = |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
123 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
124 "on-offline", |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
125 N_("Online/Offline"), |
22190
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
126 on_offline_init, |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
127 NULL, |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
128 on_offline_can_add_node, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
129 on_offline_find_parent, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
130 on_offline_create_tooltip, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
131 {NULL, NULL, NULL, NULL} |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
132 }; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
133 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
134 /** |
22186
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
135 * Meebo-like Grouping. |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
136 */ |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
137 static PurpleBlistNode meebo = {.type = PURPLE_BLIST_OTHER_NODE}; |
22190
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
138 static gboolean meebo_init() |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
139 { |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
140 GntTree *tree = finch_blist_get_tree(); |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
141 if (!g_list_find(gnt_tree_get_rows(tree), &meebo)) { |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
142 gnt_tree_add_row_last(tree, &meebo, |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
143 gnt_tree_create_row(tree, _("Offline")), NULL); |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
144 } |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
145 return TRUE; |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
146 } |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
147 |
22186
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
148 static gpointer meebo_find_parent(PurpleBlistNode *node) |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
149 { |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
150 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
151 PurpleBuddy *buddy = purple_contact_get_priority_buddy((PurpleContact*)node); |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
152 if (buddy && !PURPLE_BUDDY_IS_ONLINE(buddy)) { |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
153 return &meebo; |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
154 } |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
155 } |
24029
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
156 return default_manager->find_parent(node); |
22186
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
157 } |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
158 |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
159 static FinchBlistManager meebo_group = |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
160 { |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
161 "meebo", |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
162 N_("Meebo"), |
22190
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
163 meebo_init, |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
164 NULL, |
22186
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
165 NULL, |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
166 meebo_find_parent, |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
167 NULL, |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
168 {NULL, NULL, NULL, NULL} |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
169 }; |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
170 |
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
171 /** |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
172 * No Grouping. |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
173 */ |
22190
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
174 static gboolean no_group_init() |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
175 { |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
176 GntTree *tree = finch_blist_get_tree(); |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
177 g_object_set(G_OBJECT(tree), "expander-level", 0, NULL); |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
178 return TRUE; |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
179 } |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
180 |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
181 static gboolean no_group_uninit() |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
182 { |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
183 GntTree *tree = finch_blist_get_tree(); |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
184 g_object_set(G_OBJECT(tree), "expander-level", 1, NULL); |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
185 return TRUE; |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
186 } |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
187 |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
188 static gboolean no_group_can_add_node(PurpleBlistNode *node) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
189 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
190 return on_offline_can_add_node(node); /* These happen to be the same */ |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
191 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
192 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
193 static gpointer no_group_find_parent(PurpleBlistNode *node) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
194 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
195 gpointer ret = NULL; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
196 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
197 switch (purple_blist_node_get_type(node)) { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
198 case PURPLE_BLIST_BUDDY_NODE: |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
199 ret = purple_blist_node_get_parent(node); |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
200 finch_blist_manager_add_node(ret); |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
201 break; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
202 default: |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
203 break; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
204 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
205 return ret; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
206 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
207 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
208 static FinchBlistManager no_group = |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
209 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
210 "no-group", |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
211 N_("No Grouping"), |
22190
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
212 no_group_init, |
bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22186
diff
changeset
|
213 no_group_uninit, |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
214 no_group_can_add_node, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
215 no_group_find_parent, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
216 NULL, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
217 {NULL, NULL, NULL, NULL} |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
218 }; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
219 |
24029
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
220 /** |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
221 * Nested Grouping |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
222 */ |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
223 static GHashTable *groups; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
224 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
225 static gboolean |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
226 nested_group_init(void) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
227 { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
228 groups = g_hash_table_new_full(g_str_hash, g_str_equal, |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
229 g_free, g_free); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
230 return TRUE; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
231 } |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
232 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
233 static gboolean |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
234 nested_group_uninit(void) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
235 { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
236 g_hash_table_destroy(groups); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
237 groups = NULL; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
238 return TRUE; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
239 } |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
240 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
241 static gpointer |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
242 nested_group_find_parent(PurpleBlistNode *node) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
243 { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
244 char *name; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
245 PurpleGroup *group; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
246 char *sep; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
247 PurpleBlistNode *ret, *parent; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
248 GntTree *tree; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
249 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
250 if (!PURPLE_BLIST_NODE_IS_GROUP(node)) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
251 return default_manager->find_parent(node); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
252 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
253 group = (PurpleGroup *)node; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
254 name = g_strdup(purple_group_get_name(group)); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
255 if (!(sep = strchr(name, '/'))) { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
256 g_free(name); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
257 return default_manager->find_parent(node); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
258 } |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
259 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
260 tree = finch_blist_get_tree(); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
261 parent = NULL; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
262 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
263 while (sep) { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
264 *sep = 0; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
265 if (*(sep + 1) && (ret = (PurpleBlistNode *)purple_find_group(name))) { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
266 finch_blist_manager_add_node(ret); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
267 parent = ret; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
268 } else if (!(ret = g_hash_table_lookup(groups, name))) { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
269 ret = g_new0(PurpleBlistNode, 1); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
270 g_hash_table_insert(groups, g_strdup(name), ret); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
271 ret->type = PURPLE_BLIST_OTHER_NODE; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
272 gnt_tree_add_row_last(tree, ret, |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
273 gnt_tree_create_row(tree, name), parent); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
274 parent = ret; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
275 } |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
276 *sep = '/'; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
277 sep = strchr(sep + 1, '/'); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
278 } |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
279 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
280 g_free(name); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
281 return ret; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
282 } |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
283 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
284 static gboolean |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
285 nested_group_create_tooltip(gpointer selected_row, GString **body, char **title) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
286 { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
287 PurpleBlistNode *node = selected_row; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
288 if (!node || |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
289 purple_blist_node_get_type(node) != PURPLE_BLIST_OTHER_NODE) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
290 return default_manager->create_tooltip(selected_row, body, title); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
291 if (body) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
292 *body = g_string_new(_("Nested Subgroup")); /* Perhaps list the child groups/subgroups? */ |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
293 return TRUE; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
294 } |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
295 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
296 static gboolean |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
297 nested_group_can_add_node(PurpleBlistNode *node) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
298 { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
299 PurpleBlistNode *group; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
300 int len; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
301 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
302 if (!PURPLE_BLIST_NODE_IS_GROUP(node)) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
303 return default_manager->can_add_node(node); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
304 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
305 if (default_manager->can_add_node(node)) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
306 return TRUE; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
307 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
308 len = strlen(purple_group_get_name((PurpleGroup*)node)); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
309 group = purple_blist_get_root(); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
310 for (; group; group = purple_blist_node_get_sibling_next(group)) { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
311 if (group == node) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
312 continue; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
313 if (strncmp(purple_group_get_name((PurpleGroup *)node), |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
314 purple_group_get_name((PurpleGroup *)group), len) == 0 && |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
315 default_manager->can_add_node(group)) |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
316 return TRUE; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
317 } |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
318 return FALSE; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
319 } |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
320 |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
321 static FinchBlistManager nested_group = |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
322 { |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
323 "nested", |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
324 N_("Nested Grouping (experimental)"), |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
325 .init = nested_group_init, |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
326 .uninit = nested_group_uninit, |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
327 .find_parent = nested_group_find_parent, |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
328 .create_tooltip = nested_group_create_tooltip, |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
329 .can_add_node = nested_group_can_add_node, |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
330 }; |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
331 |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
332 static gboolean |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
333 plugin_load(PurplePlugin *plugin) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
334 { |
24029
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
335 default_manager = finch_blist_manager_find("default"); |
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
336 |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
337 finch_blist_install_manager(&on_offline); |
22186
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
338 finch_blist_install_manager(&meebo_group); |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
339 finch_blist_install_manager(&no_group); |
24029
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
340 finch_blist_install_manager(&nested_group); |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
341 return TRUE; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
342 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
343 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
344 static gboolean |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
345 plugin_unload(PurplePlugin *plugin) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
346 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
347 finch_blist_uninstall_manager(&on_offline); |
22186
d1b8c8bef05b
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22173
diff
changeset
|
348 finch_blist_uninstall_manager(&meebo_group); |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
349 finch_blist_uninstall_manager(&no_group); |
24029
8a488151e07a
Add 'Nested Grouping' option in the grouping plugin
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22190
diff
changeset
|
350 finch_blist_uninstall_manager(&nested_group); |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
351 return TRUE; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
352 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
353 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
354 static PurplePluginInfo info = |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
355 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
356 PURPLE_PLUGIN_MAGIC, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
357 PURPLE_MAJOR_VERSION, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
358 PURPLE_MINOR_VERSION, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
359 PURPLE_PLUGIN_STANDARD, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
360 FINCH_PLUGIN_TYPE, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
361 0, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
362 NULL, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
363 PURPLE_PRIORITY_DEFAULT, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
364 "grouping", |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
365 N_("Grouping"), |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
366 VERSION, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
367 N_("Provides alternate buddylist grouping options."), |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
368 N_("Provides alternate buddylist grouping options."), |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
369 "Sadrul H Chowdhury <sadrul@users.sourceforge.net>", |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
370 PURPLE_WEBSITE, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
371 plugin_load, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
372 plugin_unload, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
373 NULL, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
374 NULL, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
375 NULL, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
376 NULL, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
377 NULL, |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
378 NULL,NULL,NULL,NULL |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
379 }; |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
380 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
381 static void |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
382 init_plugin(PurplePlugin *plugin) |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
383 { |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
384 } |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
385 |
25490
ea62e934c80b
Fix some more mis-identified plugins, like 3b3526a0...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24029
diff
changeset
|
386 PURPLE_INIT_PLUGIN(grouping, init_plugin, info) |
22173
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
387 |
85c365822504
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
388 |