finch/gntblist.c

Fri, 01 May 2020 04:51:01 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Fri, 01 May 2020 04:51:01 -0500
changeset 40359
ca141ea93b83
parent 40131
00bfb6134525
child 40439
e9838d634d5e
permissions
-rw-r--r--

Make all of finch use purple.h

39887
9c8f874c74a0 Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents: 39834
diff changeset
1 /*
9c8f874c74a0 Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents: 39834
diff changeset
2 * finch
14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
3 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15908
diff changeset
4 * Finch is the legal property of its developers, whose names are too numerous
14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
6 * source distribution.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
7 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
8 * This program is free software; you can redistribute it and/or modify
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
9 * it under the terms of the GNU General Public License as published by
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
11 * (at your option) any later version.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
12 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
13 * This program is distributed in the hope that it will be useful,
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
16 * GNU General Public License for more details.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
17 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
18 * You should have received a copy of the GNU General Public License
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
19 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19555
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14555
diff changeset
21 */
39887
9c8f874c74a0 Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents: 39834
diff changeset
22
29106
51c7b2177e42 Fix all the remaining files for which internal.h doesn't end up being the first include.
Paul Aurich <darkrain42@pidgin.im>
parents: 28939
diff changeset
23 #include <internal.h>
18273
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18134
diff changeset
24 #include "finch.h"
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18134
diff changeset
25
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38849
diff changeset
26 #include NCURSES_HEADER
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38849
diff changeset
27
40359
ca141ea93b83 Make all of finch use purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 40131
diff changeset
28 #include <purple.h>
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
29
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
30 #include "gntbox.h"
21804
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21630
diff changeset
31 #include "gntcolors.h"
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
32 #include "gntcombobox.h"
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
33 #include "gntentry.h"
34910
60502558e400 Replacements for the GObject Xfer API
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
34 #include "gntxfer.h"
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
35 #include "gntlabel.h"
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
36 #include "gntline.h"
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
37 #include "gntlog.h"
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
38 #include "gntmenu.h"
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
39 #include "gntmenuitem.h"
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
40 #include "gntmenuitemcheck.h"
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32715
diff changeset
41 #include "gntmenuutil.h"
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
42 #include "gntpounce.h"
21804
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21630
diff changeset
43 #include "gntstyle.h"
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
44 #include "gnttree.h"
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
45 #include "gntutils.h"
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
46 #include "gntwindow.h"
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
47
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
48 #include "gntblist.h"
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14447
diff changeset
49 #include "gntconv.h"
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
50 #include "gntstatus.h"
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
51 #include <string.h>
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
52
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16344
diff changeset
53 #define PREF_ROOT "/finch/blist"
25732
bdd010ff69fa *** Plucked rev 143e16e9 (sadrul@pidgin.im):
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25708
diff changeset
54 #define TYPING_TIMEOUT_S 4
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
55
24450
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
56 #define SHOW_EMPTY_GROUP_TIMEOUT 60
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
57
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
58 struct _FinchBuddyList {
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
59 PurpleBuddyList parent;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
60
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
61 GntWidget *window;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
62 GntWidget *tree;
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
63
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
64 GntWidget *tooltip;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34855
diff changeset
65 PurpleBlistNode *tnode; /* Who is the tooltip being displayed for? */
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
66 GList *tagged; /* A list of tagged blistnodes */
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
67
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
68 GntWidget *context;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
69 PurpleBlistNode *cnode;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
70
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
71 /* XXX: I am KISSing */
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
72 GntWidget *status; /* Dropdown with the statuses */
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
73 GntWidget *statustext; /* Status message */
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
74 int typing;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
75
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
76 GntWidget *menu;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
77 /* These are the menuitems that get regenerated */
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
78 GntMenuItem *accounts;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
79 GntMenuItem *plugins;
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
80 GntMenuItem *grouping;
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
81
24450
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
82 /* When a new group is manually added, it is empty, but we still want to show it
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
83 * for a while (SHOW_EMPTY_GROUP_TIMEOUT seconds) even if 'show empty groups' is
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
84 * not selected.
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
85 */
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
86 GList *new_group;
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
87 guint new_group_timeout;
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
88
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
89 FinchBlistManager *manager;
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
90 };
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
91
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
92 typedef struct
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
93 {
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
94 gpointer row; /* the row in the GntTree */
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
95 guint signed_timer; /* used when 'recently' signed on/off */
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
96 } FinchBlistNode;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
97
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
98 typedef enum
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
99 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
100 STATUS_PRIMITIVE = 0,
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
101 STATUS_SAVED_POPULAR,
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
102 STATUS_SAVED_ALL,
14194
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
103 STATUS_SAVED_NEW
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
104 } StatusType;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
105
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
106 typedef struct
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
107 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
108 StatusType type;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
109 union
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
110 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
111 PurpleStatusPrimitive prim;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
112 PurpleSavedStatus *saved;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
113 } u;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
114 } StatusBoxItem;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
115
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
116 static FinchBuddyList *ggblist;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
117
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
118 static void add_buddy(PurpleBuddy *buddy, FinchBuddyList *ggblist);
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
119 static void add_contact(PurpleContact *contact, FinchBuddyList *ggblist);
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
120 static void add_group(PurpleGroup *group, FinchBuddyList *ggblist);
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
121 static void add_chat(PurpleChat *chat, FinchBuddyList *ggblist);
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
122 static void add_node(PurpleBlistNode *node, FinchBuddyList *ggblist);
17876
e22e8884af80 Fix for the bug Alver reported:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17862
diff changeset
123 static void node_update(PurpleBuddyList *list, PurpleBlistNode *node);
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
124 static void draw_tooltip(FinchBuddyList *ggblist);
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
125 static void tooltip_for_buddy(PurpleBuddy *buddy, GString *str, gboolean full);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14104
diff changeset
126 static gboolean remove_typing_cb(gpointer null);
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
127 static void remove_peripherals(FinchBuddyList *ggblist);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
128 static const char * get_display_name(PurpleBlistNode *node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
129 static void savedstatus_changed(PurpleSavedStatus *now, PurpleSavedStatus *old);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
130 static void blist_show(PurpleBuddyList *list);
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
131 static void update_node_display(PurpleBlistNode *buddy,
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
132 FinchBuddyList *ggblist);
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
133 static void update_buddy_display(PurpleBuddy *buddy, FinchBuddyList *ggblist);
30039
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
134 static gboolean account_autojoin_cb(PurpleConnection *pc, gpointer null);
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
135 static void finch_request_add_buddy(PurpleBuddyList *list,
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
136 PurpleAccount *account,
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
137 const char *username, const char *grp,
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
138 const char *alias);
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
139 static void menu_group_set_cb(GntMenuItem *item, gpointer null);
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
140
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
141 /* Sort functions */
16555
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
142 static int blist_node_compare_position(PurpleBlistNode *n1, PurpleBlistNode *n2);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
143 static int blist_node_compare_text(PurpleBlistNode *n1, PurpleBlistNode *n2);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
144 static int blist_node_compare_status(PurpleBlistNode *n1, PurpleBlistNode *n2);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
145 static int blist_node_compare_log(PurpleBlistNode *n1, PurpleBlistNode *n2);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
146
21804
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21630
diff changeset
147 static int color_available;
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21630
diff changeset
148 static int color_away;
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21630
diff changeset
149 static int color_offline;
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21630
diff changeset
150 static int color_idle;
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21630
diff changeset
151
35456
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
152 /*
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
153 * Buddy List Manager functions.
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
154 */
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
155
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
156 static gboolean default_can_add_node(PurpleBlistNode *node)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
157 {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
158 gboolean offline = purple_prefs_get_bool(PREF_ROOT "/showoffline");
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
159
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
160 if (PURPLE_IS_BUDDY(node)) {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
161 PurpleBuddy *buddy = (PurpleBuddy*)node;
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
162 FinchBlistNode *fnode = purple_blist_node_get_ui_data(node);
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
163 if (!purple_buddy_get_contact(buddy))
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
164 return FALSE; /* When a new buddy is added and show-offline is set */
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
165 if (PURPLE_BUDDY_IS_ONLINE(buddy))
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
166 return TRUE; /* The buddy is online */
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
167 if (!purple_account_is_connected(purple_buddy_get_account(buddy)))
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
168 return FALSE; /* The account is disconnected. Do not show */
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
169 if (offline)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
170 return TRUE; /* We want to see offline buddies too */
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
171 if (fnode && fnode->signed_timer)
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
172 return TRUE; /* Show if the buddy just signed off */
22314
850c1c5e24b9 Pay attention to the 'show_offline' setting for the buddylist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22312
diff changeset
173 if (purple_blist_node_get_bool(node, "show_offline"))
850c1c5e24b9 Pay attention to the 'show_offline' setting for the buddylist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22312
diff changeset
174 return TRUE;
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
175 } else if (PURPLE_IS_CONTACT(node)) {
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
176 PurpleBlistNode *nd;
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
177 for (nd = purple_blist_node_get_first_child(node);
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
178 nd; nd = purple_blist_node_get_sibling_next(nd)) {
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
179 if (default_can_add_node(nd))
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
180 return TRUE;
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
181 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
182 } else if (PURPLE_IS_CHAT(node)) {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
183 PurpleChat *chat = (PurpleChat*)node;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
184 if (purple_account_is_connected(purple_chat_get_account(chat)))
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
185 return TRUE; /* Show whenever the account is online */
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
186 } else if (PURPLE_IS_GROUP(node)) {
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
187 PurpleBlistNode *nd;
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
188 gboolean empty = purple_prefs_get_bool(PREF_ROOT "/emptygroups");
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
189 if (empty)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
190 return TRUE; /* If we want to see empty groups, we can show any group */
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
191
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
192 for (nd = purple_blist_node_get_first_child(node);
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
193 nd; nd = purple_blist_node_get_sibling_next(nd)) {
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
194 if (default_can_add_node(nd))
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
195 return TRUE;
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
196 }
24450
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
197
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
198 if (ggblist && ggblist->new_group && g_list_find(ggblist->new_group, node))
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
199 return TRUE;
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
200 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
201
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
202 return FALSE;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
203 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
204
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
205 static gpointer default_find_parent(PurpleBlistNode *node)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
206 {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
207 gpointer ret = NULL;
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
208
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
209 if (PURPLE_IS_BUDDY(node) || PURPLE_IS_CONTACT(node) || PURPLE_IS_CHAT(node))
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
210 ret = purple_blist_node_get_parent(node);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
211
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
212 if (ret)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
213 add_node(ret, ggblist);
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
214
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
215 return ret;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
216 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
217
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
218 static gboolean default_create_tooltip(gpointer selected_row, GString **body, char **tool_title)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
219 {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
220 GString *str;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
221 PurpleBlistNode *node = selected_row;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
222 int lastseen = 0;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
223 char *title;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
224
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
225 str = g_string_new("");
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
226
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
227 if (PURPLE_IS_CONTACT(node)) {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
228 PurpleBuddy *pr = purple_contact_get_priority_buddy((PurpleContact*)node);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
229 gboolean offline = !PURPLE_BUDDY_IS_ONLINE(pr);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
230 gboolean showoffline = purple_prefs_get_bool(PREF_ROOT "/showoffline");
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
231 const char *name = purple_buddy_get_name(pr);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
232
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
233 title = g_strdup(name);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
234 tooltip_for_buddy(pr, str, TRUE);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
235 for (node = purple_blist_node_get_first_child(node); node; node = purple_blist_node_get_sibling_next(node)) {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
236 PurpleBuddy *buddy = (PurpleBuddy*)node;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
237 if (offline) {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
238 int value = purple_blist_node_get_int(node, "last_seen");
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
239 if (value > lastseen)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
240 lastseen = value;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
241 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
242 if (node == (PurpleBlistNode*)pr)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
243 continue;
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
244 if (!purple_account_is_connected(purple_buddy_get_account(buddy)))
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
245 continue;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
246 if (!showoffline && !PURPLE_BUDDY_IS_ONLINE(buddy))
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
247 continue;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
248 str = g_string_append(str, "\n----------\n");
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
249 tooltip_for_buddy(buddy, str, FALSE);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
250 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
251 } else if (PURPLE_IS_BUDDY(node)) {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
252 PurpleBuddy *buddy = (PurpleBuddy *)node;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
253 tooltip_for_buddy(buddy, str, TRUE);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
254 title = g_strdup(purple_buddy_get_name(buddy));
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
255 if (!PURPLE_BUDDY_IS_ONLINE((PurpleBuddy*)node))
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
256 lastseen = purple_blist_node_get_int(node, "last_seen");
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
257 } else if (PURPLE_IS_GROUP(node)) {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
258 PurpleGroup *group = (PurpleGroup *)node;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
259
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
260 g_string_append_printf(str, _("Online: %d\nTotal: %d"),
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
261 purple_counting_node_get_online_count(PURPLE_COUNTING_NODE(group)),
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
262 purple_counting_node_get_current_size(PURPLE_COUNTING_NODE(group)));
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
263
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22341
diff changeset
264 title = g_strdup(purple_group_get_name(group));
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
265 } else if (PURPLE_IS_CHAT(node)) {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
266 PurpleChat *chat = (PurpleChat *)node;
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
267 PurpleAccount *account = purple_chat_get_account(chat);
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
268
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
269 g_string_append_printf(str, _("Account: %s (%s)"),
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
270 purple_account_get_username(account),
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
271 purple_account_get_protocol_name(account));
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
272
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
273 title = g_strdup(purple_chat_get_name(chat));
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
274 } else {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
275 g_string_free(str, TRUE);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
276 return FALSE;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
277 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
278
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
279 if (lastseen > 0) {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
280 char *tmp = purple_str_seconds_to_string(time(NULL) - lastseen);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
281 g_string_append_printf(str, _("\nLast Seen: %s ago"), tmp);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
282 g_free(tmp);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
283 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
284
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
285 if (tool_title)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
286 *tool_title = title;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
287 else
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
288 g_free(title);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
289
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
290 if (body)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
291 *body = str;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
292 else
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
293 g_string_free(str, TRUE);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
294
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
295 return TRUE;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
296 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
297
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
298 static FinchBlistManager default_manager =
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
299 {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
300 "default",
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
301 N_("Default"),
22312
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
302 NULL,
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
303 NULL,
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
304 default_can_add_node,
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
305 default_find_parent,
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
306 default_create_tooltip,
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
307 {NULL, NULL, NULL, NULL}
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
308 };
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
309 static GList *managers;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
310
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
311 static FinchBlistNode *
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
312 create_finch_blist_node(PurpleBlistNode *node, gpointer row)
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
313 {
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
314 FinchBlistNode *fnode = purple_blist_node_get_ui_data(node);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
315 if (!fnode) {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
316 fnode = g_new0(FinchBlistNode, 1);
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
317 fnode->signed_timer = 0;
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
318 purple_blist_node_set_ui_data(node, fnode);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
319 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
320 fnode->row = row;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
321 return fnode;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
322 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
323
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
324 static void
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
325 reset_blist_node_ui_data(PurpleBlistNode *node)
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
326 {
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
327 FinchBlistNode *fnode = purple_blist_node_get_ui_data(node);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
328 if (fnode == NULL)
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
329 return;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
330 if (fnode->signed_timer)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
331 g_source_remove(fnode->signed_timer);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
332 g_free(fnode);
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
333 purple_blist_node_set_ui_data(node, NULL);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
334 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
335
21808
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
336 static int
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
337 get_display_color(PurpleBlistNode *node)
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
338 {
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
339 PurpleBuddy *buddy;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
340 int color = 0;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
341
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
342 if (PURPLE_IS_CONTACT(node))
24974
a81952e9babb Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents: 24951
diff changeset
343 node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
344 if (!PURPLE_IS_BUDDY(node))
21808
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
345 return 0;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
346
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
347 buddy = (PurpleBuddy*)node;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
348 if (purple_presence_is_idle(purple_buddy_get_presence(buddy))) {
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
349 color = color_idle;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
350 } else if (purple_presence_is_available(purple_buddy_get_presence(buddy))) {
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
351 color = color_available;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
352 } else if (purple_presence_is_online(purple_buddy_get_presence(buddy)) &&
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
353 !purple_presence_is_available(purple_buddy_get_presence(buddy))) {
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
354 color = color_away;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
355 } else if (!purple_presence_is_online(purple_buddy_get_presence(buddy))) {
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
356 color = color_offline;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
357 }
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
358
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
359 return color;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
360 }
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
361
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
362 static GntTextFormatFlags
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
363 get_blist_node_flag(FinchBuddyList *ggblist, PurpleBlistNode *node)
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
364 {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
365 GntTextFormatFlags flag = 0;
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
366 FinchBlistNode *fnode = purple_blist_node_get_ui_data(node);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
367
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
368 if (ggblist->tagged && g_list_find(ggblist->tagged, node))
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
369 flag |= GNT_TEXT_FLAG_BOLD;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
370
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
371 if (fnode && fnode->signed_timer)
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
372 flag |= GNT_TEXT_FLAG_BLINK;
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
373 else if (PURPLE_IS_CONTACT(node)) {
24974
a81952e9babb Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents: 24951
diff changeset
374 node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
375 fnode = purple_blist_node_get_ui_data(node);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
376 if (fnode && fnode->signed_timer)
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
377 flag |= GNT_TEXT_FLAG_BLINK;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
378 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
379
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
380 return flag;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
381 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
382
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
383 static void
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
384 blist_update_row_flags(FinchBuddyList *ggblist, PurpleBlistNode *node)
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
385 {
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
386 gnt_tree_set_row_flags(GNT_TREE(ggblist->tree), node,
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
387 get_blist_node_flag(ggblist, node));
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
388 gnt_tree_set_row_color(GNT_TREE(ggblist->tree), node, get_display_color(node));
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
389 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
390
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
391 static void
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
392 new_node(PurpleBuddyList *list, PurpleBlistNode *node)
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
393 {
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
394 }
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
395
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
396 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
397 add_node(PurpleBlistNode *node, FinchBuddyList *ggblist)
13927
c2f57a00bc1f [gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13926
diff changeset
398 {
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
399 if (purple_blist_node_get_ui_data(node))
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
400 return;
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
401
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
402 if (!ggblist->manager->can_add_node(node))
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
403 return;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
404
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
405 if (PURPLE_IS_BUDDY(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
406 add_buddy((PurpleBuddy*)node, ggblist);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
407 else if (PURPLE_IS_CONTACT(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
408 add_contact((PurpleContact*)node, ggblist);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
409 else if (PURPLE_IS_GROUP(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
410 add_group((PurpleGroup*)node, ggblist);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
411 else if (PURPLE_IS_CHAT(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
412 add_chat((PurpleChat *)node, ggblist);
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
413
13927
c2f57a00bc1f [gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13926
diff changeset
414 draw_tooltip(ggblist);
c2f57a00bc1f [gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13926
diff changeset
415 }
c2f57a00bc1f [gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13926
diff changeset
416
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
417 void finch_blist_manager_add_node(PurpleBlistNode *node)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
418 {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
419 add_node(node, ggblist);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
420 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
421
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
422 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
423 remove_tooltip(FinchBuddyList *ggblist)
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
424 {
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
425 gnt_widget_destroy(ggblist->tooltip);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
426 ggblist->tooltip = NULL;
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
427 ggblist->tnode = NULL;
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
428 }
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
429
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
430 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
431 node_remove(PurpleBuddyList *list, PurpleBlistNode *node)
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
432 {
39694
4aed5fad4da9 Remove purple_blist_[gs]et_ui_data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39693
diff changeset
433 FinchBuddyList *ggblist = FINCH_BUDDY_LIST(list);
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
434 PurpleBlistNode *parent;
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
435
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
436 if (ggblist == NULL || purple_blist_node_get_ui_data(node) == NULL)
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
437 return;
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
438
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
439 if (PURPLE_IS_GROUP(node) && ggblist->new_group) {
24450
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
440 ggblist->new_group = g_list_remove(ggblist->new_group, node);
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
441 }
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
442
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
443 gnt_tree_remove(GNT_TREE(ggblist->tree), node);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
444 reset_blist_node_ui_data(node);
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
445 if (ggblist->tagged)
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
446 ggblist->tagged = g_list_remove(ggblist->tagged, node);
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
447
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
448 parent = purple_blist_node_get_parent(node);
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
449 for (node = purple_blist_node_get_first_child(node); node;
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
450 node = purple_blist_node_get_sibling_next(node))
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
451 node_remove(list, node);
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
452
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
453 if (parent) {
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
454 if (!ggblist->manager->can_add_node(parent))
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
455 node_remove(list, parent);
17876
e22e8884af80 Fix for the bug Alver reported:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17862
diff changeset
456 else
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
457 node_update(list, parent);
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
458 }
14910
a51aca2259d0 [gaim-migrate @ 17617]
Richard Nelson <wabz@pidgin.im>
parents: 14909
diff changeset
459
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
460 draw_tooltip(ggblist);
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
461 }
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
462
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
463 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
464 node_update(PurpleBuddyList *list, PurpleBlistNode *node)
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
465 {
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
466 FinchBuddyList *ggblist;
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
467
39694
4aed5fad4da9 Remove purple_blist_[gs]et_ui_data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39693
diff changeset
468 g_return_if_fail(FINCH_IS_BUDDY_LIST(list));
14455
dec960030def [gaim-migrate @ 17101]
Ethan Blanton <elb@pidgin.im>
parents: 14450
diff changeset
469 /* It really looks like this should never happen ... but it does.
dec960030def [gaim-migrate @ 17101]
Ethan Blanton <elb@pidgin.im>
parents: 14450
diff changeset
470 This will at least emit a warning to the log when it
dec960030def [gaim-migrate @ 17101]
Ethan Blanton <elb@pidgin.im>
parents: 14450
diff changeset
471 happens, so maybe someone will figure it out. */
dec960030def [gaim-migrate @ 17101]
Ethan Blanton <elb@pidgin.im>
parents: 14450
diff changeset
472 g_return_if_fail(node != NULL);
dec960030def [gaim-migrate @ 17101]
Ethan Blanton <elb@pidgin.im>
parents: 14450
diff changeset
473
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
474 ggblist = FINCH_BUDDY_LIST(list);
17862
32f49f3a139a Fix a crash exposed by nullprpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
475 if (ggblist->window == NULL)
32f49f3a139a Fix a crash exposed by nullprpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
476 return;
32f49f3a139a Fix a crash exposed by nullprpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
477
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
478 if (purple_blist_node_get_ui_data(node)!= NULL) {
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
479 gnt_tree_change_text(GNT_TREE(ggblist->tree), node,
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
480 0, get_display_name(node));
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
481 gnt_tree_sort_row(GNT_TREE(ggblist->tree), node);
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
482 blist_update_row_flags(ggblist, node);
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
483 if (gnt_tree_get_parent_key(GNT_TREE(ggblist->tree), node) !=
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
484 ggblist->manager->find_parent(node))
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
485 node_remove(list, node);
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
486 }
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
487
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
488 if (PURPLE_IS_BUDDY(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
489 PurpleBuddy *buddy = (PurpleBuddy*)node;
39694
4aed5fad4da9 Remove purple_blist_[gs]et_ui_data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39693
diff changeset
490 add_node((PurpleBlistNode *)buddy, FINCH_BUDDY_LIST(list));
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
491 node_update(list, purple_blist_node_get_parent(node));
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
492 } else if (PURPLE_IS_CHAT(node)) {
39694
4aed5fad4da9 Remove purple_blist_[gs]et_ui_data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39693
diff changeset
493 add_node(node, FINCH_BUDDY_LIST(list));
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
494 } else if (PURPLE_IS_CONTACT(node)) {
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
495 if (purple_blist_node_get_ui_data(node)== NULL) {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
496 /* The core seems to expect the UI to add the buddies. */
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
497 for (node = purple_blist_node_get_first_child(node); node; node = purple_blist_node_get_sibling_next(node))
39694
4aed5fad4da9 Remove purple_blist_[gs]et_ui_data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39693
diff changeset
498 add_node(node, FINCH_BUDDY_LIST(list));
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
499 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
500 } else if (PURPLE_IS_GROUP(node)) {
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
501 if (!ggblist->manager->can_add_node(node))
14469
3b398f75a695 [gaim-migrate @ 17115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14467
diff changeset
502 node_remove(list, node);
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
503 else
39694
4aed5fad4da9 Remove purple_blist_[gs]et_ui_data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39693
diff changeset
504 add_node(node, FINCH_BUDDY_LIST(list));
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
505 }
24198
a8cf4ef3982a Update the tooltip if the status of the selected node changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23485
diff changeset
506 if (ggblist->tnode == node) {
a8cf4ef3982a Update the tooltip if the status of the selected node changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23485
diff changeset
507 draw_tooltip(ggblist);
a8cf4ef3982a Update the tooltip if the status of the selected node changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23485
diff changeset
508 }
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
509 }
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
510
24450
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
511 static gboolean
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
512 remove_new_empty_group(gpointer data)
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
513 {
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
514 PurpleBuddyList *list;
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
515 FinchBuddyList *ggblist;
24450
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
516
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
517 list = purple_blist_get_default();
24450
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
518 g_return_val_if_fail(list, FALSE);
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
519 ggblist = FINCH_BUDDY_LIST(list);
24450
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
520
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
521 ggblist->new_group_timeout = 0;
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
522 while (ggblist->new_group) {
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
523 PurpleBlistNode *group = ggblist->new_group->data;
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
524 ggblist->new_group = g_list_delete_link(ggblist->new_group, ggblist->new_group);
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
525 node_update(list, group);
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
526 }
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
527
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
528 return FALSE;
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
529 }
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
530
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
531 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
532 add_buddy_cb(void *data, PurpleRequestFields *allfields)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
533 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
534 const char *username = purple_request_fields_get_string(allfields, "screenname");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
535 const char *alias = purple_request_fields_get_string(allfields, "alias");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
536 const char *group = purple_request_fields_get_string(allfields, "group");
31601
8aa82480b972 Show invite message entry in Finch's Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31294
diff changeset
537 const char *invite = purple_request_fields_get_string(allfields, "invite");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
538 PurpleAccount *account = purple_request_fields_get_account(allfields, "account");
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
539 const char *error = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
540 PurpleGroup *grp;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
541 PurpleBuddy *buddy;
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
542
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
543 if (!username)
22942
2bf494f8e2a4 Change the string "screen name" to "username" everywhere. I think most
Mark Doliner <markdoliner@pidgin.im>
parents: 22935
diff changeset
544 error = _("You must provide a username for the buddy.");
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
545 else if (!group)
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
546 error = _("You must provide a group.");
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
547 else if (!account)
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
548 error = _("You must select an account.");
16982
febd8a44dce7 Show an error message when trying to add a buddy from an offline account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16981
diff changeset
549 else if (!purple_account_is_connected(account))
febd8a44dce7 Show an error message when trying to add a buddy from an offline account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16981
diff changeset
550 error = _("The selected account is not online.");
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
551
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
552 if (error)
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
553 {
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
554 finch_request_add_buddy(purple_blist_get_default(), account,
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
555 username, group, alias);
34449
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34338
diff changeset
556 purple_notify_error(NULL, _("Error"), _("Error adding buddy"),
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34338
diff changeset
557 error, purple_request_cpar_from_account(account));
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
558 return;
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
559 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
560
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
561 grp = purple_blist_find_group(group);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
562 if (!grp)
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
563 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
564 grp = purple_group_new(group);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
565 purple_blist_add_group(grp, NULL);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
566 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
567
24867
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 24799
diff changeset
568 /* XXX: Ask to merge if there's already a buddy with the same alias in the same group (#4553) */
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 24799
diff changeset
569
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
570 if ((buddy = purple_blist_find_buddy_in_group(account, username, grp)) == NULL)
24867
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 24799
diff changeset
571 {
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 24799
diff changeset
572 buddy = purple_buddy_new(account, username, alias);
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 24799
diff changeset
573 purple_blist_add_buddy(buddy, NULL, grp, NULL);
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 24799
diff changeset
574 }
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 24799
diff changeset
575
32315
2550a39e0285 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32287
diff changeset
576 purple_account_add_buddy(account, buddy, invite);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
577 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
578
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
579 static void
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
580 finch_request_add_buddy(PurpleBuddyList *list, PurpleAccount *account,
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
581 const char *username, const char *grp,
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
582 const char *alias)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
583 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
584 PurpleRequestFields *fields = purple_request_fields_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
585 PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
586 PurpleRequestField *field;
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
587
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
588 purple_request_fields_add_group(fields, group);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
589
22942
2bf494f8e2a4 Change the string "screen name" to "username" everywhere. I think most
Mark Doliner <markdoliner@pidgin.im>
parents: 22935
diff changeset
590 field = purple_request_field_string_new("screenname", _("Username"), username, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
591 purple_request_field_group_add_field(group, field);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
592
22431
06ae5eb33844 Right-clicking on a widget should trigger the context-menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22379
diff changeset
593 field = purple_request_field_string_new("alias", _("Alias (optional)"), alias, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
594 purple_request_field_group_add_field(group, field);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
595
31601
8aa82480b972 Show invite message entry in Finch's Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31294
diff changeset
596 field = purple_request_field_string_new("invite", _("Invite message (optional)"), NULL, FALSE);
8aa82480b972 Show invite message entry in Finch's Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31294
diff changeset
597 purple_request_field_group_add_field(group, field);
8aa82480b972 Show invite message entry in Finch's Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31294
diff changeset
598
22431
06ae5eb33844 Right-clicking on a widget should trigger the context-menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22379
diff changeset
599 field = purple_request_field_string_new("group", _("Add in group"), grp, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
600 purple_request_field_group_add_field(group, field);
15908
d5b3f76ff418 Group autocomplete for buddy adding
Richard Nelson <wabz@pidgin.im>
parents: 15906
diff changeset
601 purple_request_field_set_type_hint(field, "group");
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
602
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
603 field = purple_request_field_account_new("account", _("Account"), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
604 purple_request_field_account_set_show_all(field, FALSE);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
605 if (account)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
606 purple_request_field_account_set_value(field, account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
607 purple_request_field_group_add_field(group, field);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
608
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
609 purple_request_fields(NULL, _("Add Buddy"), NULL, _("Please enter buddy information."),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
610 fields,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
611 _("Add"), G_CALLBACK(add_buddy_cb),
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
612 _("Cancel"), NULL,
34332
876483829700 Request API refactoring: switch purple_request_fields to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34331
diff changeset
613 purple_request_cpar_from_account(account),
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
614 NULL);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
615 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
616
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
617 static void
22986
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
618 join_chat(PurpleChat *chat)
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
619 {
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
620 PurpleAccount *account = purple_chat_get_account(chat);
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
621 const char *name;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
622 PurpleChatConversation *conv;
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
623
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
624 name = purple_chat_get_name_only(chat);
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
625 conv = purple_conversations_find_chat_with_account(name, account);
22986
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
626
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
627 if (!conv || purple_chat_conversation_has_left(conv)) {
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
628 purple_serv_join_chat(purple_account_get_connection(account),
22986
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
629 purple_chat_get_components(chat));
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
630 } else if (conv) {
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
631 purple_conversation_present(PURPLE_CONVERSATION(conv));
22986
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
632 }
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
633 }
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
634
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
635 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
636 add_chat_cb(void *data, PurpleRequestFields *allfields)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
637 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
638 PurpleAccount *account;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
639 const char *alias, *name, *group;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
640 PurpleChat *chat;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
641 PurpleGroup *grp;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
642 GHashTable *hash = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
643 PurpleConnection *gc;
18852
cc1891434459 Add an 'auto-join' checkbox in the 'Add Chat' dialog, thanks to fmoo's
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18851
diff changeset
644 gboolean autojoin;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
645 PurpleProtocol *protocol;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
646
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
647 account = purple_request_fields_get_account(allfields, "account");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
648 name = purple_request_fields_get_string(allfields, "name");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
649 alias = purple_request_fields_get_string(allfields, "alias");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
650 group = purple_request_fields_get_string(allfields, "group");
18852
cc1891434459 Add an 'auto-join' checkbox in the 'Add Chat' dialog, thanks to fmoo's
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18851
diff changeset
651 autojoin = purple_request_fields_get_bool(allfields, "autojoin");
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
652
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
653 if (!purple_account_is_connected(account) || !name || !*name)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
654 return;
22336
ac905bb0a8ec Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22335
diff changeset
655
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
656 if (!group || !*group)
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
657 group = _("Chats");
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
658
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
659 gc = purple_account_get_connection(account);
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
660 protocol = purple_connection_get_protocol(gc);
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
661 hash = purple_protocol_chat_iface_info_defaults(protocol, gc, name);
22336
ac905bb0a8ec Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22335
diff changeset
662
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
663 chat = purple_chat_new(account, name, hash);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
664
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
665 if (chat != NULL) {
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
666 if ((grp = purple_blist_find_group(group)) == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
667 grp = purple_group_new(group);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
668 purple_blist_add_group(grp, NULL);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
669 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
670 purple_blist_add_chat(chat, grp, NULL);
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
671 purple_chat_set_alias(chat, alias);
18852
cc1891434459 Add an 'auto-join' checkbox in the 'Add Chat' dialog, thanks to fmoo's
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18851
diff changeset
672 purple_blist_node_set_bool((PurpleBlistNode*)chat, "gnt-autojoin", autojoin);
22986
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
673 if (autojoin) {
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
674 join_chat(chat);
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
675 }
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
676 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
677 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
678
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
679 static void
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
680 finch_request_add_chat(PurpleBuddyList *list, PurpleAccount *account,
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
681 PurpleGroup *grp, const char *alias, const char *name)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
682 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
683 PurpleRequestFields *fields = purple_request_fields_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
684 PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
685 PurpleRequestField *field;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
686
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
687 purple_request_fields_add_group(fields, group);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
688
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
689 field = purple_request_field_account_new("account", _("Account"), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
690 purple_request_field_account_set_show_all(field, FALSE);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
691 if (account)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
692 purple_request_field_account_set_value(field, account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
693 purple_request_field_group_add_field(group, field);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
694
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
695 field = purple_request_field_string_new("name", _("Name"), name, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
696 purple_request_field_group_add_field(group, field);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
697
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
698 field = purple_request_field_string_new("alias", _("Alias"), alias, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
699 purple_request_field_group_add_field(group, field);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
700
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22341
diff changeset
701 field = purple_request_field_string_new("group", _("Group"), grp ? purple_group_get_name(grp) : NULL, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
702 purple_request_field_group_add_field(group, field);
22976
df744a1b1bbe Setup tab-completion for groups in the 'Add Chat' dialog.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22942
diff changeset
703 purple_request_field_set_type_hint(field, "group");
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
704
18852
cc1891434459 Add an 'auto-join' checkbox in the 'Add Chat' dialog, thanks to fmoo's
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18851
diff changeset
705 field = purple_request_field_bool_new("autojoin", _("Auto-join"), FALSE);
cc1891434459 Add an 'auto-join' checkbox in the 'Add Chat' dialog, thanks to fmoo's
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18851
diff changeset
706 purple_request_field_group_add_field(group, field);
cc1891434459 Add an 'auto-join' checkbox in the 'Add Chat' dialog, thanks to fmoo's
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18851
diff changeset
707
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
708 purple_request_fields(NULL, _("Add Chat"), NULL,
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
709 _("You can edit more information from the context menu later."),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
710 fields, _("Add"), G_CALLBACK(add_chat_cb), _("Cancel"), NULL,
34332
876483829700 Request API refactoring: switch purple_request_fields to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34331
diff changeset
711 NULL, NULL);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
712 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
713
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
714 static void
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
715 add_group_cb(FinchBuddyList *ggblist, const char *group)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
716 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
717 PurpleGroup *grp;
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
718
24458
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
719 if (!group || !*group) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
720 purple_notify_error(NULL, _("Error"), _("Error adding group"),
34449
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34338
diff changeset
721 _("You must give a name for the group to add."), NULL);
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
722 g_object_unref(ggblist);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
723 return;
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
724 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
725
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
726 grp = purple_blist_find_group(group);
24458
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
727 if (!grp) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
728 grp = purple_group_new(group);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
729 purple_blist_add_group(grp, NULL);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
730 }
24458
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
731
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
732 /* Treat the group as a new group even if it had existed before. This should
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
733 * make things easier to add buddies to empty groups (new or old) without having
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
734 * to turn on 'show empty groups' setting */
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
735 ggblist->new_group = g_list_prepend(ggblist->new_group, grp);
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
736 if (ggblist->new_group_timeout)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
737 g_source_remove(ggblist->new_group_timeout);
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
738 ggblist->new_group_timeout = g_timeout_add_seconds(SHOW_EMPTY_GROUP_TIMEOUT,
24458
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
739 remove_new_empty_group, NULL);
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
740
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
741 /* Select the group */
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
742 if (ggblist->tree) {
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
743 FinchBlistNode *fnode = purple_blist_node_get_ui_data((PurpleBlistNode*)grp);
24458
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
744 if (!fnode)
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
745 add_node((PurpleBlistNode*)grp, ggblist);
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
746 gnt_tree_set_selected(GNT_TREE(ggblist->tree), grp);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
747 }
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
748
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
749 g_object_unref(ggblist);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
750 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
751
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
752 static void
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
753 finch_request_add_group(PurpleBuddyList *list)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
754 {
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
755 purple_request_input(NULL, _("Add Group"), NULL,
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
756 _("Enter the name of the group"), NULL, FALSE,
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
757 FALSE, NULL, _("Add"), G_CALLBACK(add_group_cb),
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
758 _("Cancel"), G_CALLBACK(g_object_unref), NULL,
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
759 g_object_ref(list));
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
760 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
761
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
762 static gpointer
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21855
diff changeset
763 finch_blist_get_handle(void)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
764 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
765 static int handle;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
766
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
767 return &handle;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
768 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
769
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
770 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
771 add_group(PurpleGroup *group, FinchBuddyList *ggblist)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
772 {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
773 gpointer parent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
774 PurpleBlistNode *node = (PurpleBlistNode *)group;
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
775 if (purple_blist_node_get_ui_data(node))
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
776 return;
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
777 parent = ggblist->manager->find_parent((PurpleBlistNode*)group);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
778 create_finch_blist_node(node, gnt_tree_add_row_after(GNT_TREE(ggblist->tree), group,
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
779 gnt_tree_create_row(GNT_TREE(ggblist->tree), get_display_name(node)),
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
780 parent, NULL));
16165
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
781 gnt_tree_set_expanded(GNT_TREE(ggblist->tree), node,
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
782 !purple_blist_node_get_bool(node, "collapsed"));
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
783 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
784
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
785 static const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
786 get_display_name(PurpleBlistNode *node)
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
787 {
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
788 static char text[2096];
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
789 char status[8] = " ";
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
790 const char *name = NULL;
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
791
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
792 if (PURPLE_IS_CONTACT(node))
24974
a81952e9babb Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents: 24951
diff changeset
793 node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node))); /* XXX: this can return NULL?! */
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
794
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
795 if (node == NULL)
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
796 return NULL;
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
797
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
798 if (PURPLE_IS_BUDDY(node))
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
799 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
800 PurpleBuddy *buddy = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
801 PurpleStatusPrimitive prim;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
802 PurplePresence *presence;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
803 PurpleStatus *now;
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
804 gboolean ascii = gnt_ascii_only();
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
805
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
806 presence = purple_buddy_get_presence(buddy);
18614
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
807 if (purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_MOBILE))
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
808 strncpy(status, ascii ? ":" : "☎", sizeof(status) - 1);
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
809 else {
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
810 now = purple_presence_get_active_status(presence);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
811
34855
9c289149eed4 Global replaces according to GObject status API
Ankit Vani <a@nevitus.org>
parents: 34849
diff changeset
812 prim = purple_status_type_get_primitive(purple_status_get_status_type(now));
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
813
18614
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
814 switch(prim) {
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
815 case PURPLE_STATUS_OFFLINE:
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
816 strncpy(status, ascii ? "x" : "⊗", sizeof(status) - 1);
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
817 break;
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
818 case PURPLE_STATUS_AVAILABLE:
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
819 strncpy(status, ascii ? "o" : "â—¯", sizeof(status) - 1);
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
820 break;
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
821 default:
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
822 strncpy(status, ascii ? "." : "⊖", sizeof(status) - 1);
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
823 break;
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
824 }
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
825 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
826 name = purple_buddy_get_alias(buddy);
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
827 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
828 else if (PURPLE_IS_CHAT(node))
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
829 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
830 PurpleChat *chat = (PurpleChat*)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
831 name = purple_chat_get_name(chat);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13946
diff changeset
832
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13946
diff changeset
833 strncpy(status, "~", sizeof(status) - 1);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
834 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
835 else if (PURPLE_IS_GROUP(node))
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22341
diff changeset
836 return purple_group_get_name((PurpleGroup*)node);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
837
25708
7e97dbce8223 applied changes from aa7ce93329f5ccbe74640a92b6656ae402d8eea8
Ethan Blanton <elb@pidgin.im>
parents: 24799
diff changeset
838 g_snprintf(text, sizeof(text) - 1, "%s %s", status, name);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
839
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
840 return text;
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
841 }
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
842
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
843 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
844 add_chat(PurpleChat *chat, FinchBuddyList *ggblist)
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
845 {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
846 gpointer parent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
847 PurpleBlistNode *node = (PurpleBlistNode *)chat;
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
848 if (purple_blist_node_get_ui_data(node))
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
849 return;
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
850 if (!purple_account_is_connected(purple_chat_get_account(chat)))
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
851 return;
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
852
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
853 parent = ggblist->manager->find_parent((PurpleBlistNode*)chat);
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
854
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
855 create_finch_blist_node(node, gnt_tree_add_row_after(GNT_TREE(ggblist->tree), chat,
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14021
diff changeset
856 gnt_tree_create_row(GNT_TREE(ggblist->tree), get_display_name(node)),
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
857 parent, NULL));
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
858 }
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
859
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
860 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
861 add_contact(PurpleContact *contact, FinchBuddyList *ggblist)
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
862 {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
863 gpointer parent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
864 PurpleBlistNode *node = (PurpleBlistNode*)contact;
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
865 const char *name;
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
866
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
867 if (purple_blist_node_get_ui_data(node))
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
868 return;
21808
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
869
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
870 name = get_display_name(node);
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
871 if (name == NULL)
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
872 return;
21808
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
873
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
874 parent = ggblist->manager->find_parent((PurpleBlistNode*)contact);
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
875
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
876 create_finch_blist_node(node, gnt_tree_add_row_after(GNT_TREE(ggblist->tree), contact,
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
877 gnt_tree_create_row(GNT_TREE(ggblist->tree), name),
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
878 parent, NULL));
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
879
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
880 gnt_tree_set_expanded(GNT_TREE(ggblist->tree), contact, FALSE);
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
881 }
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
882
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
883 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
884 add_buddy(PurpleBuddy *buddy, FinchBuddyList *ggblist)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
885 {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
886 gpointer parent;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
887 PurpleBlistNode *node = (PurpleBlistNode *)buddy;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
888 PurpleContact *contact;
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
889
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
890 if (purple_blist_node_get_ui_data(node))
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
891 return;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
892
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
893 contact = purple_buddy_get_contact(buddy);
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
894 parent = ggblist->manager->find_parent((PurpleBlistNode*)buddy);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
895
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
896 create_finch_blist_node(node, gnt_tree_add_row_after(GNT_TREE(ggblist->tree), buddy,
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14021
diff changeset
897 gnt_tree_create_row(GNT_TREE(ggblist->tree), get_display_name(node)),
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
898 parent, NULL));
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
899
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
900 blist_update_row_flags(ggblist, (PurpleBlistNode *)buddy);
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
901 if (buddy == purple_contact_get_priority_buddy(contact)) {
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
902 blist_update_row_flags(ggblist, (PurpleBlistNode *)contact);
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
903 }
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
904 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
905
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
906 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
907 selection_activate(GntWidget *widget, FinchBuddyList *ggblist)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
908 {
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
909 GntTree *tree = GNT_TREE(ggblist->tree);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
910 PurpleBlistNode *node = gnt_tree_get_selection_data(tree);
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
911
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13993
diff changeset
912 if (!node)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13993
diff changeset
913 return;
22986
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
914
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
915 if (PURPLE_IS_CONTACT(node))
24974
a81952e9babb Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents: 24951
diff changeset
916 node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13993
diff changeset
917
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
918 if (PURPLE_IS_BUDDY(node))
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
919 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
920 PurpleBuddy *buddy = (PurpleBuddy *)node;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
921 PurpleIMConversation *im;
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
922 im = purple_conversations_find_im_with_account(purple_buddy_get_name(buddy),
18134
47b947e1c8f1 present existing conversation window if one exists
Richard Nelson <wabz@pidgin.im>
parents: 18132
diff changeset
923 purple_buddy_get_account(buddy));
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
924 if (!im) {
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
925 im = purple_im_conversation_new(purple_buddy_get_account(buddy),
18134
47b947e1c8f1 present existing conversation window if one exists
Richard Nelson <wabz@pidgin.im>
parents: 18132
diff changeset
926 purple_buddy_get_name(buddy));
47b947e1c8f1 present existing conversation window if one exists
Richard Nelson <wabz@pidgin.im>
parents: 18132
diff changeset
927 } else {
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
928 FinchConv *ggconv = FINCH_CONV(PURPLE_CONVERSATION(im));
18134
47b947e1c8f1 present existing conversation window if one exists
Richard Nelson <wabz@pidgin.im>
parents: 18132
diff changeset
929 gnt_window_present(ggconv->window);
47b947e1c8f1 present existing conversation window if one exists
Richard Nelson <wabz@pidgin.im>
parents: 18132
diff changeset
930 }
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
931 finch_conversation_set_active(PURPLE_CONVERSATION(im));
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
932 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
933 else if (PURPLE_IS_CHAT(node))
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
934 {
22986
a02bb7b14dca Check to see if we are already in a room before attempting to join. If
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22976
diff changeset
935 join_chat((PurpleChat*)node);
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
936 }
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
937 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
938
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
939 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
940 append_proto_menu(GntMenu *menu, PurpleConnection *gc, PurpleBlistNode *node)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
941 {
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
942 GList *list;
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
943 PurpleProtocol *protocol = purple_connection_get_protocol(gc);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
944
39901
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
945 if (!PURPLE_PROTOCOL_IMPLEMENTS(protocol, CLIENT, blist_node_menu)) {
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
946 return;
39901
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
947 }
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
948
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
949 for(list = purple_protocol_client_iface_blist_node_menu(protocol, node); list;
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
950 list = g_list_delete_link(list, list))
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
951 {
39481
4db28449567d Rename PurpleMenuAction to PurpleActionMenu
Gary Kramlich <grim@reaperworld.com>
parents: 39479
diff changeset
952 PurpleActionMenu *act = (PurpleActionMenu *) list->data;
30060
461d1acb4a54 Fix a crash caused by context menus for sametime buddies.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 30039
diff changeset
953 if (!act)
461d1acb4a54 Fix a crash caused by context menus for sametime buddies.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 30039
diff changeset
954 continue;
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
955 purple_action_menu_set_data(act, node);
35494
e631108a5464 Fix namespace issues in libgnt and finch.
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
956 finch_append_menu_action(menu, act, node);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
957 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
958 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
959
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
960 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
961 add_custom_action(GntMenu *menu, const char *label, PurpleCallback callback,
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
962 gpointer data)
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
963 {
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
964 PurpleActionMenu *action = purple_action_menu_new(label, callback, data, NULL);
35494
e631108a5464 Fix namespace issues in libgnt and finch.
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
965 finch_append_menu_action(menu, action, NULL);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
966 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
967
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
968 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
969 chat_components_edit_ok(PurpleChat *chat, PurpleRequestFields *allfields)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
970 {
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
971 GList *groups, *fields;
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
972
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
973 for (groups = purple_request_fields_get_groups(allfields); groups; groups = groups->next) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
974 fields = purple_request_field_group_get_fields(groups->data);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
975 for (; fields; fields = fields->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
976 PurpleRequestField *field = fields->data;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
977 const char *id;
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
978 char *val;
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
979
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
980 id = purple_request_field_get_id(field);
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
981 if (purple_request_field_get_field_type(field) == PURPLE_REQUEST_FIELD_INTEGER)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
982 val = g_strdup_printf("%d", purple_request_field_int_get_value(field));
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
983 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
984 val = g_strdup(purple_request_field_string_get_value(field));
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
985
22935
80562b52fb71 Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22579
diff changeset
986 if (!val) {
80562b52fb71 Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22579
diff changeset
987 g_hash_table_remove(purple_chat_get_components(chat), id);
80562b52fb71 Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22579
diff changeset
988 } else {
80562b52fb71 Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22579
diff changeset
989 g_hash_table_replace(purple_chat_get_components(chat), g_strdup(id), val); /* val should not be free'd */
80562b52fb71 Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22579
diff changeset
990 }
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
991 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
992 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
993 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
994
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
995 static void
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
996 chat_components_edit(PurpleBlistNode *selected, PurpleChat *chat)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
997 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
998 PurpleRequestFields *fields = purple_request_fields_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
999 PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1000 PurpleRequestField *field;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1001 GList *parts, *iter;
36555
fc17a4351e63 Replaced struct proto_chat_entry with PurpleProtocolChatEntry
Ankit Vani <a@nevitus.org>
parents: 36544
diff changeset
1002 PurpleProtocolChatEntry *pce;
22335
f6715418a9a8 Update finch to not touch the internals of PurpleAccount. This also includes a change I made to reduce the Cyclomatic Complexity of one of the functions.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22334
diff changeset
1003 PurpleConnection *gc;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1004
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1005 purple_request_fields_add_group(fields, group);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1006
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1007 gc = purple_account_get_connection(purple_chat_get_account(chat));
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
1008 parts = purple_protocol_chat_iface_info(purple_connection_get_protocol(gc), gc);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1009
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1010 for (iter = parts; iter; iter = iter->next) {
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1011 pce = iter->data;
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1012 if (pce->is_int) {
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1013 int val;
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1014 const char *str = g_hash_table_lookup(purple_chat_get_components(chat), pce->identifier);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1015 if (!str || sscanf(str, "%d", &val) != 1)
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1016 val = pce->min;
33935
e740bbb8350c Request API: fix integer fields, add bounds to them
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32849
diff changeset
1017 field = purple_request_field_int_new(pce->identifier, pce->label, val, INT_MIN, INT_MAX);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1018 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1019 field = purple_request_field_string_new(pce->identifier, pce->label,
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1020 g_hash_table_lookup(purple_chat_get_components(chat), pce->identifier), FALSE);
22935
80562b52fb71 Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22579
diff changeset
1021 if (pce->secret)
80562b52fb71 Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22579
diff changeset
1022 purple_request_field_string_set_masked(field, TRUE);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1023 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1024
22935
80562b52fb71 Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22579
diff changeset
1025 if (pce->required)
80562b52fb71 Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22579
diff changeset
1026 purple_request_field_set_required(field, TRUE);
80562b52fb71 Fine tune the edit-settings dialog (e.g., mark fields as masked or
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22579
diff changeset
1027
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1028 purple_request_field_group_add_field(group, field);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1029 g_free(pce);
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1030 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1031
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1032 g_list_free(parts);
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1033
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1034 purple_request_fields(NULL, _("Edit Chat"), NULL, _("Please Update the necessary fields."),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
1035 fields, _("Edit"), G_CALLBACK(chat_components_edit_ok), _("Cancel"), NULL,
34332
876483829700 Request API refactoring: switch purple_request_fields to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34331
diff changeset
1036 NULL, chat);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1037 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1038
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1039 static void
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1040 autojoin_toggled(GntMenuItem *item, gpointer data)
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1041 {
39481
4db28449567d Rename PurpleMenuAction to PurpleActionMenu
Gary Kramlich <grim@reaperworld.com>
parents: 39479
diff changeset
1042 PurpleActionMenu *action = data;
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
1043 purple_blist_node_set_bool(purple_action_menu_get_data(action), "gnt-autojoin",
15991
1efb6bd8ba3f Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15931
diff changeset
1044 gnt_menuitem_check_get_checked(GNT_MENU_ITEM_CHECK(item)));
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1045 }
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1046
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1047 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1048 create_chat_menu(GntMenu *menu, PurpleChat *chat)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1049 {
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
1050 PurpleActionMenu *action = purple_action_menu_new(_("Auto-join"), NULL, chat, NULL);
32287
c8cf9b704a49 Hide-a-PurpleMenuAction.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 32254
diff changeset
1051 GntMenuItem *check = gnt_menuitem_check_new(
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
1052 purple_action_menu_get_label(action));
15991
1efb6bd8ba3f Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15931
diff changeset
1053 gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(check),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1054 purple_blist_node_get_bool((PurpleBlistNode*)chat, "gnt-autojoin"));
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1055 gnt_menu_add_item(menu, check);
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1056 gnt_menuitem_set_callback(check, autojoin_toggled, action);
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1057 g_signal_connect_swapped(G_OBJECT(menu), "destroy",
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
1058 G_CALLBACK(purple_action_menu_free), action);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1059
38651
966bb404064f finch: add protocol menu to blist chats
Dylan Simon <dylan@dylex.net>
parents: 38433
diff changeset
1060 /* Protocol actions */
966bb404064f finch: add protocol menu to blist chats
Dylan Simon <dylan@dylex.net>
parents: 38433
diff changeset
1061 append_proto_menu(menu,
966bb404064f finch: add protocol menu to blist chats
Dylan Simon <dylan@dylex.net>
parents: 38433
diff changeset
1062 purple_account_get_connection(purple_chat_get_account(chat)),
966bb404064f finch: add protocol menu to blist chats
Dylan Simon <dylan@dylex.net>
parents: 38433
diff changeset
1063 (PurpleBlistNode*)chat);
966bb404064f finch: add protocol menu to blist chats
Dylan Simon <dylan@dylex.net>
parents: 38433
diff changeset
1064
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1065 add_custom_action(menu, _("Edit Settings"), (PurpleCallback)chat_components_edit, chat);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1066 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1067
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1068 static void
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
1069 finch_add_buddy(PurpleBlistNode *selected, PurpleGroup *grp)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1070 {
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22341
diff changeset
1071 purple_blist_request_add_buddy(NULL, NULL, grp ? purple_group_get_name(grp) : NULL, NULL);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1072 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1073
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1074 static void
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
1075 finch_add_group(PurpleBlistNode *selected, PurpleGroup *grp)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1076 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1077 purple_blist_request_add_group();
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1078 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1079
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1080 static void
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
1081 finch_add_chat(PurpleBlistNode *selected, PurpleGroup *grp)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1082 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1083 purple_blist_request_add_chat(NULL, grp, NULL, NULL);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1084 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1085
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1086 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1087 create_group_menu(GntMenu *menu, PurpleGroup *group)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1088 {
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1089 add_custom_action(menu, _("Add Buddy"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1090 PURPLE_CALLBACK(finch_add_buddy), group);
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1091 add_custom_action(menu, _("Add Chat"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1092 PURPLE_CALLBACK(finch_add_chat), group);
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1093 add_custom_action(menu, _("Add Group"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1094 PURPLE_CALLBACK(finch_add_group), group);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1095 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1096
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17366
diff changeset
1097 gpointer finch_retrieve_user_info(PurpleConnection *conn, const char *name)
17360
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17295
diff changeset
1098 {
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17295
diff changeset
1099 PurpleNotifyUserInfo *info = purple_notify_user_info_new();
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17366
diff changeset
1100 gpointer uihandle;
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31601
diff changeset
1101 purple_notify_user_info_add_pair_plaintext(info, _("Information"), _("Retrieving..."));
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17366
diff changeset
1102 uihandle = purple_notify_userinfo(conn, name, info, NULL, NULL);
17360
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17295
diff changeset
1103 purple_notify_user_info_destroy(info);
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17295
diff changeset
1104
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
1105 purple_serv_get_info(conn, name);
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17366
diff changeset
1106 return uihandle;
17360
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17295
diff changeset
1107 }
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17295
diff changeset
1108
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1109 static void
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
1110 finch_blist_get_buddy_info_cb(PurpleBlistNode *selected, PurpleBuddy *buddy)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1111 {
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1112 finch_retrieve_user_info(purple_account_get_connection(purple_buddy_get_account(buddy)), purple_buddy_get_name(buddy));
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1113 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1114
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1115 static void
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
1116 finch_blist_menu_send_file_cb(PurpleBlistNode *selected, PurpleBuddy *buddy)
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1117 {
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
1118 purple_serv_send_file(purple_account_get_connection(purple_buddy_get_account(buddy)), purple_buddy_get_name(buddy), NULL);
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1119 }
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1120
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1121 static void
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
1122 finch_blist_pounce_node_cb(PurpleBlistNode *selected, PurpleBlistNode *node)
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1123 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1124 PurpleBuddy *b;
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1125 if (PURPLE_IS_CONTACT(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1126 b = purple_contact_get_priority_buddy((PurpleContact *)node);
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1127 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1128 b = (PurpleBuddy *)node;
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1129 finch_pounce_editor_show(purple_buddy_get_account(b), purple_buddy_get_name(b), NULL);
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1130 }
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1131
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1132 static void
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1133 toggle_block_buddy(GntMenuItem *item, gpointer buddy)
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1134 {
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1135 gboolean block = gnt_menuitem_check_get_checked(GNT_MENU_ITEM_CHECK(item));
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1136 PurpleAccount *account = purple_buddy_get_account(buddy);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1137 const char *name = purple_buddy_get_name(buddy);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1138
34584
ed2747e0598c Refactored finch to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 33935
diff changeset
1139 block ? purple_account_privacy_deny(account, name) :
ed2747e0598c Refactored finch to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 33935
diff changeset
1140 purple_account_privacy_allow(account, name);
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1141 }
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1142
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1143 static void
24504
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1144 toggle_show_offline(GntMenuItem *item, gpointer buddy)
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1145 {
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1146 purple_blist_node_set_bool(buddy, "show_offline",
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1147 !purple_blist_node_get_bool(buddy, "show_offline"));
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1148 if (!ggblist->manager->can_add_node(buddy))
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1149 node_remove(purple_blist_get_default(), buddy);
24504
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1150 else
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1151 node_update(purple_blist_get_default(), buddy);
24504
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1152 }
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1153
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1154 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1155 create_buddy_menu(GntMenu *menu, PurpleBuddy *buddy)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1156 {
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1157 PurpleAccount *account;
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1158 gboolean permitted;
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1159 GntMenuItem *item;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
1160 PurpleProtocol *protocol;
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1161 PurpleConnection *gc = purple_account_get_connection(purple_buddy_get_account(buddy));
22335
f6715418a9a8 Update finch to not touch the internals of PurpleAccount. This also includes a change I made to reduce the Cyclomatic Complexity of one of the functions.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22334
diff changeset
1162
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
1163 protocol = purple_connection_get_protocol(gc);
39759
ea1401483849 Rename *_GET_*_IFACE to more standard *_GET_IFACE.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39698
diff changeset
1164 if (protocol && PURPLE_PROTOCOL_IMPLEMENTS(protocol, SERVER, get_info))
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1165 {
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1166 add_custom_action(menu, _("Get Info"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1167 PURPLE_CALLBACK(finch_blist_get_buddy_info_cb), buddy);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1168 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1169
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1170 add_custom_action(menu, _("Add Buddy Pounce"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1171 PURPLE_CALLBACK(finch_blist_pounce_node_cb), buddy);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1172
38827
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1173 if (PURPLE_IS_PROTOCOL_XFER(protocol))
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1174 {
38827
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1175 if (purple_protocol_xfer_can_receive(
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1176 PURPLE_PROTOCOL_XFER(protocol),
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1177 gc,
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1178 purple_buddy_get_name(buddy))
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1179 ) {
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1180 add_custom_action(menu, _("Send File"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1181 PURPLE_CALLBACK(finch_blist_menu_send_file_cb), buddy);
38827
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1182 }
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1183 }
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1184
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1185 account = purple_buddy_get_account(buddy);
34584
ed2747e0598c Refactored finch to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 33935
diff changeset
1186 permitted = purple_account_privacy_check(account, purple_buddy_get_name(buddy));
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1187
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1188 item = gnt_menuitem_check_new(_("Blocked"));
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1189 gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item), !permitted);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1190 gnt_menuitem_set_callback(item, toggle_block_buddy, buddy);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1191 gnt_menu_add_item(menu, item);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
1192
24504
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1193 item = gnt_menuitem_check_new(_("Show when offline"));
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1194 gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item), purple_blist_node_get_bool((PurpleBlistNode*)buddy, "show_offline"));
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1195 gnt_menuitem_set_callback(item, toggle_show_offline, buddy);
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1196 gnt_menu_add_item(menu, item);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1197
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1198 /* Protocol actions */
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1199 append_proto_menu(menu,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1200 purple_account_get_connection(purple_buddy_get_account(buddy)),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1201 (PurpleBlistNode*)buddy);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1202 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1203
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1204 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1205 append_extended_menu(GntMenu *menu, PurpleBlistNode *node)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1206 {
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1207 GList *iter;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1208
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1209 for (iter = purple_blist_node_get_extended_menu(node);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1210 iter; iter = g_list_delete_link(iter, iter))
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1211 {
35494
e631108a5464 Fix namespace issues in libgnt and finch.
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
1212 finch_append_menu_action(menu, iter->data, node);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1213 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1214 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1215
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1216 /* Xerox'd from gtkdialogs.c:purple_gtkdialogs_remove_contact_cb */
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1217 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1218 remove_contact(PurpleContact *contact)
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1219 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1220 PurpleBlistNode *bnode, *cnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1221 PurpleGroup *group;
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1222
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1223 cnode = (PurpleBlistNode *)contact;
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1224 group = (PurpleGroup*)purple_blist_node_get_parent(cnode);
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1225 for (bnode = purple_blist_node_get_first_child(cnode); bnode; bnode = purple_blist_node_get_sibling_next(bnode)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1226 PurpleBuddy *buddy = (PurpleBuddy*)bnode;
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1227 PurpleAccount *account = purple_buddy_get_account(buddy);
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1228 if (purple_account_is_connected(account))
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1229 purple_account_remove_buddy(account, buddy, group);
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1230 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1231 purple_blist_remove_contact(contact);
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1232 }
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1233
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1234 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1235 rename_blist_node(PurpleBlistNode *node, const char *newname)
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1236 {
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1237 const char *name = newname;
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1238 if (name && !*name)
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1239 name = NULL;
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1240
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1241 if (PURPLE_IS_CONTACT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1242 PurpleContact *contact = (PurpleContact*)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1243 PurpleBuddy *buddy = purple_contact_get_priority_buddy(contact);
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
1244 purple_contact_set_alias(contact, name);
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
1245 purple_buddy_set_local_alias(buddy, name);
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
1246 purple_serv_alias_buddy(buddy);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1247 } else if (PURPLE_IS_BUDDY(node)) {
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
1248 purple_buddy_set_local_alias((PurpleBuddy*)node, name);
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
1249 purple_serv_alias_buddy((PurpleBuddy*)node);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1250 } else if (PURPLE_IS_CHAT(node))
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
1251 purple_chat_set_alias((PurpleChat*)node, name);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1252 else if (PURPLE_IS_GROUP(node) && (name != NULL))
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
1253 purple_group_set_name((PurpleGroup*)node, name);
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1254 else
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1255 g_return_if_reached();
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1256 }
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1257
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1258 static void
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
1259 finch_blist_rename_node_cb(PurpleBlistNode *selected, PurpleBlistNode *node)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1260 {
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1261 const char *name = NULL;
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1262 char *prompt;
16344
4f2b448b7559 Use 'alias' instead of 'rename' for non-group nodes. Thankfully, this does not introduce new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
1263 const char *text;
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1264
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1265 if (PURPLE_IS_CONTACT(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1266 name = purple_contact_get_alias((PurpleContact*)node);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1267 else if (PURPLE_IS_BUDDY(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1268 name = purple_buddy_get_contact_alias((PurpleBuddy*)node);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1269 else if (PURPLE_IS_CHAT(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1270 name = purple_chat_get_name((PurpleChat*)node);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1271 else if (PURPLE_IS_GROUP(node))
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22341
diff changeset
1272 name = purple_group_get_name((PurpleGroup*)node);
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1273 else
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1274 g_return_if_reached();
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1275
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1276 prompt = g_strdup_printf(_("Please enter the new name for %s"), name);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1277
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1278 text = PURPLE_IS_GROUP(node) ? _("Rename") : _("Set Alias");
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1279 purple_request_input(node, text, prompt, _("Enter empty string to reset the name."),
16344
4f2b448b7559 Use 'alias' instead of 'rename' for non-group nodes. Thankfully, this does not introduce new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
1280 name, FALSE, FALSE, NULL, text, G_CALLBACK(rename_blist_node),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
1281 _("Cancel"), NULL,
34329
ddbc1337332c Request API refactoring: introduce PurpleRequestCommonParameters and switch purple_request_input to it
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33935
diff changeset
1282 NULL, node);
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1283
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1284 g_free(prompt);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1285 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1286
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1287
22491
06d2ee82aa58 Fix showing a contact's log, and don't access struct internals
Richard Nelson <wabz@pidgin.im>
parents: 22431
diff changeset
1288 static void showlog_cb(PurpleBlistNode *sel, PurpleBlistNode *node)
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1289 {
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1290 PurpleLogType type;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1291 PurpleAccount *account;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1292 char *name = NULL;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1293
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1294 if (PURPLE_IS_BUDDY(node)) {
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1295 PurpleBuddy *b = (PurpleBuddy*) node;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1296 type = PURPLE_LOG_IM;
24951
d0837696fd3a Struct hiding for Finch. PurpleChat:alias and PurpleContact:totalsize are still used.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
1297 name = g_strdup(purple_buddy_get_name(b));
d0837696fd3a Struct hiding for Finch. PurpleChat:alias and PurpleContact:totalsize are still used.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
1298 account = purple_buddy_get_account(b);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1299 } else if (PURPLE_IS_CHAT(node)) {
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1300 PurpleChat *c = (PurpleChat*) node;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
1301 PurpleProtocol *protocol = NULL;
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1302 type = PURPLE_LOG_CHAT;
24951
d0837696fd3a Struct hiding for Finch. PurpleChat:alias and PurpleContact:totalsize are still used.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
1303 account = purple_chat_get_account(c);
36626
18fc361b3704 Renamed purple_find_protocol_info to purple_protocols_find
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
1304 protocol = purple_protocols_find(purple_account_get_protocol_id(account));
36632
1f0650e7b1b5 Refactored finch and a bit of libpurple plugins to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 36626
diff changeset
1305 if (protocol) {
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
1306 name = purple_protocol_chat_iface_get_name(protocol, purple_chat_get_components(c));
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1307 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1308 } else if (PURPLE_IS_CONTACT(node)) {
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1309 finch_log_show_contact((PurpleContact *)node);
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1310 return;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1311 } else {
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1312 /* This callback should not have been registered for a node
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1313 * that doesn't match the type of one of the blocks above. */
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1314 g_return_if_reached();
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1315 }
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1316
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1317 if (name && account) {
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1318 finch_log_show(type, name, account);
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1319 g_free(name);
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1320 }
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1321 }
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1322
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1323
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1324 /* Xeroxed from gtkdialogs.c:purple_gtkdialogs_remove_group_cb*/
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1325 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1326 remove_group(PurpleGroup *group)
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1327 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1328 PurpleBlistNode *cnode, *bnode;
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1329
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1330 cnode = purple_blist_node_get_first_child(((PurpleBlistNode*)group));
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1331
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1332 while (cnode) {
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1333 if (PURPLE_IS_CONTACT(cnode)) {
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1334 bnode = purple_blist_node_get_first_child(cnode);
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1335 cnode = purple_blist_node_get_sibling_next(cnode);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1336 while (bnode) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1337 PurpleBuddy *buddy;
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1338 if (PURPLE_IS_BUDDY(bnode)) {
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1339 PurpleAccount *account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1340 buddy = (PurpleBuddy*)bnode;
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1341 bnode = purple_blist_node_get_sibling_next(bnode);
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1342 account = purple_buddy_get_account(buddy);
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1343 if (purple_account_is_connected(account)) {
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1344 purple_account_remove_buddy(account, buddy, group);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1345 purple_blist_remove_buddy(buddy);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1346 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1347 } else {
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1348 bnode = purple_blist_node_get_sibling_next(bnode);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1349 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1350 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1351 } else if (PURPLE_IS_CHAT(cnode)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1352 PurpleChat *chat = (PurpleChat *)cnode;
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1353 cnode = purple_blist_node_get_sibling_next(cnode);
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
1354 if (purple_account_is_connected(purple_chat_get_account(chat)))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1355 purple_blist_remove_chat(chat);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1356 } else {
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1357 cnode = purple_blist_node_get_sibling_next(cnode);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1358 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1359 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1360
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1361 purple_blist_remove_group(group);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1362 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1363
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1364 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1365 finch_blist_remove_node(PurpleBlistNode *node)
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1366 {
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1367 if (PURPLE_IS_CONTACT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1368 remove_contact((PurpleContact*)node);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1369 } else if (PURPLE_IS_BUDDY(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1370 PurpleBuddy *buddy = (PurpleBuddy*)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1371 PurpleGroup *group = purple_buddy_get_group(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1372 purple_account_remove_buddy(purple_buddy_get_account(buddy), buddy, group);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1373 purple_blist_remove_buddy(buddy);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1374 } else if (PURPLE_IS_CHAT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1375 purple_blist_remove_chat((PurpleChat*)node);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1376 } else if (PURPLE_IS_GROUP(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1377 remove_group((PurpleGroup*)node);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1378 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1379 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1380
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1381 static void
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
1382 finch_blist_remove_node_cb(PurpleBlistNode *selected, PurpleBlistNode *node)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1383 {
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
1384 PurpleAccount *account = NULL;
14260
a21577fbb4d2 [gaim-migrate @ 16870]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14194
diff changeset
1385 char *primary;
a21577fbb4d2 [gaim-migrate @ 16870]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14194
diff changeset
1386 const char *name, *sec = NULL;
14126
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1387
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1388 if (PURPLE_IS_CONTACT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1389 PurpleContact *c = (PurpleContact*)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1390 name = purple_contact_get_alias(c);
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
1391 if (purple_counting_node_get_total_size(PURPLE_COUNTING_NODE(c)) > 1)
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1392 sec = _("Removing this contact will also remove all the buddies in the contact");
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1393 } else if (PURPLE_IS_BUDDY(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1394 name = purple_buddy_get_name((PurpleBuddy*)node);
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
1395 account = purple_buddy_get_account((PurpleBuddy*)node);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1396 } else if (PURPLE_IS_CHAT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1397 name = purple_chat_get_name((PurpleChat*)node);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1398 } else if (PURPLE_IS_GROUP(node)) {
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22341
diff changeset
1399 name = purple_group_get_name((PurpleGroup*)node);
14126
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1400 sec = _("Removing this group will also remove all the buddies in the group");
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1401 }
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1402 else
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1403 return;
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1404
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1405 primary = g_strdup_printf(_("Are you sure you want to remove %s?"), name);
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1406
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1407 /* XXX: anything to do with the returned ui-handle? */
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1408 purple_request_action(node, _("Confirm Remove"),
14126
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1409 primary, sec,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16478
diff changeset
1410 1,
34331
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
1411 purple_request_cpar_from_account(account),
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1412 node, 2,
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
1413 _("Remove"), finch_blist_remove_node,
14126
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1414 _("Cancel"), NULL);
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1415 g_free(primary);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1416 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1417
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1418 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1419 finch_blist_toggle_tag_buddy(PurpleBlistNode *node)
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1420 {
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1421 GList *iter;
15377
f45f57e922a7 [gaim-migrate @ 18106]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15244
diff changeset
1422 if (node == NULL)
f45f57e922a7 [gaim-migrate @ 18106]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15244
diff changeset
1423 return;
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1424 if (ggblist->tagged && (iter = g_list_find(ggblist->tagged, node)) != NULL) {
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1425 ggblist->tagged = g_list_delete_link(ggblist->tagged, iter);
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1426 } else {
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1427 ggblist->tagged = g_list_prepend(ggblist->tagged, node);
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1428 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1429 if (PURPLE_IS_CONTACT(node))
24974
a81952e9babb Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents: 24951
diff changeset
1430 update_buddy_display(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)), ggblist);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1431 else if (PURPLE_IS_BUDDY(node))
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1432 update_buddy_display((PurpleBuddy*)node, ggblist);
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1433 else
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1434 update_node_display(node, ggblist);
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1435 }
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1436
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1437 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1438 finch_blist_place_tagged(PurpleBlistNode *target)
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1439 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1440 PurpleGroup *tg = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1441 PurpleContact *tc = NULL;
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1442
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1443 if (PURPLE_IS_GROUP(target))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1444 tg = (PurpleGroup*)target;
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1445 else if (PURPLE_IS_BUDDY(target)) {
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1446 tc = (PurpleContact*)purple_blist_node_get_parent(target);
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1447 tg = (PurpleGroup*)purple_blist_node_get_parent((PurpleBlistNode*)tc);
39901
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1448 } else if (PURPLE_IS_CONTACT(target)) {
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1449 tc = (PurpleContact *)target;
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1450 tg = (PurpleGroup *)purple_blist_node_get_parent(target);
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1451 } else if (PURPLE_IS_CHAT(target)) {
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1452 tg = (PurpleGroup*)purple_blist_node_get_parent(target);
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1453 } else {
39901
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1454 return;
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1455 }
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1456
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1457 if (ggblist->tagged) {
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1458 GList *list = ggblist->tagged;
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1459 ggblist->tagged = NULL;
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1460 while (list) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1461 PurpleBlistNode *node = list->data;
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1462 list = g_list_delete_link(list, list);
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1463
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1464 if (PURPLE_IS_GROUP(node)) {
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1465 update_node_display(node, ggblist);
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1466 /* Add the group after the current group */
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1467 purple_blist_add_group((PurpleGroup*)node, (PurpleBlistNode*)tg);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1468 } else if (PURPLE_IS_CONTACT(node)) {
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1469 update_buddy_display(purple_contact_get_priority_buddy((PurpleContact*)node), ggblist);
24974
a81952e9babb Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents: 24951
diff changeset
1470 if (PURPLE_BLIST_NODE(tg) == target) {
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1471 /* The target is a group, just add the contact to the group. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1472 purple_blist_add_contact((PurpleContact*)node, tg, NULL);
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1473 } else if (tc) {
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1474 /* The target is either a buddy, or a contact. Merge with that contact. */
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34855
diff changeset
1475 purple_contact_merge((PurpleContact*)node, (PurpleBlistNode*)tc);
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1476 } else {
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1477 /* The target is a chat. Add the contact to the group after this chat. */
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1478 purple_blist_add_contact((PurpleContact*)node, NULL, target);
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1479 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1480 } else if (PURPLE_IS_BUDDY(node)) {
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1481 update_buddy_display((PurpleBuddy*)node, ggblist);
24974
a81952e9babb Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents: 24951
diff changeset
1482 if (PURPLE_BLIST_NODE(tg) == target) {
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1483 /* The target is a group. Add this buddy in a new contact under this group. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1484 purple_blist_add_buddy((PurpleBuddy*)node, NULL, tg, NULL);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1485 } else if (PURPLE_IS_CONTACT(target)) {
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1486 /* Add to the contact. */
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1487 purple_blist_add_buddy((PurpleBuddy*)node, tc, NULL, NULL);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1488 } else if (PURPLE_IS_BUDDY(target)) {
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1489 /* Add to the contact after the selected buddy. */
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1490 purple_blist_add_buddy((PurpleBuddy*)node, NULL, NULL, target);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1491 } else if (PURPLE_IS_CHAT(target)) {
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1492 /* Add to the selected chat's group. */
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1493 purple_blist_add_buddy((PurpleBuddy*)node, NULL, tg, NULL);
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1494 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1495 } else if (PURPLE_IS_CHAT(node)) {
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1496 update_node_display(node, ggblist);
24974
a81952e9babb Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents: 24951
diff changeset
1497 if (PURPLE_BLIST_NODE(tg) == target)
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1498 purple_blist_add_chat((PurpleChat*)node, tg, NULL);
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1499 else
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1500 purple_blist_add_chat((PurpleChat*)node, NULL, target);
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1501 }
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1502 }
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1503 }
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1504 }
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1505
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1506 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1507 context_menu_destroyed(GntWidget *widget, FinchBuddyList *ggblist)
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1508 {
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1509 ggblist->context = NULL;
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1510 }
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1511
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1512 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1513 draw_context_menu(FinchBuddyList *ggblist)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1514 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1515 PurpleBlistNode *node = NULL;
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1516 GntWidget *context = NULL;
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1517 GntTree *tree = NULL;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1518 int x, y, top, width;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1519 char *title = NULL;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1520
16869
f35dce8e5bc3 Do not build the context menu if one is already being shown.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16837
diff changeset
1521 if (ggblist->context)
f35dce8e5bc3 Do not build the context menu if one is already being shown.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16837
diff changeset
1522 return;
f35dce8e5bc3 Do not build the context menu if one is already being shown.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16837
diff changeset
1523
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1524 tree = GNT_TREE(ggblist->tree);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1525
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1526 node = gnt_tree_get_selection_data(tree);
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
1527 if (node && !(PURPLE_IS_BUDDY(node) || PURPLE_IS_CONTACT(node) ||
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
1528 PURPLE_IS_GROUP(node) || PURPLE_IS_CHAT(node)))
22286
c97b158bd4f4 Do not show a context menu for an unknown node.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22285
diff changeset
1529 return;
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1530
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1531 if (ggblist->tooltip)
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1532 remove_tooltip(ggblist);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1533
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1534 ggblist->cnode = node;
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1535
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1536 ggblist->context = context = gnt_menu_new(GNT_MENU_POPUP);
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1537 g_signal_connect(G_OBJECT(context), "destroy", G_CALLBACK(context_menu_destroyed), ggblist);
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
1538 g_signal_connect(G_OBJECT(context), "hide", G_CALLBACK(gnt_widget_destroy), NULL);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1539
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1540 if (!node) {
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1541 create_group_menu(GNT_MENU(context), NULL);
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1542 title = g_strdup(_("Buddy List"));
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1543 } else if (PURPLE_IS_CONTACT(node)) {
24974
a81952e9babb Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents: 24951
diff changeset
1544 ggblist->cnode = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18787
diff changeset
1545 create_buddy_menu(GNT_MENU(context), (PurpleBuddy*)ggblist->cnode);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1546 title = g_strdup(purple_contact_get_alias((PurpleContact*)node));
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1547 } else if (PURPLE_IS_BUDDY(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1548 PurpleBuddy *buddy = (PurpleBuddy *)node;
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1549 create_buddy_menu(GNT_MENU(context), buddy);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1550 title = g_strdup(purple_buddy_get_name(buddy));
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1551 } else if (PURPLE_IS_CHAT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1552 PurpleChat *chat = (PurpleChat*)node;
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1553 create_chat_menu(GNT_MENU(context), chat);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1554 title = g_strdup(purple_chat_get_name(chat));
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1555 } else if (PURPLE_IS_GROUP(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1556 PurpleGroup *group = (PurpleGroup *)node;
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1557 create_group_menu(GNT_MENU(context), group);
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22341
diff changeset
1558 title = g_strdup(purple_group_get_name(group));
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1559 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1560
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1561 append_extended_menu(GNT_MENU(context), node);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1562
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1563 /* These are common for everything */
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1564 if (node) {
16344
4f2b448b7559 Use 'alias' instead of 'rename' for non-group nodes. Thankfully, this does not introduce new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
1565 add_custom_action(GNT_MENU(context),
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1566 PURPLE_IS_GROUP(node) ? _("Rename") : _("Alias"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1567 PURPLE_CALLBACK(finch_blist_rename_node_cb), node);
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1568 add_custom_action(GNT_MENU(context), _("Remove"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1569 PURPLE_CALLBACK(finch_blist_remove_node_cb), node);
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1570
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1571 if (ggblist->tagged && (PURPLE_IS_CONTACT(node)
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1572 || PURPLE_IS_GROUP(node))) {
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1573 add_custom_action(GNT_MENU(context), _("Place tagged"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1574 PURPLE_CALLBACK(finch_blist_place_tagged), node);
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1575 }
15564
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
1576
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1577 if (PURPLE_IS_BUDDY(node) || PURPLE_IS_CONTACT(node)) {
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1578 add_custom_action(GNT_MENU(context), _("Toggle Tag"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1579 PURPLE_CALLBACK(finch_blist_toggle_tag_buddy), node);
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1580 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1581 if (!PURPLE_IS_GROUP(node)) {
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1582 add_custom_action(GNT_MENU(context), _("View Log"),
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1583 PURPLE_CALLBACK(showlog_cb), node);
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1584 }
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1585 }
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1586
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1587 /* Set the position for the popup */
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1588 gnt_widget_get_position(GNT_WIDGET(tree), &x, &y);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1589 gnt_widget_get_size(GNT_WIDGET(tree), &width, NULL);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1590 top = gnt_tree_get_selection_visible_line(tree);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1591
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1592 x += width;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1593 y += top - 1;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1594
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1595 gnt_widget_set_position(context, x, y);
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1596 gnt_screen_menu_show(GNT_MENU(context));
14021
a633de85f90e [gaim-migrate @ 16511]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14020
diff changeset
1597 g_free(title);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1598 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1599
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1600 static void
18391
a51451368934 Show better tooltips for contacts.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18369
diff changeset
1601 tooltip_for_buddy(PurpleBuddy *buddy, GString *str, gboolean full)
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1602 {
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
1603 PurpleProtocol *protocol;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1604 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1605 PurpleNotifyUserInfo *user_info;
18614
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
1606 PurplePresence *presence;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1607 const char *alias = purple_buddy_get_alias(buddy);
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1608 char *tmp, *strip;
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1609
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1610 user_info = purple_notify_user_info_new();
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1611
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1612 account = purple_buddy_get_account(buddy);
18614
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
1613 presence = purple_buddy_get_presence(buddy);
15113
956d8ac87bf6 [gaim-migrate @ 17835]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15083
diff changeset
1614
19425
07be487bc354 Fix #2607. (Finch tooltip HTML display)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18909
diff changeset
1615 if (!full || g_utf8_collate(purple_buddy_get_name(buddy), alias)) {
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31601
diff changeset
1616 purple_notify_user_info_add_pair_plaintext(user_info, _("Nickname"), alias);
19425
07be487bc354 Fix #2607. (Finch tooltip HTML display)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18909
diff changeset
1617 }
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1618
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1619 tmp = g_strdup_printf("%s (%s)",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1620 purple_account_get_username(account),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1621 purple_account_get_protocol_name(account));
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31601
diff changeset
1622 purple_notify_user_info_add_pair_plaintext(user_info, _("Account"), tmp);
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1623 g_free(tmp);
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
1624
36626
18fc361b3704 Renamed purple_find_protocol_info to purple_protocols_find
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
1625 protocol = purple_protocols_find(purple_account_get_protocol_id(account));
36632
1f0650e7b1b5 Refactored finch and a bit of libpurple plugins to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 36626
diff changeset
1626 if (protocol) {
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
1627 purple_protocol_client_iface_tooltip_text(protocol, buddy, user_info, full);
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1628 }
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1629
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16344
diff changeset
1630 if (purple_prefs_get_bool("/finch/blist/idletime")) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1631 PurplePresence *pre = purple_buddy_get_presence(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1632 if (purple_presence_is_idle(pre)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1633 time_t idle = purple_presence_get_idle_time(pre);
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1634 if (idle > 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1635 char *st = purple_str_seconds_to_string(time(NULL) - idle);
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 31601
diff changeset
1636 purple_notify_user_info_add_pair_plaintext(user_info, _("Idle"), st);
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1637 g_free(st);
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1638 }
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1639 }
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1640 }
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30060
diff changeset
1641
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1642 tmp = purple_notify_user_info_get_text_with_newline(user_info, "<BR>");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1643 purple_notify_user_info_destroy(user_info);
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1644
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1645 strip = purple_markup_strip_html(tmp);
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1646 g_string_append(str, strip);
18614
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
1647
18909
ebc3cc277277 Insert a newline in the tooltip.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18852
diff changeset
1648 if (purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_MOBILE)) {
ebc3cc277277 Insert a newline in the tooltip.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18852
diff changeset
1649 g_string_append(str, "\n");
18614
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
1650 g_string_append(str, _("On Mobile"));
18909
ebc3cc277277 Insert a newline in the tooltip.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18852
diff changeset
1651 }
18614
186b07bbc7a3 Show a pimping cool unicode status emblem for buddies on mobile (thanks, elb).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18607
diff changeset
1652
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1653 g_free(strip);
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1654 g_free(tmp);
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1655 }
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1656
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1657 static GString*
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1658 make_sure_text_fits(GString *string)
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1659 {
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1660 int maxw = getmaxx(stdscr) - 3;
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1661 char *str = gnt_util_onscreen_fit_string(string->str, maxw);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1662 string = g_string_assign(string, str);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1663 g_free(str);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1664 return string;
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1665 }
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1666
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1667 static gboolean
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1668 draw_tooltip_real(FinchBuddyList *ggblist)
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1669 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1670 PurpleBlistNode *node;
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1671 int x, y, top, width, w, h;
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
1672 GString *str = NULL;
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1673 GntTree *tree;
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1674 GntWidget *widget, *box, *tv;
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1675 char *title = NULL;
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1676
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1677 widget = ggblist->tree;
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1678 tree = GNT_TREE(widget);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1679
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
1680 if (!gnt_widget_has_focus(ggblist->tree) ||
39617
1d0453799f73 Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39483
diff changeset
1681 (ggblist->context && gnt_widget_get_visible(ggblist->context)))
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1682 return FALSE;
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
1683
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1684 if (ggblist->tooltip)
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1685 {
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13927
diff changeset
1686 /* XXX: Once we can properly redraw on expose events, this can be removed at the end
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13927
diff changeset
1687 * to avoid the blinking*/
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1688 remove_tooltip(ggblist);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1689 }
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1690
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1691 node = gnt_tree_get_selection_data(tree);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1692 if (!node)
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1693 return FALSE;
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1694
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
1695 if (!ggblist->manager->create_tooltip(node, &str, &title))
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1696 return FALSE;
14489
99fb5724b4b1 [gaim-migrate @ 17137]
Richard Nelson <wabz@pidgin.im>
parents: 14469
diff changeset
1697
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1698 gnt_widget_get_position(widget, &x, &y);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1699 gnt_widget_get_size(widget, &width, NULL);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1700 top = gnt_tree_get_selection_visible_line(tree);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1701
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1702 x += width;
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1703 y += top - 1;
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1704
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1705 box = gnt_box_new(FALSE, FALSE);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1706 gnt_box_set_toplevel(GNT_BOX(box), TRUE);
39617
1d0453799f73 Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39483
diff changeset
1707 gnt_widget_set_has_shadow(box, FALSE);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1708 gnt_box_set_title(GNT_BOX(box), title);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1709
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1710 str = make_sure_text_fits(str);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1711 gnt_util_get_text_bound(str->str, &w, &h);
18369
5a713a62b959 Use the new flags to make the tooltip look better.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18273
diff changeset
1712 h = MAX(1, h);
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1713 tv = gnt_text_view_new();
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1714 gnt_widget_set_size(tv, w + 1, h);
18369
5a713a62b959 Use the new flags to make the tooltip look better.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18273
diff changeset
1715 gnt_text_view_set_flag(GNT_TEXT_VIEW(tv), GNT_TEXT_VIEW_NO_SCROLL);
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1716 gnt_box_add_widget(GNT_BOX(box), tv);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1717
22579
a84da60f3748 Move the tooltip to the left of the buddylist if there's not enough room to show it on the right.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22556
diff changeset
1718 if (x + w >= getmaxx(stdscr))
a84da60f3748 Move the tooltip to the left of the buddylist if there's not enough room to show it on the right.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22556
diff changeset
1719 x -= w + width + 2;
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1720 gnt_widget_set_position(box, x, y);
39617
1d0453799f73 Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39483
diff changeset
1721 gnt_widget_set_take_focus(box, FALSE);
1d0453799f73 Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39483
diff changeset
1722 gnt_widget_set_transient(box, TRUE);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1723 gnt_widget_draw(box);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1724
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1725 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(tv), str->str, GNT_TEXT_FLAG_NORMAL);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1726 gnt_text_view_scroll(GNT_TEXT_VIEW(tv), 0);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1727
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1728 g_free(title);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1729 g_string_free(str, TRUE);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1730 ggblist->tooltip = box;
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1731 ggblist->tnode = node;
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13927
diff changeset
1732
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13927
diff changeset
1733 gnt_widget_set_name(ggblist->tooltip, "tooltip");
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1734 return FALSE;
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1735 }
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1736
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1737 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1738 draw_tooltip(FinchBuddyList *ggblist)
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1739 {
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1740 /* When an account has signed off, it removes one buddy at a time.
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1741 * Drawing the tooltip after removing each buddy is expensive. On
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1742 * top of that, if the selected buddy belongs to the disconnected
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1743 * account, then retreiving the tooltip for that causes crash. So
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1744 * let's make sure we wait for all the buddies to be removed first.*/
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1745 int id = g_timeout_add(0, (GSourceFunc)draw_tooltip_real, ggblist);
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1746 g_object_set_data_full(G_OBJECT(ggblist->window), "draw_tooltip_calback",
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1747 GINT_TO_POINTER(id), (GDestroyNotify)g_source_remove);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1748 }
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1749
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1750 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1751 selection_changed(GntWidget *widget, gpointer old, gpointer current,
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1752 FinchBuddyList *ggblist)
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1753 {
16837
d3b8ba967fdc Fix context menu unusualness in the buddylist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16828
diff changeset
1754 remove_peripherals(ggblist);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1755 draw_tooltip(ggblist);
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1756 }
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1757
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1758 static gboolean
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1759 context_menu(GntWidget *widget, FinchBuddyList *ggblist)
14896
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1760 {
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1761 draw_context_menu(ggblist);
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1762 return TRUE;
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1763 }
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1764
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1765 static gboolean
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1766 key_pressed(GntWidget *widget, const char *text, FinchBuddyList *ggblist)
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1767 {
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1768 if (text[0] == 27 && text[1] == 0) {
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1769 /* Escape was pressed */
21472
7c77d4a1921d Cancel the typeahead search when escape is pressed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
1770 if (gnt_tree_is_searching(GNT_TREE(ggblist->tree)))
7c77d4a1921d Cancel the typeahead search when escape is pressed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
1771 gnt_bindable_perform_action_named(GNT_BINDABLE(ggblist->tree), "end-search", NULL);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1772 remove_peripherals(ggblist);
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
1773 } else if (purple_strequal(text, GNT_KEY_INS)) {
27174
c368e3f44e40 Remove a now-unnecessary binding for the buddylist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26871
diff changeset
1774 PurpleBlistNode *node = gnt_tree_get_selection_data(GNT_TREE(ggblist->tree));
c368e3f44e40 Remove a now-unnecessary binding for the buddylist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26871
diff changeset
1775 purple_blist_request_add_buddy(NULL, NULL,
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1776 node && PURPLE_IS_GROUP(node) ? purple_group_get_name(PURPLE_GROUP(node)) : NULL,
27174
c368e3f44e40 Remove a now-unnecessary binding for the buddylist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26871
diff changeset
1777 NULL);
18787
a96af97dc501 New feature: successful compilation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18765
diff changeset
1778 } else if (!gnt_tree_is_searching(GNT_TREE(ggblist->tree))) {
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
1779 if (purple_strequal(text, "t")) {
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
1780 finch_blist_toggle_tag_buddy(gnt_tree_get_selection_data(GNT_TREE(ggblist->tree)));
28631
d0b410479721 Add missing null sentinels, and help the compiler catch such errors.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28088
diff changeset
1781 gnt_bindable_perform_action_named(GNT_BINDABLE(ggblist->tree), "move-down", NULL);
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
1782 } else if (purple_strequal(text, "a")) {
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
1783 finch_blist_place_tagged(gnt_tree_get_selection_data(GNT_TREE(ggblist->tree)));
15228
b3a992ff3e5f [gaim-migrate @ 17952]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15222
diff changeset
1784 } else
b3a992ff3e5f [gaim-migrate @ 17952]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15222
diff changeset
1785 return FALSE;
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1786 } else
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1787 return FALSE;
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13946
diff changeset
1788
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1789 return TRUE;
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1790 }
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1791
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1792 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1793 update_node_display(PurpleBlistNode *node, FinchBuddyList *ggblist)
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1794 {
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
1795 GntTextFormatFlags flag = get_blist_node_flag(ggblist, node);
16636
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1796 gnt_tree_set_row_flags(GNT_TREE(ggblist->tree), node, flag);
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1797 }
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1798
7f37767fa737 This makes it possible to rearrange chats and groups using the tag+attach system. Thanks a bunch to wabz for testing this. Fixes #379.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16555
diff changeset
1799 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1800 update_buddy_display(PurpleBuddy *buddy, FinchBuddyList *ggblist)
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1801 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1802 PurpleContact *contact;
21808
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
1803
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1804 contact = purple_buddy_get_contact(buddy);
14447
32f854416012 [gaim-migrate @ 17091]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14446
diff changeset
1805
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1806 gnt_tree_change_text(GNT_TREE(ggblist->tree), buddy, 0, get_display_name((PurpleBlistNode*)buddy));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1807 gnt_tree_change_text(GNT_TREE(ggblist->tree), contact, 0, get_display_name((PurpleBlistNode*)contact));
14447
32f854416012 [gaim-migrate @ 17091]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14446
diff changeset
1808
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
1809 blist_update_row_flags(ggblist, (PurpleBlistNode *)buddy);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
1810 if (buddy == purple_contact_get_priority_buddy(contact))
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
1811 blist_update_row_flags(ggblist, (PurpleBlistNode *)contact);
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
1812
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
1813 if (ggblist->tnode == (PurpleBlistNode *)buddy) {
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1814 draw_tooltip(ggblist);
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
1815 }
13993
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1816 }
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1817
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1818 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1819 buddy_status_changed(PurpleBuddy *buddy, PurpleStatus *old, PurpleStatus *now,
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1820 FinchBuddyList *ggblist)
13993
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1821 {
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1822 update_buddy_display(buddy, ggblist);
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1823 }
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1824
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1825 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1826 buddy_idle_changed(PurpleBuddy *buddy, int old, int new,
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1827 FinchBuddyList *ggblist)
13993
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1828 {
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1829 update_buddy_display(buddy, ggblist);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1830 }
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1831
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1832 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1833 remove_peripherals(FinchBuddyList *ggblist)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1834 {
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1835 if (ggblist->tooltip)
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1836 remove_tooltip(ggblist);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1837 else if (ggblist->context)
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1838 gnt_widget_destroy(ggblist->context);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1839 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1840
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1841 static void
14908
0ccb73d4e584 [gaim-migrate @ 17615]
Richard Nelson <wabz@pidgin.im>
parents: 14905
diff changeset
1842 size_changed_cb(GntWidget *w, int wi, int h)
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1843 {
14908
0ccb73d4e584 [gaim-migrate @ 17615]
Richard Nelson <wabz@pidgin.im>
parents: 14905
diff changeset
1844 int width, height;
0ccb73d4e584 [gaim-migrate @ 17615]
Richard Nelson <wabz@pidgin.im>
parents: 14905
diff changeset
1845 gnt_widget_get_size(w, &width, &height);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1846 purple_prefs_set_int(PREF_ROOT "/size/width", width);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1847 purple_prefs_set_int(PREF_ROOT "/size/height", height);
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1848 }
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1849
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1850 static void
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1851 save_position_cb(GntWidget *w, int x, int y)
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1852 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1853 purple_prefs_set_int(PREF_ROOT "/position/x", x);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1854 purple_prefs_set_int(PREF_ROOT "/position/y", y);
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1855 }
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1856
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1857 static void
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1858 reset_blist_window(GntWidget *window, gpointer null)
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1859 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1860 PurpleBlistNode *node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1861 purple_signals_disconnect_by_handle(finch_blist_get_handle());
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1862
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1863 node = purple_blist_get_default_root();
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
1864 while (node) {
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
1865 reset_blist_node_ui_data(node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1866 node = purple_blist_node_next(node, TRUE);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1867 }
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1868
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1869 if (ggblist->typing)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
1870 g_source_remove(ggblist->typing);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1871 remove_peripherals(ggblist);
15046
e17788e5403a [gaim-migrate @ 17763]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15039
diff changeset
1872 if (ggblist->tagged)
e17788e5403a [gaim-migrate @ 17763]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15039
diff changeset
1873 g_list_free(ggblist->tagged);
24450
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
1874
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
1875 if (ggblist->new_group_timeout)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
1876 g_source_remove(ggblist->new_group_timeout);
24450
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
1877 if (ggblist->new_group)
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
1878 g_list_free(ggblist->new_group);
b41b4278c53a Show a manually added new empty group even if the preference is not set.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24198
diff changeset
1879
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1880 ggblist = NULL;
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1881 }
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1882
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1883 static void
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21855
diff changeset
1884 populate_buddylist(void)
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1885 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1886 PurpleBlistNode *node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1887 PurpleBuddyList *list;
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1888
22312
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1889 if (ggblist->manager->init)
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1890 ggblist->manager->init();
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1891
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
1892 if (purple_strequal(purple_prefs_get_string(PREF_ROOT "/sort_type"), "text")) {
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1893 gnt_tree_set_compare_func(GNT_TREE(ggblist->tree),
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1894 (GCompareFunc)blist_node_compare_text);
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
1895 } else if (purple_strequal(purple_prefs_get_string(PREF_ROOT "/sort_type"), "status")) {
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1896 gnt_tree_set_compare_func(GNT_TREE(ggblist->tree),
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1897 (GCompareFunc)blist_node_compare_status);
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
1898 } else if (purple_strequal(purple_prefs_get_string(PREF_ROOT "/sort_type"), "log")) {
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1899 gnt_tree_set_compare_func(GNT_TREE(ggblist->tree),
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1900 (GCompareFunc)blist_node_compare_log);
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1901 }
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30060
diff changeset
1902
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1903 list = purple_blist_get_default();
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1904 node = purple_blist_get_root(list);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1905 while (node)
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1906 {
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1907 node_update(list, node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1908 node = purple_blist_node_next(node, FALSE);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1909 }
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1910 }
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1911
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1912 static void
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1913 destroy_status_list(GList *list)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1914 {
39897
16b440d4ab36 Use g_list_free_full instead of g_list_foreach+g_list_free.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39887
diff changeset
1915 g_list_free_full(list, g_free);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1916 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1917
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1918 static void
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21855
diff changeset
1919 populate_status_dropdown(void)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1920 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1921 int i;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1922 GList *iter;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1923 GList *items = NULL;
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1924 StatusBoxItem *item = NULL;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1925
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1926 /* First the primitives */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1927 PurpleStatusPrimitive prims[] = {PURPLE_STATUS_AVAILABLE, PURPLE_STATUS_AWAY,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1928 PURPLE_STATUS_INVISIBLE, PURPLE_STATUS_OFFLINE, PURPLE_STATUS_UNSET};
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1929
14555
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
1930 gnt_combo_box_remove_all(GNT_COMBO_BOX(ggblist->status));
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
1931
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1932 for (i = 0; prims[i] != PURPLE_STATUS_UNSET; i++)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1933 {
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1934 item = g_new0(StatusBoxItem, 1);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1935 item->type = STATUS_PRIMITIVE;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1936 item->u.prim = prims[i];
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1937 items = g_list_prepend(items, item);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1938 gnt_combo_box_add_data(GNT_COMBO_BOX(ggblist->status), item,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1939 purple_primitive_get_name_from_type(prims[i]));
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1940 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1941
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1942 /* Now the popular statuses */
18851
87634d109f57 Memory leak fix.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18850
diff changeset
1943 for (iter = purple_savedstatuses_get_popular(6); iter; iter = g_list_delete_link(iter, iter))
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1944 {
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1945 item = g_new0(StatusBoxItem, 1);
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1946 item->type = STATUS_SAVED_POPULAR;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1947 item->u.saved = iter->data;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1948 items = g_list_prepend(items, item);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1949 gnt_combo_box_add_data(GNT_COMBO_BOX(ggblist->status), item,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1950 purple_savedstatus_get_title(iter->data));
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1951 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1952
14194
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1953 /* New savedstatus */
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1954 item = g_new0(StatusBoxItem, 1);
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1955 item->type = STATUS_SAVED_NEW;
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1956 items = g_list_prepend(items, item);
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1957 gnt_combo_box_add_data(GNT_COMBO_BOX(ggblist->status), item,
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1958 _("New..."));
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1959
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1960 /* More savedstatuses */
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1961 item = g_new0(StatusBoxItem, 1);
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1962 item->type = STATUS_SAVED_ALL;
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1963 items = g_list_prepend(items, item);
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1964 gnt_combo_box_add_data(GNT_COMBO_BOX(ggblist->status), item,
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1965 _("Saved..."));
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1966
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1967 /* The keys for the combobox are created here, and never used
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1968 * anywhere else. So make sure the keys are freed when the widget
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1969 * is destroyed. */
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1970 g_object_set_data_full(G_OBJECT(ggblist->status), "list of statuses",
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1971 items, (GDestroyNotify)destroy_status_list);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1972 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1973
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
1974 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1975 redraw_blist(const char *name, PurplePrefType type, gconstpointer val, gpointer data)
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
1976 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1977 PurpleBlistNode *node, *sel;
22300
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1978 FinchBlistManager *manager;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1979
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1980 if (ggblist == NULL)
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1981 return;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1982
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1983 manager = finch_blist_manager_find(purple_prefs_get_string(PREF_ROOT "/grouping"));
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1984 if (manager == NULL)
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1985 manager = &default_manager;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1986 if (ggblist->manager != manager) {
22312
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1987 if (ggblist->manager->uninit)
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1988 ggblist->manager->uninit();
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1989
22300
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1990 ggblist->manager = manager;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1991 if (manager->can_add_node == NULL)
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1992 manager->can_add_node = default_can_add_node;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1993 if (manager->find_parent == NULL)
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1994 manager->find_parent = default_find_parent;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1995 if (manager->create_tooltip == NULL)
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1996 manager->create_tooltip = default_create_tooltip;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1997 }
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1998
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1999 if (ggblist->window == NULL)
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
2000 return;
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
2001
14531
4beceb49b547 [gaim-migrate @ 17185]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14489
diff changeset
2002 sel = gnt_tree_get_selection_data(GNT_TREE(ggblist->tree));
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
2003 gnt_tree_remove_all(GNT_TREE(ggblist->tree));
22312
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
2004
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2005 for (node = purple_blist_get_default_root(); node;
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2006 node = purple_blist_node_next(node, TRUE)) {
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2007 reset_blist_node_ui_data(node);
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2008 }
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
2009 populate_buddylist();
14531
4beceb49b547 [gaim-migrate @ 17185]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14489
diff changeset
2010 gnt_tree_set_selected(GNT_TREE(ggblist->tree), sel);
4beceb49b547 [gaim-migrate @ 17185]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14489
diff changeset
2011 draw_tooltip(ggblist);
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
2012 }
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
2013
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
2014 void finch_blist_init()
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2015 {
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21808
diff changeset
2016 color_available = gnt_style_get_color(NULL, "color-available");
21807
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
2017 if (!color_available)
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
2018 color_available = gnt_color_add_pair(COLOR_GREEN, -1);
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21808
diff changeset
2019 color_away = gnt_style_get_color(NULL, "color-away");
21807
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
2020 if (!color_away)
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
2021 color_away = gnt_color_add_pair(COLOR_BLUE, -1);
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21808
diff changeset
2022 color_idle = gnt_style_get_color(NULL, "color-idle");
21807
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
2023 if (!color_idle)
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
2024 color_idle = gnt_color_add_pair(COLOR_CYAN, -1);
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21808
diff changeset
2025 color_offline = gnt_style_get_color(NULL, "color-offline");
21807
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
2026 if (!color_offline)
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
2027 color_offline = gnt_color_add_pair(COLOR_RED, -1);
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
2028
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2029 purple_prefs_add_none(PREF_ROOT);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2030 purple_prefs_add_none(PREF_ROOT "/size");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2031 purple_prefs_add_int(PREF_ROOT "/size/width", 20);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2032 purple_prefs_add_int(PREF_ROOT "/size/height", 17);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2033 purple_prefs_add_none(PREF_ROOT "/position");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2034 purple_prefs_add_int(PREF_ROOT "/position/x", 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2035 purple_prefs_add_int(PREF_ROOT "/position/y", 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2036 purple_prefs_add_bool(PREF_ROOT "/idletime", TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2037 purple_prefs_add_bool(PREF_ROOT "/showoffline", FALSE);
18625
775baeaa9f1a Plucked revision from im.pidgin.soc.2007.finchfeat to allow showing empty
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18614
diff changeset
2038 purple_prefs_add_bool(PREF_ROOT "/emptygroups", FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2039 purple_prefs_add_string(PREF_ROOT "/sort_type", "text");
22300
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
2040 purple_prefs_add_string(PREF_ROOT "/grouping", "default");
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
2041
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2042 purple_prefs_connect_callback(finch_blist_get_handle(),
18625
775baeaa9f1a Plucked revision from im.pidgin.soc.2007.finchfeat to allow showing empty
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18614
diff changeset
2043 PREF_ROOT "/emptygroups", redraw_blist, NULL);
775baeaa9f1a Plucked revision from im.pidgin.soc.2007.finchfeat to allow showing empty
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18614
diff changeset
2044 purple_prefs_connect_callback(finch_blist_get_handle(),
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
2045 PREF_ROOT "/showoffline", redraw_blist, NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2046 purple_prefs_connect_callback(finch_blist_get_handle(),
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2047 PREF_ROOT "/sort_type", redraw_blist, NULL);
22300
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
2048 purple_prefs_connect_callback(finch_blist_get_handle(),
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
2049 PREF_ROOT "/grouping", redraw_blist, NULL);
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
2050
30039
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2051 purple_signal_connect_priority(purple_connections_get_handle(),
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2052 "autojoin", purple_blist_get_handle(),
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2053 G_CALLBACK(account_autojoin_cb), NULL,
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2054 PURPLE_SIGNAL_PRIORITY_HIGHEST);
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
2055
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
2056 finch_blist_install_manager(&default_manager);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
2057 }
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
2058
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14104
diff changeset
2059 static gboolean
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2060 remove_typing_cb(gpointer null)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2061 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2062 PurpleSavedStatus *current;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2063 const char *message, *newmessage;
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2064 char *escnewmessage;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2065 PurpleStatusPrimitive prim, newprim;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2066 StatusBoxItem *item;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2067
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2068 current = purple_savedstatus_get_current();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2069 message = purple_savedstatus_get_message(current);
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
2070 prim = purple_savedstatus_get_primitive_type(current);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2071
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2072 newmessage = gnt_entry_get_text(GNT_ENTRY(ggblist->statustext));
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2073 item = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(ggblist->status));
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2074 escnewmessage = newmessage ? g_markup_escape_text(newmessage, -1) : NULL;
16719
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2075
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2076 switch (item->type) {
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2077 case STATUS_PRIMITIVE:
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2078 newprim = item->u.prim;
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2079 break;
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2080 case STATUS_SAVED_POPULAR:
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
2081 newprim = purple_savedstatus_get_primitive_type(item->u.saved);
16719
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2082 break;
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2083 default:
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2084 goto end; /* 'New' or 'Saved' is selected, but this should never happen. */
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2085 }
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2086
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2087 if (newprim != prim || ((message && !escnewmessage) ||
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2088 (!message && escnewmessage) ||
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2089 (message && escnewmessage && g_utf8_collate(message, escnewmessage) != 0)))
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2090 {
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2091 PurpleSavedStatus *status = purple_savedstatus_find_transient_by_type_and_message(newprim, escnewmessage);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2092 /* Holy Crap! That's a LAWNG function name */
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2093 if (status == NULL)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2094 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2095 status = purple_savedstatus_new(NULL, newprim);
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2096 purple_savedstatus_set_message(status, escnewmessage);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2097 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2098
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2099 purple_savedstatus_activate(status);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2100 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2101
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2102 gnt_box_give_focus_to_child(GNT_BOX(ggblist->window), ggblist->tree);
16719
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2103 end:
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2104 g_free(escnewmessage);
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
2105 if (ggblist->typing)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2106 g_source_remove(ggblist->typing);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2107 ggblist->typing = 0;
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14104
diff changeset
2108 return FALSE;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2109 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2110
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2111 static void
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2112 status_selection_changed(GntComboBox *box, StatusBoxItem *old, StatusBoxItem *now, gpointer null)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2113 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2114 gnt_entry_set_text(GNT_ENTRY(ggblist->statustext), NULL);
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
2115 if (now->type == STATUS_SAVED_POPULAR)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2116 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2117 /* Set the status immediately */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2118 purple_savedstatus_activate(now->u.saved);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2119 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2120 else if (now->type == STATUS_PRIMITIVE)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2121 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2122 /* Move the focus to the entry box */
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
2123 /* XXX: Make sure the selected status can have a message */
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2124 gnt_box_move_focus(GNT_BOX(ggblist->window), 1);
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2125 ggblist->typing = g_timeout_add_seconds(TYPING_TIMEOUT_S, (GSourceFunc)remove_typing_cb, NULL);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2126 }
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
2127 else if (now->type == STATUS_SAVED_ALL)
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
2128 {
14193
fcfd3eea2160 [gaim-migrate @ 16773]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14188
diff changeset
2129 /* Restore the selection to reflect current status. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2130 savedstatus_changed(purple_savedstatus_get_current(), NULL);
14193
fcfd3eea2160 [gaim-migrate @ 16773]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14188
diff changeset
2131 gnt_box_give_focus_to_child(GNT_BOX(ggblist->window), ggblist->tree);
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
2132 finch_savedstatus_show_all();
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
2133 }
14194
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
2134 else if (now->type == STATUS_SAVED_NEW)
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
2135 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2136 savedstatus_changed(purple_savedstatus_get_current(), NULL);
14194
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
2137 gnt_box_give_focus_to_child(GNT_BOX(ggblist->window), ggblist->tree);
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
2138 finch_savedstatus_edit(NULL);
14194
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
2139 }
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2140 else
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2141 g_return_if_reached();
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2142 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2143
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2144 static gboolean
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2145 status_text_changed(GntEntry *entry, const char *text, gpointer null)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2146 {
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14104
diff changeset
2147 if ((text[0] == 27 || (text[0] == '\t' && text[1] == '\0')) && ggblist->typing == 0)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2148 return FALSE;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2149
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
2150 if (ggblist->typing)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2151 g_source_remove(ggblist->typing);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2152 ggblist->typing = 0;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2153
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2154 if (text[0] == '\r' && text[1] == 0)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2155 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2156 /* Set the status only after you press 'Enter' */
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2157 remove_typing_cb(NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2158 return TRUE;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2159 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2160
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2161 ggblist->typing = g_timeout_add_seconds(TYPING_TIMEOUT_S, (GSourceFunc)remove_typing_cb, NULL);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2162 return FALSE;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2163 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2164
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2165 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2166 savedstatus_changed(PurpleSavedStatus *now, PurpleSavedStatus *old)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2167 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2168 GList *list;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2169 PurpleStatusPrimitive prim;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2170 const char *message;
15564
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2171 gboolean found = FALSE, saved = TRUE;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2172
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2173 if (!ggblist)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2174 return;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2175
14555
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
2176 /* Block the signals we don't want to emit */
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2177 g_signal_handlers_block_matched(ggblist->status, G_SIGNAL_MATCH_FUNC,
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2178 0, 0, NULL, status_selection_changed, NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2179 g_signal_handlers_block_matched(ggblist->statustext, G_SIGNAL_MATCH_FUNC,
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2180 0, 0, NULL, status_text_changed, NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2181
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35024
diff changeset
2182 prim = purple_savedstatus_get_primitive_type(now);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2183 message = purple_savedstatus_get_message(now);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2184
14555
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
2185 /* Rebuild the status dropdown */
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
2186 populate_status_dropdown();
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
2187
15564
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2188 while (!found) {
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2189 list = g_object_get_data(G_OBJECT(ggblist->status), "list of statuses");
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2190 for (; list; list = list->next)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2191 {
15564
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2192 StatusBoxItem *item = list->data;
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2193 if ((saved && item->type != STATUS_PRIMITIVE && item->u.saved == now) ||
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2194 (!saved && item->type == STATUS_PRIMITIVE && item->u.prim == prim))
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2195 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2196 char *mess = purple_unescape_html(message);
15564
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2197 gnt_combo_box_set_selected(GNT_COMBO_BOX(ggblist->status), item);
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2198 gnt_entry_set_text(GNT_ENTRY(ggblist->statustext), mess);
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2199 gnt_widget_draw(ggblist->status);
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2200 g_free(mess);
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2201 found = TRUE;
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2202 break;
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2203 }
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2204 }
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2205 if (!saved)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2206 break;
15564
61befe113a13 Wonderful patch from Richard 'wabz' Nelson to fix the bug of lacking a pounce ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15377
diff changeset
2207 saved = FALSE;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2208 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2209
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2210 g_signal_handlers_unblock_matched(ggblist->status, G_SIGNAL_MATCH_FUNC,
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2211 0, 0, NULL, status_selection_changed, NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2212 g_signal_handlers_unblock_matched(ggblist->statustext, G_SIGNAL_MATCH_FUNC,
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2213 0, 0, NULL, status_text_changed, NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2214 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2215
14167
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2216 static int
16555
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2217 blist_node_compare_position(PurpleBlistNode *n1, PurpleBlistNode *n2)
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2218 {
22334
6eec04817c0d Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22314
diff changeset
2219 while ((n1 = purple_blist_node_get_sibling_prev(n1)) != NULL)
16555
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2220 if (n1 == n2)
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2221 return 1;
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2222 return -1;
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2223 }
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2224
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2225 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2226 blist_node_compare_text(PurpleBlistNode *n1, PurpleBlistNode *n2)
14167
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2227 {
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2228 const char *s1, *s2;
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2229 char *us1, *us2;
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2230 int ret;
17333
dfb8dfb6ede0 It's valid for different types to be compared. In that case, use existing positions.
Richard Nelson <wabz@pidgin.im>
parents: 17295
diff changeset
2231
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2232 if (G_OBJECT_TYPE(n1) != G_OBJECT_TYPE(n2))
17333
dfb8dfb6ede0 It's valid for different types to be compared. In that case, use existing positions.
Richard Nelson <wabz@pidgin.im>
parents: 17295
diff changeset
2233 return blist_node_compare_position(n1, n2);
dfb8dfb6ede0 It's valid for different types to be compared. In that case, use existing positions.
Richard Nelson <wabz@pidgin.im>
parents: 17295
diff changeset
2234
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2235 if (PURPLE_IS_CHAT(n1)) {
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2236 s1 = purple_chat_get_name((PurpleChat*)n1);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2237 s2 = purple_chat_get_name((PurpleChat*)n2);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2238 } else if (PURPLE_IS_BUDDY(n1)) {
34849
4676b30130c9 Refactored finch to use the GObject PurplePresence API
Ankit Vani <a@nevitus.org>
parents: 34760
diff changeset
2239 return purple_buddy_presence_compare(
4676b30130c9 Refactored finch to use the GObject PurplePresence API
Ankit Vani <a@nevitus.org>
parents: 34760
diff changeset
2240 PURPLE_BUDDY_PRESENCE(purple_buddy_get_presence(PURPLE_BUDDY(n1))),
4676b30130c9 Refactored finch to use the GObject PurplePresence API
Ankit Vani <a@nevitus.org>
parents: 34760
diff changeset
2241 PURPLE_BUDDY_PRESENCE(purple_buddy_get_presence(PURPLE_BUDDY(n2))));
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2242 } else if (PURPLE_IS_CONTACT(n1)) {
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2243 s1 = purple_contact_get_alias((PurpleContact*)n1);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2244 s2 = purple_contact_get_alias((PurpleContact*)n2);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2245 } else {
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2246 return blist_node_compare_position(n1, n2);
14167
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2247 }
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2248
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2249 us1 = g_utf8_strup(s1, -1);
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2250 us2 = g_utf8_strup(s2, -1);
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2251 ret = g_utf8_collate(us1, us2);
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2252 g_free(us1);
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2253 g_free(us2);
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2254
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2255 return ret;
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2256 }
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2257
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2258 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2259 blist_node_compare_status(PurpleBlistNode *n1, PurpleBlistNode *n2)
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2260 {
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2261 int ret;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2262
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2263 if (G_OBJECT_TYPE(n1) != G_OBJECT_TYPE(n2))
17333
dfb8dfb6ede0 It's valid for different types to be compared. In that case, use existing positions.
Richard Nelson <wabz@pidgin.im>
parents: 17295
diff changeset
2264 return blist_node_compare_position(n1, n2);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2265
35914
e05ac5e585d0 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35587
diff changeset
2266 if (PURPLE_IS_CONTACT(n1))
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2267 n1 = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(n1)));
35914
e05ac5e585d0 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35587
diff changeset
2268 if (PURPLE_IS_CONTACT(n2))
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2269 n2 = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(n2)));
35914
e05ac5e585d0 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35587
diff changeset
2270
e05ac5e585d0 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35587
diff changeset
2271 if (PURPLE_IS_BUDDY(n1) && PURPLE_IS_BUDDY(n2)) {
34849
4676b30130c9 Refactored finch to use the GObject PurplePresence API
Ankit Vani <a@nevitus.org>
parents: 34760
diff changeset
2272 ret = purple_buddy_presence_compare(
4676b30130c9 Refactored finch to use the GObject PurplePresence API
Ankit Vani <a@nevitus.org>
parents: 34760
diff changeset
2273 PURPLE_BUDDY_PRESENCE(purple_buddy_get_presence(PURPLE_BUDDY(n1))),
4676b30130c9 Refactored finch to use the GObject PurplePresence API
Ankit Vani <a@nevitus.org>
parents: 34760
diff changeset
2274 PURPLE_BUDDY_PRESENCE(purple_buddy_get_presence(PURPLE_BUDDY(n2))));
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2275 if (ret != 0)
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2276 return ret;
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2277 } else {
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2278 return blist_node_compare_position(n1, n2);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2279 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2280
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2281 /* Sort alphabetically if presence is not comparable */
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2282 ret = blist_node_compare_text(n1, n2);
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2283
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2284 return ret;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2285 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2286
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2287 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2288 get_contact_log_size(PurpleBlistNode *c)
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2289 {
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2290 int log = 0;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2291 PurpleBlistNode *node;
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2292
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
2293 for (node = purple_blist_node_get_first_child(c); node; node = purple_blist_node_get_sibling_next(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2294 PurpleBuddy *b = (PurpleBuddy*)node;
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
2295 log += purple_log_get_total_size(PURPLE_LOG_IM, purple_buddy_get_name(b),
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
2296 purple_buddy_get_account(b));
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2297 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2298
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2299 return log;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2300 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2301
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2302 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2303 blist_node_compare_log(PurpleBlistNode *n1, PurpleBlistNode *n2)
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2304 {
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2305 int ret;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2306 PurpleBuddy *b1, *b2;
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2307
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2308 if (G_OBJECT_TYPE(n1) != G_OBJECT_TYPE(n2))
17333
dfb8dfb6ede0 It's valid for different types to be compared. In that case, use existing positions.
Richard Nelson <wabz@pidgin.im>
parents: 17295
diff changeset
2309 return blist_node_compare_position(n1, n2);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2310
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2311 if (PURPLE_IS_BUDDY(n1)) {
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2312 b1 = (PurpleBuddy*)n1;
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2313 b2 = (PurpleBuddy*)n2;
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2314 ret = purple_log_get_total_size(PURPLE_LOG_IM, purple_buddy_get_name(b2), purple_buddy_get_account(b2)) -
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2315 purple_log_get_total_size(PURPLE_LOG_IM, purple_buddy_get_name(b1), purple_buddy_get_account(b1));
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2316 if (ret != 0)
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2317 return ret;
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2318 } else if (PURPLE_IS_CONTACT(n1)) {
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2319 ret = get_contact_log_size(n2) - get_contact_log_size(n1);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2320 if (ret != 0)
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2321 return ret;
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2322 } else {
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2323 return blist_node_compare_position(n1, n2);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2324 }
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
2325
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2326 ret = blist_node_compare_text(n1, n2);
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2327 return ret;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2328 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2329
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2330 static void
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2331 plugin_action(GntMenuItem *item, gpointer data)
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2332 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2333 PurplePluginAction *action = data;
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2334 if (action && action->callback)
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2335 action->callback(action);
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2336 }
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2337
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2338 static void
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2339 build_plugin_actions(GntMenuItem *item, PurplePlugin *plugin)
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2340 {
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2341 GntWidget *sub = gnt_menu_new(GNT_MENU_POPUP);
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36896
diff changeset
2342 PurplePluginActionsCb actions_cb;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2343 GList *actions;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2344 GntMenuItem *menuitem;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2345
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36896
diff changeset
2346 actions_cb =
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36896
diff changeset
2347 purple_plugin_info_get_actions_cb(purple_plugin_get_info(plugin));
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2348
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2349 gnt_menuitem_set_submenu(item, GNT_MENU(sub));
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36896
diff changeset
2350 for (actions = actions_cb(plugin); actions;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2351 actions = g_list_delete_link(actions, actions)) {
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2352 if (actions->data) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2353 PurplePluginAction *action = actions->data;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2354 action->plugin = plugin;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2355 menuitem = gnt_menuitem_new(action->label);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2356 gnt_menu_add_item(GNT_MENU(sub), menuitem);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2357
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2358 gnt_menuitem_set_callback(menuitem, plugin_action, action);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2359 g_object_set_data_full(G_OBJECT(menuitem), "plugin_action",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2360 action, (GDestroyNotify)purple_plugin_action_free);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2361 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2362 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2363 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2364
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2365 static void
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2366 protocol_action(GntMenuItem *item, gpointer data)
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2367 {
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2368 PurpleProtocolAction *action = data;
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2369 if (action && action->callback)
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2370 action->callback(action);
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2371 }
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2372
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2373 static void
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
2374 build_protocol_actions(GntMenuItem *item, PurpleProtocol *protocol,
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2375 PurpleConnection *gc)
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2376 {
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2377 GntWidget *sub = gnt_menu_new(GNT_MENU_POPUP);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2378 GList *actions;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2379 GntMenuItem *menuitem;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2380
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2381 gnt_menuitem_set_submenu(item, GNT_MENU(sub));
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
2382 for (actions = purple_protocol_client_iface_get_actions(protocol, gc); actions;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2383 actions = g_list_delete_link(actions, actions)) {
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2384 if (actions->data) {
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2385 PurpleProtocolAction *action = actions->data;
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2386 action->connection = gc;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2387 menuitem = gnt_menuitem_new(action->label);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2388 gnt_menu_add_item(GNT_MENU(sub), menuitem);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2389
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2390 gnt_menuitem_set_callback(menuitem, protocol_action, action);
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2391 g_object_set_data_full(G_OBJECT(menuitem), "protocol_action",
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2392 action, (GDestroyNotify)purple_protocol_action_free);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2393 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2394 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2395 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2396
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2397 static gboolean
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2398 buddy_recent_signed_on_off(gpointer data)
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2399 {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2400 PurpleBlistNode *node = data;
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
2401 FinchBlistNode *fnode = purple_blist_node_get_ui_data(node);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2402
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2403 g_source_remove(fnode->signed_timer);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2404 fnode->signed_timer = 0;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2405
22303
cab9f3452d72 Rework some of the code that deals with adding and removing blist nodes in the tree. There were some typoed code that just happened to work. This fixes those.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22300
diff changeset
2406 if (!ggblist->manager->can_add_node(node)) {
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2407 node_remove(purple_blist_get_default(), node);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2408 } else {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2409 update_node_display(node, ggblist);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
2410 if (purple_blist_node_get_parent(node) && PURPLE_IS_CONTACT(purple_blist_node_get_parent(node)))
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
2411 update_node_display(purple_blist_node_get_parent(node), ggblist);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2412 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2413
34716
fc09ccb6eab5 ref buddy before connecting signed off timeout, and unref in the handler
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
2414 g_object_unref(node);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2415 return FALSE;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2416 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2417
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2418 static gboolean
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2419 buddy_signed_on_off_cb(gpointer data)
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2420 {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2421 PurpleBlistNode *node = data;
32715
81e0226a4dd5 Finch: Use purple_blist_node_get_ui_data() and purple_blist_node_set_ui_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32714
diff changeset
2422 FinchBlistNode *fnode = purple_blist_node_get_ui_data(node);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2423 if (!ggblist || !fnode)
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2424 return FALSE;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2425
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2426 if (fnode->signed_timer)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2427 g_source_remove(fnode->signed_timer);
34716
fc09ccb6eab5 ref buddy before connecting signed off timeout, and unref in the handler
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
2428
fc09ccb6eab5 ref buddy before connecting signed off timeout, and unref in the handler
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
2429 g_object_ref(node);
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2430 fnode->signed_timer = g_timeout_add_seconds(6, (GSourceFunc)buddy_recent_signed_on_off, data);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2431 update_node_display(node, ggblist);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
2432 if (purple_blist_node_get_parent(node) && PURPLE_IS_CONTACT(purple_blist_node_get_parent(node)))
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
2433 update_node_display(purple_blist_node_get_parent(node), ggblist);
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2434 return FALSE;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2435 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2436
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2437 static void
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2438 buddy_signed_on_off(PurpleBuddy* buddy, gpointer null)
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2439 {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2440 g_idle_add(buddy_signed_on_off_cb, buddy);
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2441 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2442
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2443 static void
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21855
diff changeset
2444 reconstruct_plugins_menu(void)
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2445 {
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2446 GntWidget *sub;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2447 GntMenuItem *plg;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2448 GList *iter;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2449
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2450 if (!ggblist)
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2451 return;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2452
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2453 if (ggblist->plugins == NULL)
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2454 ggblist->plugins = gnt_menuitem_new(_("Plugins"));
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2455
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2456 plg = ggblist->plugins;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2457 sub = gnt_menu_new(GNT_MENU_POPUP);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2458 gnt_menuitem_set_submenu(plg, GNT_MENU(sub));
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2459
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2460 for (iter = purple_plugins_get_loaded(); iter; iter = iter->next) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2461 PurplePlugin *plugin = iter->data;
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2462 PurplePluginInfo *info = purple_plugin_get_info(plugin);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2463 GntMenuItem *item;
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2464
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36896
diff changeset
2465 if (!purple_plugin_info_get_actions_cb(info))
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2466 continue;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2467
39834
0345d198dbd6 Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
2468 item = gnt_menuitem_new(_(gplugin_plugin_info_get_name(
0345d198dbd6 Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
2469 GPLUGIN_PLUGIN_INFO(info))));
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2470 gnt_menu_add_item(GNT_MENU(sub), item);
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2471 build_plugin_actions(item, plugin);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2472 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2473 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2474
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2475 static void
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21855
diff changeset
2476 reconstruct_accounts_menu(void)
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2477 {
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2478 GntWidget *sub;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2479 GntMenuItem *acc, *item;
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2480 GList *iter;
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2481
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2482 if (!ggblist)
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2483 return;
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2484
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2485 if (ggblist->accounts == NULL)
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2486 ggblist->accounts = gnt_menuitem_new(_("Accounts"));
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2487
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2488 acc = ggblist->accounts;
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2489 sub = gnt_menu_new(GNT_MENU_POPUP);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2490 gnt_menuitem_set_submenu(acc, GNT_MENU(sub));
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2491
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2492 for (iter = purple_accounts_get_all_active(); iter;
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2493 iter = g_list_delete_link(iter, iter)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2494 PurpleAccount *account = iter->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2495 PurpleConnection *gc = purple_account_get_connection(account);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
2496 PurpleProtocol *protocol;
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2497
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2498 if (!gc || !PURPLE_CONNECTION_IS_CONNECTED(gc))
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2499 continue;
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
2500 protocol = purple_connection_get_protocol(gc);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
2501
39759
ea1401483849 Rename *_GET_*_IFACE to more standard *_GET_IFACE.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39698
diff changeset
2502 if (PURPLE_PROTOCOL_IMPLEMENTS(protocol, CLIENT, get_actions)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2503 item = gnt_menuitem_new(purple_account_get_username(account));
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2504 gnt_menu_add_item(GNT_MENU(sub), item);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
2505 build_protocol_actions(item, protocol, gc);
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2506 }
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2507 }
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2508 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2509
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2510 static void
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2511 reconstruct_grouping_menu(void)
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2512 {
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2513 GList *iter;
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2514 GntWidget *subsub;
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2515
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2516 if (!ggblist || !ggblist->grouping)
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2517 return;
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2518
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2519 subsub = gnt_menu_new(GNT_MENU_POPUP);
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2520 gnt_menuitem_set_submenu(ggblist->grouping, GNT_MENU(subsub));
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2521
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2522 for (iter = managers; iter; iter = iter->next) {
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2523 char menuid[128];
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2524 FinchBlistManager *manager = iter->data;
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2525 GntMenuItem *item = gnt_menuitem_new(_(manager->name));
25708
7e97dbce8223 applied changes from aa7ce93329f5ccbe74640a92b6656ae402d8eea8
Ethan Blanton <elb@pidgin.im>
parents: 24799
diff changeset
2526 g_snprintf(menuid, sizeof(menuid), "grouping-%s", manager->id);
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2527 gnt_menuitem_set_id(GNT_MENU_ITEM(item), menuid);
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2528 gnt_menu_add_item(GNT_MENU(subsub), item);
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2529 g_object_set_data_full(G_OBJECT(item), "grouping-id", g_strdup(manager->id), g_free);
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2530 gnt_menuitem_set_callback(item, menu_group_set_cb, NULL);
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2531 }
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2532 }
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2533
19555
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2534 static gboolean
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2535 auto_join_chats(gpointer data)
15242
4f4b5d66f9af [gaim-migrate @ 17967]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15241
diff changeset
2536 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2537 PurpleBlistNode *node;
19555
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2538 PurpleConnection *pc = data;
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2539 PurpleAccount *account = purple_connection_get_account(pc);
15242
4f4b5d66f9af [gaim-migrate @ 17967]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15241
diff changeset
2540
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2541 for (node = purple_blist_get_default_root(); node;
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2542 node = purple_blist_node_next(node, FALSE)) {
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
2543 if (PURPLE_IS_CHAT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2544 PurpleChat *chat = (PurpleChat*)node;
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
2545 if (purple_chat_get_account(chat) == account &&
16828
0501ee8b8220 Fix this spectacularly braindead code. I must've been on the good stuff when I wrote this. Fixes #364.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16719
diff changeset
2546 purple_blist_node_get_bool(node, "gnt-autojoin"))
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
2547 purple_serv_join_chat(purple_account_get_connection(account), purple_chat_get_components(chat));
15242
4f4b5d66f9af [gaim-migrate @ 17967]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15241
diff changeset
2548 }
4f4b5d66f9af [gaim-migrate @ 17967]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15241
diff changeset
2549 }
19555
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2550 return FALSE;
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2551 }
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2552
30039
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2553 static gboolean
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2554 account_autojoin_cb(PurpleConnection *gc, gpointer null)
19555
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2555 {
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2556 g_idle_add(auto_join_chats, gc);
30039
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2557 return TRUE;
15242
4f4b5d66f9af [gaim-migrate @ 17967]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15241
diff changeset
2558 }
18626
c2d9efa0ef1a Minor changes to remove a couple of lines of duplication.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18625
diff changeset
2559
c2d9efa0ef1a Minor changes to remove a couple of lines of duplication.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18625
diff changeset
2560 static void toggle_pref_cb(GntMenuItem *item, gpointer n)
18625
775baeaa9f1a Plucked revision from im.pidgin.soc.2007.finchfeat to allow showing empty
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18614
diff changeset
2561 {
18626
c2d9efa0ef1a Minor changes to remove a couple of lines of duplication.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18625
diff changeset
2562 purple_prefs_set_bool(n, !purple_prefs_get_bool(n));
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2563 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2564
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2565 static void sort_blist_change_cb(GntMenuItem *item, gpointer n)
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2566 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2567 purple_prefs_set_string(PREF_ROOT "/sort_type", n);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2568 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2569
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2570 static void
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2571 block_select_cb(gpointer data, PurpleRequestFields *fields)
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2572 {
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2573 PurpleAccount *account = purple_request_fields_get_account(fields, "account");
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2574 const char *name = purple_request_fields_get_string(fields, "screenname");
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2575 if (account && name && *name != '\0') {
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
2576 if (GPOINTER_TO_INT(purple_request_fields_get_choice(fields, "block")) == 1) {
34584
ed2747e0598c Refactored finch to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 33935
diff changeset
2577 purple_account_privacy_deny(account, name);
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2578 } else {
34584
ed2747e0598c Refactored finch to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 33935
diff changeset
2579 purple_account_privacy_allow(account, name);
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2580 }
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2581 }
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2582 }
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2583
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2584 static void
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2585 block_select(GntMenuItem *item, gpointer n)
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2586 {
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2587 PurpleRequestFields *fields;
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2588 PurpleRequestFieldGroup *group;
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2589 PurpleRequestField *field;
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2590
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2591 fields = purple_request_fields_new();
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2592
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2593 group = purple_request_field_group_new(NULL);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2594 purple_request_fields_add_group(fields, group);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2595
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2596 field = purple_request_field_string_new("screenname", _("Name"), NULL, FALSE);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2597 purple_request_field_set_type_hint(field, "screenname");
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2598 purple_request_field_set_required(field, TRUE);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2599 purple_request_field_group_add_field(group, field);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2600
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2601 field = purple_request_field_account_new("account", _("Account"), NULL);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2602 purple_request_field_set_type_hint(field, "account");
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2603 purple_request_field_set_visible(field,
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2604 (purple_connections_get_all() != NULL &&
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2605 purple_connections_get_all()->next != NULL));
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2606 purple_request_field_set_required(field, TRUE);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2607 purple_request_field_group_add_field(group, field);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2608
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
2609 field = purple_request_field_choice_new("block", _("Block/Unblock"), GINT_TO_POINTER(1));
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
2610 purple_request_field_choice_add(field, _("Block"), GINT_TO_POINTER(1));
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
2611 purple_request_field_choice_add(field, _("Unblock"), GINT_TO_POINTER(2));
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2612 purple_request_field_group_add_field(group, field);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2613
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2614 purple_request_fields(
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2615 purple_blist_get_default(), _("Block/Unblock"), NULL,
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2616 _("Please enter the username or alias of the person "
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2617 "you would like to Block/Unblock."),
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2618 fields, _("OK"), G_CALLBACK(block_select_cb), _("Cancel"), NULL,
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2619 NULL, NULL);
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2620 }
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2621
18607
9b0e8be076f0 Fix a bug where buddies from offline accounts were showing up.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18400
diff changeset
2622 /* send_im_select* -- Xerox */
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2623 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2624 send_im_select_cb(gpointer data, PurpleRequestFields *fields)
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2625 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2626 PurpleAccount *account;
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2627 const char *username;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
2628 PurpleIMConversation *im;
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2629
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2630 account = purple_request_fields_get_account(fields, "account");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2631 username = purple_request_fields_get_string(fields, "screenname");
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2632
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
2633 im = purple_im_conversation_new(account, username);
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
2634 purple_conversation_present(PURPLE_CONVERSATION(im));
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2635 }
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2636
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2637 static void
14981
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14951
diff changeset
2638 send_im_select(GntMenuItem *item, gpointer n)
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2639 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2640 PurpleRequestFields *fields;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2641 PurpleRequestFieldGroup *group;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2642 PurpleRequestField *field;
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2643
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2644 fields = purple_request_fields_new();
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2645
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2646 group = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2647 purple_request_fields_add_group(fields, group);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2648
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2649 field = purple_request_field_string_new("screenname", _("Name"), NULL, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2650 purple_request_field_set_type_hint(field, "screenname");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2651 purple_request_field_set_required(field, TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2652 purple_request_field_group_add_field(group, field);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2653
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2654 field = purple_request_field_account_new("account", _("Account"), NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2655 purple_request_field_set_type_hint(field, "account");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2656 purple_request_field_set_visible(field,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2657 (purple_connections_get_all() != NULL &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2658 purple_connections_get_all()->next != NULL));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2659 purple_request_field_set_required(field, TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2660 purple_request_field_group_add_field(group, field);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2661
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2662 purple_request_fields(
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2663 purple_blist_get_default(), _("New Instant Message"), NULL,
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2664 _("Please enter the username or alias of the person "
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2665 "you would like to IM."),
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2666 fields, _("OK"), G_CALLBACK(send_im_select_cb), _("Cancel"),
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2667 NULL, NULL, NULL);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2668 }
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2669
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2670 static void
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2671 join_chat_select_cb(gpointer data, PurpleRequestFields *fields)
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2672 {
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2673 PurpleAccount *account;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2674 const char *name;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2675 PurpleConnection *gc;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2676 PurpleChat *chat;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2677 GHashTable *hash = NULL;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
2678 PurpleChatConversation *conv;
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2679
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2680 account = purple_request_fields_get_account(fields, "account");
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2681 name = purple_request_fields_get_string(fields, "chat");
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2682
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2683 if (!purple_account_is_connected(account))
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2684 return;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2685
22336
ac905bb0a8ec Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22335
diff changeset
2686 gc = purple_account_get_connection(account);
23422
22bc7c68bbc3 Fix chat joining from the 'Join a chat' dialog. Thanks to w00b on IRC for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22988
diff changeset
2687 /* Create a new conversation now. This will give focus to the new window.
22bc7c68bbc3 Fix chat joining from the 'Join a chat' dialog. Thanks to w00b on IRC for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22988
diff changeset
2688 * But it's necessary to pretend that we left the chat, because otherwise
22bc7c68bbc3 Fix chat joining from the 'Join a chat' dialog. Thanks to w00b on IRC for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22988
diff changeset
2689 * a new conversation window will pop up when we finally join the chat. */
34625
03d62b1660fc Refactor code to remove conversation type from some instances of purple_conversations_find_with_account()
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
2690 if (!(conv = purple_conversations_find_chat_with_account(name, account))) {
34627
08733a7475df Replaced purple_conversation_new() with purple_[im,chat]_conversation_new()
Ankit Vani <a@nevitus.org>
parents: 34625
diff changeset
2691 conv = purple_chat_conversation_new(account, name);
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
2692 purple_chat_conversation_leave(conv);
23422
22bc7c68bbc3 Fix chat joining from the 'Join a chat' dialog. Thanks to w00b on IRC for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22988
diff changeset
2693 } else {
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
2694 purple_conversation_present(PURPLE_CONVERSATION(conv));
23422
22bc7c68bbc3 Fix chat joining from the 'Join a chat' dialog. Thanks to w00b on IRC for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22988
diff changeset
2695 }
22bc7c68bbc3 Fix chat joining from the 'Join a chat' dialog. Thanks to w00b on IRC for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22988
diff changeset
2696
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2697 chat = purple_blist_find_chat(account, name);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2698 if (chat == NULL) {
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
2699 PurpleProtocol *protocol = purple_connection_get_protocol(gc);
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
2700 hash = purple_protocol_chat_iface_info_defaults(protocol, gc, name);
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2701 } else {
22341
ed341c90116e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
2702 hash = purple_chat_get_components(chat);
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2703 }
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
2704 purple_serv_join_chat(gc, hash);
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2705 if (chat == NULL && hash != NULL)
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2706 g_hash_table_destroy(hash);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2707 }
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2708
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2709 static void
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2710 join_chat_select(GntMenuItem *item, gpointer n)
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2711 {
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2712 PurpleRequestFields *fields;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2713 PurpleRequestFieldGroup *group;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2714 PurpleRequestField *field;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2715
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2716 fields = purple_request_fields_new();
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2717
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2718 group = purple_request_field_group_new(NULL);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2719 purple_request_fields_add_group(fields, group);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2720
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2721 field = purple_request_field_string_new("chat", _("Channel"), NULL, FALSE);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2722 purple_request_field_set_required(field, TRUE);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2723 purple_request_field_group_add_field(group, field);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2724
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2725 field = purple_request_field_account_new("account", _("Account"), NULL);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2726 purple_request_field_set_type_hint(field, "account");
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2727 purple_request_field_set_visible(field,
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2728 (purple_connections_get_all() != NULL &&
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2729 purple_connections_get_all()->next != NULL));
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2730 purple_request_field_set_required(field, TRUE);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2731 purple_request_field_group_add_field(group, field);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2732
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2733 purple_request_fields(
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2734 purple_blist_get_default(), _("Join a Chat"), NULL,
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2735 _("Please enter the name of the chat you want to join."),
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2736 fields, _("Join"), G_CALLBACK(join_chat_select_cb), _("Cancel"),
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2737 NULL, NULL, NULL);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2738 }
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2739
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2740 static void
22988
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2741 view_log_select_cb(gpointer data, PurpleRequestFields *fields)
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2742 {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2743 PurpleAccount *account;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2744 const char *name;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2745 PurpleBuddy *buddy;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2746 PurpleContact *contact;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2747
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2748 account = purple_request_fields_get_account(fields, "account");
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2749 name = purple_request_fields_get_string(fields, "screenname");
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2750
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
2751 buddy = purple_blist_find_buddy(account, name);
22988
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2752 if (buddy) {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2753 contact = purple_buddy_get_contact(buddy);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2754 } else {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2755 contact = NULL;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2756 }
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2757
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2758 if (contact) {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2759 finch_log_show_contact(contact);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2760 } else {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2761 finch_log_show(PURPLE_LOG_IM, name, account);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2762 }
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2763 }
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2764
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2765 static void
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2766 view_log_cb(GntMenuItem *item, gpointer n)
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2767 {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2768 PurpleRequestFields *fields;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2769 PurpleRequestFieldGroup *group;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2770 PurpleRequestField *field;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2771
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2772 fields = purple_request_fields_new();
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2773
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2774 group = purple_request_field_group_new(NULL);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2775 purple_request_fields_add_group(fields, group);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2776
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2777 field = purple_request_field_string_new("screenname", _("Name"), NULL, FALSE);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2778 purple_request_field_set_type_hint(field, "screenname-all");
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2779 purple_request_field_set_required(field, TRUE);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2780 purple_request_field_group_add_field(group, field);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2781
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2782 field = purple_request_field_account_new("account", _("Account"), NULL);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2783 purple_request_field_set_type_hint(field, "account");
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2784 purple_request_field_set_visible(field,
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2785 (purple_accounts_get_all() != NULL &&
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2786 purple_accounts_get_all()->next != NULL));
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2787 purple_request_field_set_required(field, TRUE);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2788 purple_request_field_group_add_field(group, field);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2789 purple_request_field_account_set_show_all(field, TRUE);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2790
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2791 purple_request_fields(
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2792 purple_blist_get_default(), _("View Log"), NULL,
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2793 _("Please enter the username or alias of the person "
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2794 "whose log you would like to view."),
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2795 fields, _("OK"), G_CALLBACK(view_log_select_cb), _("Cancel"),
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2796 NULL, NULL, NULL);
22988
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2797 }
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2798
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2799 static void
23431
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2800 view_all_logs_cb(GntMenuItem *item, gpointer n)
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2801 {
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2802 finch_log_show(PURPLE_LOG_IM, NULL, NULL);
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2803 }
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2804
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2805 static void
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2806 menu_add_buddy_cb(GntMenuItem *item, gpointer null)
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2807 {
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2808 purple_blist_request_add_buddy(NULL, NULL, NULL, NULL);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2809 }
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2810
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2811 static void
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2812 menu_add_chat_cb(GntMenuItem *item, gpointer null)
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2813 {
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2814 purple_blist_request_add_chat(NULL, NULL, NULL, NULL);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2815 }
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2816
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2817 static void
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2818 menu_add_group_cb(GntMenuItem *item, gpointer null)
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2819 {
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2820 purple_blist_request_add_group();
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2821 }
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2822
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2823 static void
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
2824 menu_group_set_cb(GntMenuItem *item, gpointer null)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
2825 {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
2826 const char *id = g_object_get_data(G_OBJECT(item), "grouping-id");
22300
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
2827 purple_prefs_set_string(PREF_ROOT "/grouping", id);
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
2828 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
2829
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
2830 static void
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21855
diff changeset
2831 create_menu(void)
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2832 {
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2833 GntWidget *menu, *sub, *subsub;
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2834 GntMenuItem *item;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2835 GntWindow *window;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2836
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2837 if (!ggblist)
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2838 return;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2839
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2840 window = GNT_WINDOW(ggblist->window);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2841 ggblist->menu = menu = gnt_menu_new(GNT_MENU_TOPLEVEL);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2842 gnt_window_set_menu(window, GNT_MENU(menu));
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2843
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2844 item = gnt_menuitem_new(_("Options"));
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2845 gnt_menu_add_item(GNT_MENU(menu), item);
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2846
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2847 sub = gnt_menu_new(GNT_MENU_POPUP);
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2848 gnt_menuitem_set_submenu(item, GNT_MENU(sub));
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2849
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2850 item = gnt_menuitem_new(_("Send IM..."));
20823
4f1e2463fc36 Add IDs to the menuitems in the buddylist menu so they can have acceletor keys.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20793
diff changeset
2851 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "send-im");
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2852 gnt_menu_add_item(GNT_MENU(sub), item);
15991
1efb6bd8ba3f Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15931
diff changeset
2853 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), send_im_select, NULL);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2854
22378
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2855 item = gnt_menuitem_new(_("Block/Unblock..."));
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2856 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "block-unblock");
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2857 gnt_menu_add_item(GNT_MENU(sub), item);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2858 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), block_select, NULL);
921097afd92d Add a [X] Blocked item to the buddy context menu, and add a dialog to
Richard Nelson <wabz@pidgin.im>
parents: 22376
diff changeset
2859
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2860 item = gnt_menuitem_new(_("Join Chat..."));
20823
4f1e2463fc36 Add IDs to the menuitems in the buddylist menu so they can have acceletor keys.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20793
diff changeset
2861 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "join-chat");
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2862 gnt_menu_add_item(GNT_MENU(sub), item);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2863 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), join_chat_select, NULL);
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2864
22988
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2865 item = gnt_menuitem_new(_("View Log..."));
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2866 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "view-log");
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2867 gnt_menu_add_item(GNT_MENU(sub), item);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2868 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), view_log_cb, NULL);
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2869
23431
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2870 item = gnt_menuitem_new(_("View All Logs"));
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2871 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "view-all-logs");
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2872 gnt_menu_add_item(GNT_MENU(sub), item);
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2873 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), view_all_logs_cb, NULL);
c50538da03fd Added "View All Logs" menu in the buddylist to display a list of all IM
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23422
diff changeset
2874
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2875 item = gnt_menuitem_new(_("Show"));
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2876 gnt_menu_add_item(GNT_MENU(sub), item);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2877 subsub = gnt_menu_new(GNT_MENU_POPUP);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2878 gnt_menuitem_set_submenu(item, GNT_MENU(subsub));
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2879
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2880 item = gnt_menuitem_check_new(_("Empty groups"));
20823
4f1e2463fc36 Add IDs to the menuitems in the buddylist menu so they can have acceletor keys.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20793
diff changeset
2881 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "show-empty-groups");
18625
775baeaa9f1a Plucked revision from im.pidgin.soc.2007.finchfeat to allow showing empty
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18614
diff changeset
2882 gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item),
775baeaa9f1a Plucked revision from im.pidgin.soc.2007.finchfeat to allow showing empty
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18614
diff changeset
2883 purple_prefs_get_bool(PREF_ROOT "/emptygroups"));
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2884 gnt_menu_add_item(GNT_MENU(subsub), item);
18626
c2d9efa0ef1a Minor changes to remove a couple of lines of duplication.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18625
diff changeset
2885 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), toggle_pref_cb, PREF_ROOT "/emptygroups");
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2886
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2887 item = gnt_menuitem_check_new(_("Offline buddies"));
20823
4f1e2463fc36 Add IDs to the menuitems in the buddylist menu so they can have acceletor keys.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20793
diff changeset
2888 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "show-offline-buddies");
15991
1efb6bd8ba3f Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15931
diff changeset
2889 gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2890 purple_prefs_get_bool(PREF_ROOT "/showoffline"));
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2891 gnt_menu_add_item(GNT_MENU(subsub), item);
18626
c2d9efa0ef1a Minor changes to remove a couple of lines of duplication.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18625
diff changeset
2892 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), toggle_pref_cb, PREF_ROOT "/showoffline");
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2893
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2894 item = gnt_menuitem_new(_("Sort"));
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2895 gnt_menu_add_item(GNT_MENU(sub), item);
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2896 subsub = gnt_menu_new(GNT_MENU_POPUP);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2897 gnt_menuitem_set_submenu(item, GNT_MENU(subsub));
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2898
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2899 item = gnt_menuitem_new(_("By Status"));
20823
4f1e2463fc36 Add IDs to the menuitems in the buddylist menu so they can have acceletor keys.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20793
diff changeset
2900 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "sort-status");
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2901 gnt_menu_add_item(GNT_MENU(subsub), item);
15991
1efb6bd8ba3f Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15931
diff changeset
2902 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), sort_blist_change_cb, "status");
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2903
20684
4daaf3284863 propagate from branch 'im.pidgin.pidgin' (head b47c4fe72d16b3724a2e8fa0b9c783bc33863beb)
Gabriel Schulhof <nix@go-nix.ca>
parents: 20628 19997
diff changeset
2904 item = gnt_menuitem_new(_("Alphabetically"));
20823
4f1e2463fc36 Add IDs to the menuitems in the buddylist menu so they can have acceletor keys.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20793
diff changeset
2905 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "sort-alpha");
20684
4daaf3284863 propagate from branch 'im.pidgin.pidgin' (head b47c4fe72d16b3724a2e8fa0b9c783bc33863beb)
Gabriel Schulhof <nix@go-nix.ca>
parents: 20628 19997
diff changeset
2906 gnt_menu_add_item(GNT_MENU(subsub), item);
15991
1efb6bd8ba3f Some define changes. This helps in generating the python bindings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15931
diff changeset
2907 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), sort_blist_change_cb, "text");
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2908
20691
2b0a4e2175db Restoring gntblist.c:create_menu
Gabriel Schulhof <nix@go-nix.ca>
parents: 20690
diff changeset
2909 item = gnt_menuitem_new(_("By Log Size"));
20823
4f1e2463fc36 Add IDs to the menuitems in the buddylist menu so they can have acceletor keys.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20793
diff changeset
2910 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "sort-log");
20691
2b0a4e2175db Restoring gntblist.c:create_menu
Gabriel Schulhof <nix@go-nix.ca>
parents: 20690
diff changeset
2911 gnt_menu_add_item(GNT_MENU(subsub), item);
2b0a4e2175db Restoring gntblist.c:create_menu
Gabriel Schulhof <nix@go-nix.ca>
parents: 20690
diff changeset
2912 gnt_menuitem_set_callback(GNT_MENU_ITEM(item), sort_blist_change_cb, "log");
2b0a4e2175db Restoring gntblist.c:create_menu
Gabriel Schulhof <nix@go-nix.ca>
parents: 20690
diff changeset
2913
2b0a4e2175db Restoring gntblist.c:create_menu
Gabriel Schulhof <nix@go-nix.ca>
parents: 20690
diff changeset
2914 item = gnt_menuitem_new(_("Add"));
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2915 gnt_menu_add_item(GNT_MENU(sub), item);
20691
2b0a4e2175db Restoring gntblist.c:create_menu
Gabriel Schulhof <nix@go-nix.ca>
parents: 20690
diff changeset
2916
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2917 subsub = gnt_menu_new(GNT_MENU_POPUP);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2918 gnt_menuitem_set_submenu(item, GNT_MENU(subsub));
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2919
22288
c6c6473ce2b9 Mark some strings for translation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22286
diff changeset
2920 item = gnt_menuitem_new(_("Buddy"));
20823
4f1e2463fc36 Add IDs to the menuitems in the buddylist menu so they can have acceletor keys.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20793
diff changeset
2921 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "add-buddy");
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2922 gnt_menu_add_item(GNT_MENU(subsub), item);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2923 gnt_menuitem_set_callback(item, menu_add_buddy_cb, NULL);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2924
22288
c6c6473ce2b9 Mark some strings for translation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22286
diff changeset
2925 item = gnt_menuitem_new(_("Chat"));
20823
4f1e2463fc36 Add IDs to the menuitems in the buddylist menu so they can have acceletor keys.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20793
diff changeset
2926 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "add-chat");
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2927 gnt_menu_add_item(GNT_MENU(subsub), item);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2928 gnt_menuitem_set_callback(item, menu_add_chat_cb, NULL);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2929
22288
c6c6473ce2b9 Mark some strings for translation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22286
diff changeset
2930 item = gnt_menuitem_new(_("Group"));
20823
4f1e2463fc36 Add IDs to the menuitems in the buddylist menu so they can have acceletor keys.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20793
diff changeset
2931 gnt_menuitem_set_id(GNT_MENU_ITEM(item), "add-group");
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2932 gnt_menu_add_item(GNT_MENU(subsub), item);
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2933 gnt_menuitem_set_callback(item, menu_add_group_cb, NULL);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2934
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2935 ggblist->grouping = item = gnt_menuitem_new(_("Grouping"));
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
2936 gnt_menu_add_item(GNT_MENU(sub), item);
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2937 reconstruct_grouping_menu();
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
2938
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2939 reconstruct_accounts_menu();
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2940 gnt_menu_add_item(GNT_MENU(menu), ggblist->accounts);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2941
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2942 reconstruct_plugins_menu();
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2943 gnt_menu_add_item(GNT_MENU(menu), ggblist->plugins);
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2944 }
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2945
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
2946 void finch_blist_show()
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
2947 {
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2948 blist_show(purple_blist_get_default());
14909
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14908
diff changeset
2949 }
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
2950
14909
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14908
diff changeset
2951 static void
16165
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
2952 group_collapsed(GntWidget *widget, PurpleBlistNode *node, gboolean collapsed, gpointer null)
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
2953 {
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
2954 if (PURPLE_IS_GROUP(node))
16166
e40815a97f8e ...only for groups
Richard Nelson <wabz@pidgin.im>
parents: 16165
diff changeset
2955 purple_blist_node_set_bool(node, "collapsed", collapsed);
16165
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
2956 }
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
2957
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
2958 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2959 blist_show(PurpleBuddyList *list)
14909
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14908
diff changeset
2960 {
39695
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
2961 if (ggblist->window) {
18400
549820f4725c If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18391
diff changeset
2962 gnt_window_present(ggblist->window);
14909
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14908
diff changeset
2963 return;
18400
549820f4725c If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18391
diff changeset
2964 }
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2965
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2966 ggblist->window = gnt_vwindow_new(FALSE);
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13927
diff changeset
2967 gnt_widget_set_name(ggblist->window, "buddylist");
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
2968 gnt_box_set_toplevel(GNT_BOX(ggblist->window), TRUE);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2969 gnt_box_set_title(GNT_BOX(ggblist->window), _("Buddy List"));
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
2970 gnt_box_set_pad(GNT_BOX(ggblist->window), 0);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2971
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2972 ggblist->tree = gnt_tree_new();
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2973
39617
1d0453799f73 Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39483
diff changeset
2974 gnt_widget_set_has_border(ggblist->tree, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2975 gnt_widget_set_size(ggblist->tree, purple_prefs_get_int(PREF_ROOT "/size/width"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2976 purple_prefs_get_int(PREF_ROOT "/size/height"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2977 gnt_widget_set_position(ggblist->window, purple_prefs_get_int(PREF_ROOT "/position/x"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2978 purple_prefs_get_int(PREF_ROOT "/position/y"));
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2979
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2980 gnt_box_add_widget(GNT_BOX(ggblist->window), ggblist->tree);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2981
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2982 ggblist->status = gnt_combo_box_new();
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2983 gnt_box_add_widget(GNT_BOX(ggblist->window), ggblist->status);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2984 ggblist->statustext = gnt_entry_new(NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2985 gnt_box_add_widget(GNT_BOX(ggblist->window), ggblist->statustext);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2986
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2987 gnt_widget_show(ggblist->window);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
2988
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2989 purple_signal_connect(purple_connections_get_handle(), "signed-on", finch_blist_get_handle(),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2990 PURPLE_CALLBACK(reconstruct_accounts_menu), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2991 purple_signal_connect(purple_connections_get_handle(), "signed-off", finch_blist_get_handle(),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2992 PURPLE_CALLBACK(reconstruct_accounts_menu), NULL);
26871
d62964222795 Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <darkrain42@pidgin.im>
parents: 26852
diff changeset
2993 purple_signal_connect(purple_accounts_get_handle(), "account-actions-changed", finch_blist_get_handle(),
d62964222795 Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <darkrain42@pidgin.im>
parents: 26852
diff changeset
2994 PURPLE_CALLBACK(reconstruct_accounts_menu), NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2995 purple_signal_connect(purple_blist_get_handle(), "buddy-status-changed", finch_blist_get_handle(),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2996 PURPLE_CALLBACK(buddy_status_changed), ggblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2997 purple_signal_connect(purple_blist_get_handle(), "buddy-idle-changed", finch_blist_get_handle(),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2998 PURPLE_CALLBACK(buddy_idle_changed), ggblist);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2999
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
3000 purple_signal_connect(purple_plugins_get_handle(), "plugin-load", finch_blist_get_handle(),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
3001 PURPLE_CALLBACK(reconstruct_plugins_menu), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
3002 purple_signal_connect(purple_plugins_get_handle(), "plugin-unload", finch_blist_get_handle(),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
3003 PURPLE_CALLBACK(reconstruct_plugins_menu), NULL);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
3004
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
3005 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", finch_blist_get_handle(),
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
3006 PURPLE_CALLBACK(buddy_signed_on_off), ggblist);
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
3007 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", finch_blist_get_handle(),
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
3008 PURPLE_CALLBACK(buddy_signed_on_off), ggblist);
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
3009
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
3010 g_signal_connect(G_OBJECT(ggblist->tree), "selection_changed", G_CALLBACK(selection_changed), ggblist);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
3011 g_signal_connect(G_OBJECT(ggblist->tree), "key_pressed", G_CALLBACK(key_pressed), ggblist);
14896
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
3012 g_signal_connect(G_OBJECT(ggblist->tree), "context-menu", G_CALLBACK(context_menu), ggblist);
16165
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
3013 g_signal_connect(G_OBJECT(ggblist->tree), "collapse-toggled", G_CALLBACK(group_collapsed), NULL);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
3014 g_signal_connect(G_OBJECT(ggblist->tree), "activate", G_CALLBACK(selection_activate), ggblist);
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3015 g_signal_connect_data(G_OBJECT(ggblist->tree), "gained-focus", G_CALLBACK(draw_tooltip),
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3016 ggblist, 0, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
3017 g_signal_connect_data(G_OBJECT(ggblist->tree), "lost-focus", G_CALLBACK(remove_peripherals),
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3018 ggblist, 0, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
16779
006f50afb7a6 Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents: 16719
diff changeset
3019 g_signal_connect_data(G_OBJECT(ggblist->window), "workspace-hidden", G_CALLBACK(remove_peripherals),
006f50afb7a6 Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents: 16719
diff changeset
3020 ggblist, 0, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
3021 g_signal_connect(G_OBJECT(ggblist->tree), "size_changed", G_CALLBACK(size_changed_cb), NULL);
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
3022 g_signal_connect(G_OBJECT(ggblist->window), "position_set", G_CALLBACK(save_position_cb), NULL);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
3023 g_signal_connect(G_OBJECT(ggblist->window), "destroy", G_CALLBACK(reset_blist_window), NULL);
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
3024
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3025 /* Status signals */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
3026 purple_signal_connect(purple_savedstatuses_get_handle(), "savedstatus-changed", finch_blist_get_handle(),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
3027 PURPLE_CALLBACK(savedstatus_changed), NULL);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3028 g_signal_connect(G_OBJECT(ggblist->status), "selection_changed",
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3029 G_CALLBACK(status_selection_changed), NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3030 g_signal_connect(G_OBJECT(ggblist->statustext), "key_pressed",
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3031 G_CALLBACK(status_text_changed), NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3032
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
3033 create_menu();
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
3034
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
3035 populate_buddylist();
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3036
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
3037 savedstatus_changed(purple_savedstatus_get_current(), NULL);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
3038 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
3039
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
3040 void finch_blist_uninit()
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
3041 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
3042 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
3043
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
3044 gboolean finch_blist_get_position(int *x, int *y)
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3045 {
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3046 if (!ggblist || !ggblist->window)
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3047 return FALSE;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3048 gnt_widget_get_position(ggblist->window, x, y);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3049 return TRUE;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3050 }
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
3051
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
3052 void finch_blist_set_position(int x, int y)
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3053 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3054 gnt_widget_set_position(ggblist->window, x, y);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3055 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3056
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
3057 gboolean finch_blist_get_size(int *width, int *height)
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3058 {
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3059 if (!ggblist || !ggblist->window)
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3060 return FALSE;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3061 gnt_widget_get_size(ggblist->window, width, height);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3062 return TRUE;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3063 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3064
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
3065 void finch_blist_set_size(int width, int height)
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3066 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3067 gnt_widget_set_size(ggblist->window, width, height);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3068 }
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3069
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3070 void finch_blist_install_manager(const FinchBlistManager *manager)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3071 {
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
3072 if (!g_list_find(managers, manager)) {
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3073 managers = g_list_append(managers, (gpointer)manager);
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
3074 reconstruct_grouping_menu();
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
3075 if (purple_strequal(manager->id, purple_prefs_get_string(PREF_ROOT "/grouping")))
22300
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
3076 purple_prefs_trigger_callback(PREF_ROOT "/grouping");
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
3077 }
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3078 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3079
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3080 void finch_blist_uninstall_manager(const FinchBlistManager *manager)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3081 {
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
3082 if (g_list_find(managers, manager)) {
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
3083 managers = g_list_remove(managers, manager);
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
3084 reconstruct_grouping_menu();
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
3085 if (purple_strequal(manager->id, purple_prefs_get_string(PREF_ROOT "/grouping")))
22300
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
3086 purple_prefs_trigger_callback(PREF_ROOT "/grouping");
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
3087 }
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3088 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3089
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3090 FinchBlistManager * finch_blist_manager_find(const char *id)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3091 {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3092 GList *iter = managers;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3093 if (!id)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3094 return NULL;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3095
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3096 for (; iter; iter = iter->next) {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3097 FinchBlistManager *m = iter->data;
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
3098 if (purple_strequal(id, m->id))
22285
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3099 return m;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3100 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3101 return NULL;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3102 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3103
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3104 GntTree * finch_blist_get_tree(void)
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3105 {
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3106 return ggblist ? GNT_TREE(ggblist->tree) : NULL;
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3107 }
203b8d12f1ca Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22282
diff changeset
3108
35587
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3109 /**************************************************************************
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3110 * GObject code
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3111 **************************************************************************/
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3112 G_DEFINE_TYPE(FinchBuddyList, finch_buddy_list, PURPLE_TYPE_BUDDY_LIST)
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3113
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3114 static void
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3115 finch_buddy_list_init(FinchBuddyList *self)
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3116 {
39695
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3117 if (!ggblist) {
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3118 /* The first buddy list object becomes the default. */
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3119 ggblist = self;
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3120 }
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3121
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3122 self->manager = finch_blist_manager_find(
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3123 purple_prefs_get_string(PREF_ROOT "/grouping"));
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3124 if (!self->manager) {
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3125 self->manager = &default_manager;
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3126 }
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3127 }
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3128
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3129 static void
39696
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3130 finch_buddy_list_finalize(GObject *obj)
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3131 {
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3132 FinchBuddyList *ggblist = FINCH_BUDDY_LIST(obj);
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3133
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3134 gnt_widget_destroy(ggblist->window);
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3135
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3136 G_OBJECT_CLASS(finch_buddy_list_parent_class)->finalize(obj);
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3137 }
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3138
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3139 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3140 finch_buddy_list_class_init(FinchBuddyListClass *klass)
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3141 {
39696
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3142 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3143 PurpleBuddyListClass *purple_blist_class;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3144
39696
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3145 obj_class->finalize = finch_buddy_list_finalize;
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3146
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3147 purple_blist_class = PURPLE_BUDDY_LIST_CLASS(klass);
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3148 purple_blist_class->new_node = new_node;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3149 purple_blist_class->show = blist_show;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3150 purple_blist_class->update = node_update;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3151 purple_blist_class->remove = node_remove;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3152 purple_blist_class->request_add_buddy = finch_request_add_buddy;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3153 purple_blist_class->request_add_chat = finch_request_add_chat;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3154 purple_blist_class->request_add_group = finch_request_add_group;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3155 }
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3156
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3157 /**************************************************************************
35587
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3158 * GBoxed code
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3159 **************************************************************************/
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3160 static FinchBlistManager *
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3161 finch_blist_manager_copy(FinchBlistManager *manager)
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3162 {
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3163 FinchBlistManager *manager_new;
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3164
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3165 g_return_val_if_fail(manager != NULL, NULL);
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3166
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3167 manager_new = g_new(FinchBlistManager, 1);
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3168 *manager_new = *manager;
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3169
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3170 return manager_new;
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3171 }
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3172
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3173 static void
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3174 finch_blist_manager_free(FinchBlistManager *manager)
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3175 {
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3176 g_return_if_fail(manager != NULL);
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3177
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3178 g_free(manager);
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3179 }
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3180
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3181 GType
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3182 finch_blist_manager_get_type(void)
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3183 {
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3184 static GType type = 0;
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3185
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3186 if (type == 0) {
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3187 type = g_boxed_type_register_static("FinchBlistManager",
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3188 (GBoxedCopyFunc)finch_blist_manager_copy,
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3189 (GBoxedFreeFunc)finch_blist_manager_free);
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3190 }
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3191
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3192 return type;
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3193 }

mercurial