finch/gntblist.c

Sat, 15 Aug 2020 23:33:09 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 15 Aug 2020 23:33:09 -0500
changeset 40511
ec08ac1f7d5f
parent 40441
f23c7e772667
child 40590
597b9c74296e
permissions
-rw-r--r--

Fix Finch for the libgnt single header file

Fix finch for the gnt.h single include header

Testing Done:
Compiled on linux and ran finch-docs.

Reviewed at https://reviews.imfreedom.org/r/70/

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
18273
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18134
diff changeset
23 #include "finch.h"
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18134
diff changeset
24
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38849
diff changeset
25 #include NCURSES_HEADER
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38849
diff changeset
26
40441
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
27 #include <glib/gi18n-lib.h>
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
28
40359
ca141ea93b83 Make all of finch use purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 40131
diff changeset
29 #include <purple.h>
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
30
40511
ec08ac1f7d5f Fix Finch for the libgnt single header file
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
31 #include <gnt.h>
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
32
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
33 #include "gntblist.h"
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14447
diff changeset
34 #include "gntconv.h"
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
35 #include "gntstatus.h"
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
36 #include <string.h>
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
37
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
38 #define PREF_ROOT "/finch/blist"
25732
bdd010ff69fa *** Plucked rev 143e16e9 (sadrul@pidgin.im):
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25708
diff changeset
39 #define TYPING_TIMEOUT_S 4
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
40
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
41 #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
42
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
43 struct _FinchBuddyList {
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
44 PurpleBuddyList parent;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
45
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
46 GntWidget *window;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
47 GntWidget *tree;
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
48
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
49 GntWidget *tooltip;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34855
diff changeset
50 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
51 GList *tagged; /* A list of tagged blistnodes */
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
52
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
53 GntWidget *context;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
54 PurpleBlistNode *cnode;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
55
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
56 /* 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
57 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
58 GntWidget *statustext; /* Status message */
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
59 int typing;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
60
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
61 GntWidget *menu;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
62 /* These are the menuitems that get regenerated */
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
63 GntMenuItem *accounts;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
64 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
65 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
66
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
67 /* 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
68 * 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
69 * 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
70 */
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
71 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
72 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
73
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
74 FinchBlistManager *manager;
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
75 };
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
76
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
77 typedef struct
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
78 {
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
79 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
80 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
81 } FinchBlistNode;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
82
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
83 typedef enum
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
84 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
85 STATUS_PRIMITIVE = 0,
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
86 STATUS_SAVED_POPULAR,
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
87 STATUS_SAVED_ALL,
14194
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
88 STATUS_SAVED_NEW
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
89 } StatusType;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
90
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
91 typedef struct
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
92 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
93 StatusType type;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
94 union
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
95 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
96 PurpleStatusPrimitive prim;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
97 PurpleSavedStatus *saved;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
98 } u;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
99 } StatusBoxItem;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
100
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
101 static FinchBuddyList *ggblist;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
102
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
103 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
104 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
105 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
106 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
107 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
108 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
109 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
110 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
111 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
112 static void remove_peripherals(FinchBuddyList *ggblist);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
113 static const char * get_display_name(PurpleBlistNode *node);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
114 static void savedstatus_changed(PurpleSavedStatus *now, PurpleSavedStatus *old);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
115 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
116 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
117 FinchBuddyList *ggblist);
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
118 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
119 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
120 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
121 PurpleAccount *account,
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
122 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
123 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
124 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
125
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
126 /* Sort functions */
16555
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
127 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
128 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
129 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
130 static int blist_node_compare_log(PurpleBlistNode *n1, PurpleBlistNode *n2);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
131
21804
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21630
diff changeset
132 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
133 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
134 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
135 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
136
35456
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
137 /*
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
138 * 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
139 */
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
140
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
141 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
142 {
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
143 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
144
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
145 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
146 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
147 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
148 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
149 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
150 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
151 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
152 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
153 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
154 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
155 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
156 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
157 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
158 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
159 return TRUE;
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
160 } 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
161 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
162 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
163 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
164 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
165 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
166 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
167 } 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
168 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
169 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
170 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
171 } 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
172 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
173 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
174 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
175 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
176
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
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 }
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
182
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
183 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
184 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
185 }
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
186
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
187 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
188 }
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
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 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
191 {
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
192 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
193
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
194 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
195 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
196
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
197 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
198 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
199
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 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
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
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 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
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 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
206 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
207 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
208 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
209
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
210 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
211
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
212 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
213 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
214 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
215 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
216 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
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 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
219 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
220 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
221 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
222 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
223 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
224 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
225 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
226 }
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
227 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
228 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
229 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
230 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
231 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
232 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
233 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
234 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
235 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
236 } 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
237 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
238 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
239 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
240 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
241 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
242 } 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
243 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
244
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 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
246 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
247 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
248
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22341
diff changeset
249 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
250 } 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
251 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
252 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
253
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 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
255 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
256 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
257
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 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
259 } 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
260 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
261 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
262 }
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
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
264 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
265 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
266 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
267 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
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
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 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
271 *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
272 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
273 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
274
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 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
276 *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
277 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
278 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
279
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 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
281 }
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
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 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
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 "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
286 N_("Default"),
22312
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
287 NULL,
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
288 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
289 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
290 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
291 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
292 {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
293 };
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 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
295
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
296 static FinchBlistNode *
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
297 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
298 {
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
299 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
300 if (!fnode) {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
301 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
302 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
303 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
304 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
305 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
306 return fnode;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
307 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
308
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
309 static void
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
310 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
311 {
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
312 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
313 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
314 return;
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->signed_timer)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
316 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
317 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
318 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
319 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
320
21808
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
321 static int
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
322 get_display_color(PurpleBlistNode *node)
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
323 {
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
324 PurpleBuddy *buddy;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
325 int color = 0;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
326
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
327 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
328 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
329 if (!PURPLE_IS_BUDDY(node))
21808
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
330 return 0;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
331
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
332 buddy = (PurpleBuddy*)node;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
333 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
334 color = color_idle;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
335 } 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
336 color = color_available;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
337 } 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
338 !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
339 color = color_away;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
340 } 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
341 color = color_offline;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
342 }
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
343
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
344 return color;
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
345 }
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
346
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
347 static GntTextFormatFlags
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
348 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
349 {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
350 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
351 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
352
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
353 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
354 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
355
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
356 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
357 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
358 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
359 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
360 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
361 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
362 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
363 }
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 return flag;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
366 }
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 static void
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
369 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
370 {
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
371 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
372 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
373 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
374 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
375
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
376 static void
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
377 new_node(PurpleBuddyList *list, PurpleBlistNode *node)
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
378 {
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
379 }
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
380
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
381 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
382 add_node(PurpleBlistNode *node, FinchBuddyList *ggblist)
13927
c2f57a00bc1f [gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13926
diff changeset
383 {
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
384 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
385 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
386
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
387 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
388 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
389
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
390 if (PURPLE_IS_BUDDY(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
391 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
392 else if (PURPLE_IS_CONTACT(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
393 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
394 else if (PURPLE_IS_GROUP(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
395 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
396 else if (PURPLE_IS_CHAT(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
397 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
398
13927
c2f57a00bc1f [gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13926
diff changeset
399 draw_tooltip(ggblist);
c2f57a00bc1f [gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13926
diff changeset
400 }
c2f57a00bc1f [gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13926
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 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
403 {
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 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
405 }
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
406
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
407 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
408 remove_tooltip(FinchBuddyList *ggblist)
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
409 {
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
410 gnt_widget_destroy(ggblist->tooltip);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
411 ggblist->tooltip = NULL;
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
412 ggblist->tnode = NULL;
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
413 }
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
414
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
415 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
416 node_remove(PurpleBuddyList *list, PurpleBlistNode *node)
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
417 {
39694
4aed5fad4da9 Remove purple_blist_[gs]et_ui_data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39693
diff changeset
418 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
419 PurpleBlistNode *parent;
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
420
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
421 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
422 return;
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
423
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
424 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
425 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
426 }
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
427
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
428 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
429 reset_blist_node_ui_data(node);
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
430 if (ggblist->tagged)
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
431 ggblist->tagged = g_list_remove(ggblist->tagged, node);
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
432
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
433 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
434 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
435 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
436 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
437
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
438 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
439 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
440 node_remove(list, parent);
17876
e22e8884af80 Fix for the bug Alver reported:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17862
diff changeset
441 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
442 node_update(list, parent);
13919
94caf5dc02b4 [gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13915
diff changeset
443 }
14910
a51aca2259d0 [gaim-migrate @ 17617]
Richard Nelson <wabz@pidgin.im>
parents: 14909
diff changeset
444
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
445 draw_tooltip(ggblist);
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
446 }
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
447
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
448 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
449 node_update(PurpleBuddyList *list, PurpleBlistNode *node)
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
450 {
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
451 FinchBuddyList *ggblist;
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
452
39694
4aed5fad4da9 Remove purple_blist_[gs]et_ui_data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39693
diff changeset
453 g_return_if_fail(FINCH_IS_BUDDY_LIST(list));
14455
dec960030def [gaim-migrate @ 17101]
Ethan Blanton <elb@pidgin.im>
parents: 14450
diff changeset
454 /* It really looks like this should never happen ... but it does.
dec960030def [gaim-migrate @ 17101]
Ethan Blanton <elb@pidgin.im>
parents: 14450
diff changeset
455 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
456 happens, so maybe someone will figure it out. */
dec960030def [gaim-migrate @ 17101]
Ethan Blanton <elb@pidgin.im>
parents: 14450
diff changeset
457 g_return_if_fail(node != NULL);
dec960030def [gaim-migrate @ 17101]
Ethan Blanton <elb@pidgin.im>
parents: 14450
diff changeset
458
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
459 ggblist = FINCH_BUDDY_LIST(list);
17862
32f49f3a139a Fix a crash exposed by nullprpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
460 if (ggblist->window == NULL)
32f49f3a139a Fix a crash exposed by nullprpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
461 return;
32f49f3a139a Fix a crash exposed by nullprpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17845
diff changeset
462
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
463 if (purple_blist_node_get_ui_data(node)!= NULL) {
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
464 gnt_tree_change_text(GNT_TREE(ggblist->tree), node,
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
465 0, get_display_name(node));
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
466 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
467 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
468 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
469 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
470 node_remove(list, node);
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
471 }
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
472
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
473 if (PURPLE_IS_BUDDY(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
474 PurpleBuddy *buddy = (PurpleBuddy*)node;
39694
4aed5fad4da9 Remove purple_blist_[gs]et_ui_data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39693
diff changeset
475 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
476 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
477 } 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
478 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
479 } 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
480 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
481 /* 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
482 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
483 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
484 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
485 } 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
486 if (!ggblist->manager->can_add_node(node))
14469
3b398f75a695 [gaim-migrate @ 17115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14467
diff changeset
487 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
488 else
39694
4aed5fad4da9 Remove purple_blist_[gs]et_ui_data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39693
diff changeset
489 add_node(node, FINCH_BUDDY_LIST(list));
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
490 }
24198
a8cf4ef3982a Update the tooltip if the status of the selected node changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23485
diff changeset
491 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
492 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
493 }
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
494 }
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
495
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
496 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
497 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
498 {
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
499 PurpleBuddyList *list;
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
500 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
501
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
502 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
503 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
504 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
505
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
506 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
507 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
508 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
509 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
510 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
511 }
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
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 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
514 }
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
515
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
516 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
517 add_buddy_cb(void *data, PurpleRequestFields *allfields)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
518 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
519 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
520 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
521 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
522 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
523 PurpleAccount *account = purple_request_fields_get_account(allfields, "account");
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
524 const char *error = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
525 PurpleGroup *grp;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
526 PurpleBuddy *buddy;
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
527
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
528 if (!username)
22942
2bf494f8e2a4 Change the string "screen name" to "username" everywhere. I think most
Mark Doliner <markdoliner@pidgin.im>
parents: 22935
diff changeset
529 error = _("You must provide a username for the buddy.");
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
530 else if (!group)
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
531 error = _("You must provide a group.");
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
532 else if (!account)
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
533 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
534 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
535 error = _("The selected account is not online.");
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
536
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
537 if (error)
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
538 {
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
539 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
540 username, group, alias);
34449
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34338
diff changeset
541 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
542 error, purple_request_cpar_from_account(account));
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
543 return;
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
544 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
545
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
546 grp = purple_blist_find_group(group);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
547 if (!grp)
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
548 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
549 grp = purple_group_new(group);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
550 purple_blist_add_group(grp, NULL);
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
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
553 /* 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
554
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
555 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
556 {
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 24799
diff changeset
557 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
558 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
559 }
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 24799
diff changeset
560
32315
2550a39e0285 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32287
diff changeset
561 purple_account_add_buddy(account, buddy, invite);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
562 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
563
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
564 static void
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
565 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
566 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
567 const char *alias)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
568 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
569 PurpleRequestFields *fields = purple_request_fields_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
570 PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
571 PurpleRequestField *field;
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
572
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
573 purple_request_fields_add_group(fields, group);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
574
22942
2bf494f8e2a4 Change the string "screen name" to "username" everywhere. I think most
Mark Doliner <markdoliner@pidgin.im>
parents: 22935
diff changeset
575 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
576 purple_request_field_group_add_field(group, field);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
577
22431
06ae5eb33844 Right-clicking on a widget should trigger the context-menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22379
diff changeset
578 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
579 purple_request_field_group_add_field(group, field);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
580
31601
8aa82480b972 Show invite message entry in Finch's Add Buddy dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31294
diff changeset
581 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
582 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
583
22431
06ae5eb33844 Right-clicking on a widget should trigger the context-menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22379
diff changeset
584 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
585 purple_request_field_group_add_field(group, field);
15908
d5b3f76ff418 Group autocomplete for buddy adding
Richard Nelson <wabz@pidgin.im>
parents: 15906
diff changeset
586 purple_request_field_set_type_hint(field, "group");
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 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
589 purple_request_field_account_set_show_all(field, FALSE);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
590 if (account)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
591 purple_request_field_account_set_value(field, account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
592 purple_request_field_group_add_field(group, field);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
593
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
594 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
595 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
596 _("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
597 _("Cancel"), NULL,
34332
876483829700 Request API refactoring: switch purple_request_fields to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34331
diff changeset
598 purple_request_cpar_from_account(account),
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
599 NULL);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
600 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
601
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
602 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
603 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
604 {
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
605 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
606 const char *name;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
607 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
608
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34736
diff changeset
609 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
610 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
611
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
612 if (!conv || purple_chat_conversation_has_left(conv)) {
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
613 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
614 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
615 } else if (conv) {
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
616 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
617 }
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 }
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 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
621 add_chat_cb(void *data, PurpleRequestFields *allfields)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
622 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
623 PurpleAccount *account;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
624 const char *alias, *name, *group;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
625 PurpleChat *chat;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
626 PurpleGroup *grp;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
627 GHashTable *hash = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
628 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
629 gboolean autojoin;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
630 PurpleProtocol *protocol;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
631
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
632 account = purple_request_fields_get_account(allfields, "account");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
633 name = purple_request_fields_get_string(allfields, "name");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
634 alias = purple_request_fields_get_string(allfields, "alias");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
635 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
636 autojoin = purple_request_fields_get_bool(allfields, "autojoin");
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 if (!purple_account_is_connected(account) || !name || !*name)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
639 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
640
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
641 if (!group || !*group)
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
642 group = _("Chats");
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
643
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
644 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
645 protocol = purple_connection_get_protocol(gc);
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
646 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
647
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
648 chat = purple_chat_new(account, name, hash);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
649
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
650 if (chat != NULL) {
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
651 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
652 grp = purple_group_new(group);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
653 purple_blist_add_group(grp, NULL);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
654 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
655 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
656 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
657 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
658 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
659 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
660 }
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
661 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
662 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
663
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
664 static void
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
665 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
666 PurpleGroup *grp, const char *alias, const char *name)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
667 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
668 PurpleRequestFields *fields = purple_request_fields_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
669 PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
670 PurpleRequestField *field;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
671
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
672 purple_request_fields_add_group(fields, group);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
673
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
674 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
675 purple_request_field_account_set_show_all(field, FALSE);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
676 if (account)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
677 purple_request_field_account_set_value(field, account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
678 purple_request_field_group_add_field(group, field);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
679
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
680 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
681 purple_request_field_group_add_field(group, field);
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 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
684 purple_request_field_group_add_field(group, field);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
685
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22341
diff changeset
686 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
687 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
688 purple_request_field_set_type_hint(field, "group");
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
689
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
690 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
691 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
692
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
693 purple_request_fields(NULL, _("Add Chat"), NULL,
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
694 _("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
695 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
696 NULL, NULL);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
697 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
698
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
699 static void
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
700 add_group_cb(FinchBuddyList *ggblist, const char *group)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
701 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
702 PurpleGroup *grp;
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
703
24458
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
704 if (!group || !*group) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
705 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
706 _("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
707 g_object_unref(ggblist);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
708 return;
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
709 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
710
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
711 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
712 if (!grp) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
713 grp = purple_group_new(group);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
714 purple_blist_add_group(grp, NULL);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
715 }
24458
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
716
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
717 /* 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
718 * 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
719 * 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
720 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
721 if (ggblist->new_group_timeout)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
722 g_source_remove(ggblist->new_group_timeout);
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
723 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
724 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
725
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
726 /* 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
727 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
728 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
729 if (!fnode)
7706c9b08d5e Instead of showing error message when trying to interactively add an
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24450
diff changeset
730 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
731 gnt_tree_set_selected(GNT_TREE(ggblist->tree), grp);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
732 }
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
733
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
734 g_object_unref(ggblist);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
735 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
736
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
737 static void
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
738 finch_request_add_group(PurpleBuddyList *list)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
739 {
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
740 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
741 _("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
742 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
743 _("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
744 g_object_ref(list));
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
745 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
746
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
747 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
748 finch_blist_get_handle(void)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
749 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
750 static int handle;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
751
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
752 return &handle;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
753 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
754
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
755 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
756 add_group(PurpleGroup *group, FinchBuddyList *ggblist)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
757 {
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
758 gpointer parent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
759 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
760 if (purple_blist_node_get_ui_data(node))
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
761 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
762 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
763 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
764 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
765 parent, NULL));
16165
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
766 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
767 !purple_blist_node_get_bool(node, "collapsed"));
13852
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
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
770 static const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
771 get_display_name(PurpleBlistNode *node)
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
772 {
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
773 static char text[2096];
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
774 char status[8] = " ";
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
775 const char *name = NULL;
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
776
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
777 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
778 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
779
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
780 if (node == NULL)
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
781 return NULL;
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
782
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
783 if (PURPLE_IS_BUDDY(node))
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
784 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
785 PurpleBuddy *buddy = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
786 PurpleStatusPrimitive prim;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
787 PurplePresence *presence;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
788 PurpleStatus *now;
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
789 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
790
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
791 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
792 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
793 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
794 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
795 now = purple_presence_get_active_status(presence);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
796
34855
9c289149eed4 Global replaces according to GObject status API
Ankit Vani <a@nevitus.org>
parents: 34849
diff changeset
797 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
798
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
799 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
800 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
801 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
802 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
803 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
804 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
805 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
806 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
807 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
808 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
809 }
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
810 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
811 name = purple_buddy_get_alias(buddy);
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
812 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
813 else if (PURPLE_IS_CHAT(node))
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
814 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
815 PurpleChat *chat = (PurpleChat*)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
816 name = purple_chat_get_name(chat);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13946
diff changeset
817
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13946
diff changeset
818 strncpy(status, "~", sizeof(status) - 1);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
819 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
820 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
821 return purple_group_get_name((PurpleGroup*)node);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
822
25708
7e97dbce8223 applied changes from aa7ce93329f5ccbe74640a92b6656ae402d8eea8
Ethan Blanton <elb@pidgin.im>
parents: 24799
diff changeset
823 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
824
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
825 return text;
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
826 }
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
827
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
828 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
829 add_chat(PurpleChat *chat, FinchBuddyList *ggblist)
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
830 {
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
831 gpointer parent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
832 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
833 if (purple_blist_node_get_ui_data(node))
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
834 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
835 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
836 return;
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
837
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
838 parent = ggblist->manager->find_parent((PurpleBlistNode*)chat);
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
839
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
840 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
841 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
842 parent, NULL));
13946
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
843 }
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
844
c895c1eeb4d7 [gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13939
diff changeset
845 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
846 add_contact(PurpleContact *contact, FinchBuddyList *ggblist)
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
847 {
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
848 gpointer parent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
849 PurpleBlistNode *node = (PurpleBlistNode*)contact;
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
850 const char *name;
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
851
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
852 if (purple_blist_node_get_ui_data(node))
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
853 return;
21808
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
854
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
855 name = get_display_name(node);
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
856 if (name == NULL)
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
857 return;
21808
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
858
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
859 parent = ggblist->manager->find_parent((PurpleBlistNode*)contact);
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
860
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
861 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
862 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
863 parent, NULL));
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
864
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
865 gnt_tree_set_expanded(GNT_TREE(ggblist->tree), contact, FALSE);
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
866 }
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
867
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
868 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
869 add_buddy(PurpleBuddy *buddy, FinchBuddyList *ggblist)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
870 {
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
871 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
872 PurpleBlistNode *node = (PurpleBlistNode *)buddy;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
873 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
874
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
875 if (purple_blist_node_get_ui_data(node))
13915
15a38b312abe [gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
876 return;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
877
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 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
879 parent = ggblist->manager->find_parent((PurpleBlistNode*)buddy);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
880
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
881 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
882 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
883 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
884
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
885 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
886 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
887 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
888 }
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
889 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
890
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
891 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
892 selection_activate(GntWidget *widget, FinchBuddyList *ggblist)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
893 {
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
894 GntTree *tree = GNT_TREE(ggblist->tree);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
895 PurpleBlistNode *node = gnt_tree_get_selection_data(tree);
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
896
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13993
diff changeset
897 if (!node)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13993
diff changeset
898 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
899
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
900 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
901 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
902
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
903 if (PURPLE_IS_BUDDY(node))
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
904 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
905 PurpleBuddy *buddy = (PurpleBuddy *)node;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
906 PurpleIMConversation *im;
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
907 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
908 purple_buddy_get_account(buddy));
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
909 if (!im) {
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
910 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
911 purple_buddy_get_name(buddy));
47b947e1c8f1 present existing conversation window if one exists
Richard Nelson <wabz@pidgin.im>
parents: 18132
diff changeset
912 } else {
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
913 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
914 gnt_window_present(ggconv->window);
47b947e1c8f1 present existing conversation window if one exists
Richard Nelson <wabz@pidgin.im>
parents: 18132
diff changeset
915 }
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
916 finch_conversation_set_active(PURPLE_CONVERSATION(im));
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
917 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
918 else if (PURPLE_IS_CHAT(node))
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
919 {
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
920 join_chat((PurpleChat*)node);
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
921 }
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
922 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
923
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
924 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
925 append_proto_menu(GntMenu *menu, PurpleConnection *gc, PurpleBlistNode *node)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
926 {
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
927 GList *list;
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
928 PurpleProtocol *protocol = purple_connection_get_protocol(gc);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
929
39901
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
930 if (!PURPLE_PROTOCOL_IMPLEMENTS(protocol, CLIENT, blist_node_menu)) {
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
931 return;
39901
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
932 }
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
933
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
934 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
935 list = g_list_delete_link(list, list))
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
936 {
39481
4db28449567d Rename PurpleMenuAction to PurpleActionMenu
Gary Kramlich <grim@reaperworld.com>
parents: 39479
diff changeset
937 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
938 if (!act)
461d1acb4a54 Fix a crash caused by context menus for sametime buddies.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 30039
diff changeset
939 continue;
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
940 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
941 finch_append_menu_action(menu, act, node);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
942 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
943 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
944
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
945 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
946 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
947 gpointer data)
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
948 {
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
949 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
950 finch_append_menu_action(menu, action, NULL);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
951 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
952
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
953 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
954 chat_components_edit_ok(PurpleChat *chat, PurpleRequestFields *allfields)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
955 {
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
956 GList *groups, *fields;
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
957
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
958 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
959 fields = purple_request_field_group_get_fields(groups->data);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
960 for (; fields; fields = fields->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
961 PurpleRequestField *field = fields->data;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
962 const char *id;
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
963 char *val;
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
964
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
965 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
966 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
967 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
968 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
969 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
970
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
971 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
972 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
973 } 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
974 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
975 }
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
976 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
977 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
978 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
979
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
980 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
981 chat_components_edit(PurpleBlistNode *selected, PurpleChat *chat)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
982 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
983 PurpleRequestFields *fields = purple_request_fields_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
984 PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
985 PurpleRequestField *field;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
986 GList *parts, *iter;
36555
fc17a4351e63 Replaced struct proto_chat_entry with PurpleProtocolChatEntry
Ankit Vani <a@nevitus.org>
parents: 36544
diff changeset
987 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
988 PurpleConnection *gc;
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
989
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
990 purple_request_fields_add_group(fields, group);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
991
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
992 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
993 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
994
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
995 for (iter = parts; iter; iter = iter->next) {
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
996 pce = iter->data;
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
997 if (pce->is_int) {
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
998 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
999 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
1000 if (!str || sscanf(str, "%d", &val) != 1)
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1001 val = pce->min;
33935
e740bbb8350c Request API: fix integer fields, add bounds to them
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32849
diff changeset
1002 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
1003 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1004 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
1005 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
1006 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
1007 purple_request_field_string_set_masked(field, TRUE);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1008 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1009
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
1010 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
1011 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
1012
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1013 purple_request_field_group_add_field(group, field);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1014 g_free(pce);
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1015 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1016
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1017 g_list_free(parts);
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1018
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1019 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
1020 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
1021 NULL, chat);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1022 }
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 static void
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1025 autojoin_toggled(GntMenuItem *item, gpointer data)
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1026 {
39481
4db28449567d Rename PurpleMenuAction to PurpleActionMenu
Gary Kramlich <grim@reaperworld.com>
parents: 39479
diff changeset
1027 PurpleActionMenu *action = data;
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
1028 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
1029 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
1030 }
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1031
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1032 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1033 create_chat_menu(GntMenu *menu, PurpleChat *chat)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1034 {
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
1035 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
1036 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
1037 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
1038 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
1039 purple_blist_node_get_bool((PurpleBlistNode*)chat, "gnt-autojoin"));
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1040 gnt_menu_add_item(menu, check);
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1041 gnt_menuitem_set_callback(check, autojoin_toggled, action);
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1042 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
1043 G_CALLBACK(purple_action_menu_free), action);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1044
38651
966bb404064f finch: add protocol menu to blist chats
Dylan Simon <dylan@dylex.net>
parents: 38433
diff changeset
1045 /* Protocol actions */
966bb404064f finch: add protocol menu to blist chats
Dylan Simon <dylan@dylex.net>
parents: 38433
diff changeset
1046 append_proto_menu(menu,
966bb404064f finch: add protocol menu to blist chats
Dylan Simon <dylan@dylex.net>
parents: 38433
diff changeset
1047 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
1048 (PurpleBlistNode*)chat);
966bb404064f finch: add protocol menu to blist chats
Dylan Simon <dylan@dylex.net>
parents: 38433
diff changeset
1049
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1050 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
1051 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1052
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1053 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
1054 finch_add_buddy(PurpleBlistNode *selected, PurpleGroup *grp)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1055 {
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22341
diff changeset
1056 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
1057 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1058
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1059 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
1060 finch_add_group(PurpleBlistNode *selected, PurpleGroup *grp)
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1061 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1062 purple_blist_request_add_group();
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1063 }
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1064
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
1065 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
1066 finch_add_chat(PurpleBlistNode *selected, PurpleGroup *grp)
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1067 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1068 purple_blist_request_add_chat(NULL, grp, NULL, NULL);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1069 }
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1070
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1071 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1072 create_group_menu(GntMenu *menu, PurpleGroup *group)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1073 {
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1074 add_custom_action(menu, _("Add Buddy"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1075 PURPLE_CALLBACK(finch_add_buddy), group);
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1076 add_custom_action(menu, _("Add Chat"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1077 PURPLE_CALLBACK(finch_add_chat), group);
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1078 add_custom_action(menu, _("Add Group"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1079 PURPLE_CALLBACK(finch_add_group), group);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1080 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1081
17845
8ac5337e8f6d Show information about the user requesting authorization.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17366
diff changeset
1082 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
1083 {
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17295
diff changeset
1084 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
1085 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
1086 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
1087 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
1088 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
1089
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
1090 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
1091 return uihandle;
17360
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17295
diff changeset
1092 }
4b04b2ee459a Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17295
diff changeset
1093
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1094 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
1095 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
1096 {
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
1097 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
1098 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1099
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1100 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
1101 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
1102 {
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
1103 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
1104 }
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1105
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1106 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
1107 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
1108 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1109 PurpleBuddy *b;
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1110 if (PURPLE_IS_CONTACT(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1111 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
1112 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1113 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
1114 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
1115 }
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1116
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
1117 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
1118 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
1119 {
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
1120 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
1121 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
1122 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
1123
34584
ed2747e0598c Refactored finch to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 33935
diff changeset
1124 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
1125 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
1126 }
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
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1128 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
1129 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
1130 {
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1131 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
1132 !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
1133 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
1134 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
1135 else
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1136 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
1137 }
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1138
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1139 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1140 create_buddy_menu(GntMenu *menu, PurpleBuddy *buddy)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1141 {
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
1142 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
1143 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
1144 GntMenuItem *item;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
1145 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
1146 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
1147
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
1148 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
1149 if (protocol && PURPLE_PROTOCOL_IMPLEMENTS(protocol, SERVER, get_info))
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1150 {
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1151 add_custom_action(menu, _("Get Info"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1152 PURPLE_CALLBACK(finch_blist_get_buddy_info_cb), buddy);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1153 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1154
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1155 add_custom_action(menu, _("Add Buddy Pounce"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1156 PURPLE_CALLBACK(finch_blist_pounce_node_cb), buddy);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1157
38827
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1158 if (PURPLE_IS_PROTOCOL_XFER(protocol))
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1159 {
38827
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1160 if (purple_protocol_xfer_can_receive(
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1161 PURPLE_PROTOCOL_XFER(protocol),
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1162 gc,
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1163 purple_buddy_get_name(buddy))
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38433
diff changeset
1164 ) {
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15564
diff changeset
1165 add_custom_action(menu, _("Send File"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1166 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
1167 }
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1168 }
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
1169
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
1170 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
1171 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
1172
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
1173 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
1174 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
1175 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
1176 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
1177
24504
7cc4ea958ea8 Show when offline (because the plugin doesn't work no more).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24458
diff changeset
1178 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
1179 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
1180 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
1181 gnt_menu_add_item(menu, item);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1182
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1183 /* Protocol actions */
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1184 append_proto_menu(menu,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1185 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
1186 (PurpleBlistNode*)buddy);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1187 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1188
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1189 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1190 append_extended_menu(GntMenu *menu, PurpleBlistNode *node)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1191 {
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1192 GList *iter;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1193
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1194 for (iter = purple_blist_node_get_extended_menu(node);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1195 iter; iter = g_list_delete_link(iter, iter))
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1196 {
35494
e631108a5464 Fix namespace issues in libgnt and finch.
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
1197 finch_append_menu_action(menu, iter->data, node);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1198 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1199 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1200
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1201 /* Xerox'd from gtkdialogs.c:purple_gtkdialogs_remove_contact_cb */
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1202 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1203 remove_contact(PurpleContact *contact)
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1204 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1205 PurpleBlistNode *bnode, *cnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1206 PurpleGroup *group;
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1207
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1208 cnode = (PurpleBlistNode *)contact;
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1209 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
1210 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
1211 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
1212 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
1213 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
1214 purple_account_remove_buddy(account, buddy, group);
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1215 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1216 purple_blist_remove_contact(contact);
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1217 }
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1218
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1219 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1220 rename_blist_node(PurpleBlistNode *node, const char *newname)
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1221 {
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1222 const char *name = newname;
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1223 if (name && !*name)
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1224 name = NULL;
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1225
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1226 if (PURPLE_IS_CONTACT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1227 PurpleContact *contact = (PurpleContact*)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1228 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
1229 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
1230 purple_buddy_set_local_alias(buddy, name);
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
1231 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
1232 } 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
1233 purple_buddy_set_local_alias((PurpleBuddy*)node, name);
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
1234 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
1235 } 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
1236 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
1237 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
1238 purple_group_set_name((PurpleGroup*)node, name);
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1239 else
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1240 g_return_if_reached();
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1241 }
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1242
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1243 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
1244 finch_blist_rename_node_cb(PurpleBlistNode *selected, PurpleBlistNode *node)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1245 {
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1246 const char *name = NULL;
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1247 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
1248 const char *text;
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1249
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1250 if (PURPLE_IS_CONTACT(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1251 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
1252 else if (PURPLE_IS_BUDDY(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1253 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
1254 else if (PURPLE_IS_CHAT(node))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1255 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
1256 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
1257 name = purple_group_get_name((PurpleGroup*)node);
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1258 else
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1259 g_return_if_reached();
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1260
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1261 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
1262
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1263 text = PURPLE_IS_GROUP(node) ? _("Rename") : _("Set Alias");
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1264 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
1265 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
1266 _("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
1267 NULL, node);
14080
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1268
7fad848bbe7b [gaim-migrate @ 16614]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
1269 g_free(prompt);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1270 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1271
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1272
22491
06d2ee82aa58 Fix showing a contact's log, and don't access struct internals
Richard Nelson <wabz@pidgin.im>
parents: 22431
diff changeset
1273 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
1274 {
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1275 PurpleLogType type;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1276 PurpleAccount *account;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1277 char *name = NULL;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1278
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1279 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
1280 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
1281 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
1282 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
1283 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
1284 } 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
1285 PurpleChat *c = (PurpleChat*) node;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
1286 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
1287 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
1288 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
1289 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
1290 if (protocol) {
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
1291 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
1292 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1293 } 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
1294 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
1295 return;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1296 } else {
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1297 /* 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
1298 * 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
1299 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
1300 }
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1301
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1302 if (name && account) {
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1303 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
1304 g_free(name);
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1305 }
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1306 }
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1307
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22342
diff changeset
1308
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1309 /* Xeroxed from gtkdialogs.c:purple_gtkdialogs_remove_group_cb*/
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1310 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1311 remove_group(PurpleGroup *group)
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1312 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1313 PurpleBlistNode *cnode, *bnode;
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1314
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1315 cnode = purple_blist_node_get_first_child(((PurpleBlistNode*)group));
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1316
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1317 while (cnode) {
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1318 if (PURPLE_IS_CONTACT(cnode)) {
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1319 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
1320 cnode = purple_blist_node_get_sibling_next(cnode);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1321 while (bnode) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1322 PurpleBuddy *buddy;
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1323 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
1324 PurpleAccount *account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1325 buddy = (PurpleBuddy*)bnode;
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1326 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
1327 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
1328 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
1329 purple_account_remove_buddy(account, buddy, group);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1330 purple_blist_remove_buddy(buddy);
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 } else {
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1333 bnode = purple_blist_node_get_sibling_next(bnode);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1334 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1335 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1336 } else if (PURPLE_IS_CHAT(cnode)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1337 PurpleChat *chat = (PurpleChat *)cnode;
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1338 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
1339 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
1340 purple_blist_remove_chat(chat);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1341 } else {
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1342 cnode = purple_blist_node_get_sibling_next(cnode);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1343 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1344 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1345
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1346 purple_blist_remove_group(group);
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1347 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1348
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1349 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1350 finch_blist_remove_node(PurpleBlistNode *node)
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1351 {
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1352 if (PURPLE_IS_CONTACT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1353 remove_contact((PurpleContact*)node);
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1354 } else if (PURPLE_IS_BUDDY(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1355 PurpleBuddy *buddy = (PurpleBuddy*)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1356 PurpleGroup *group = purple_buddy_get_group(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1357 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
1358 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
1359 } else if (PURPLE_IS_CHAT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1360 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
1361 } else if (PURPLE_IS_GROUP(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1362 remove_group((PurpleGroup*)node);
14125
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 }
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
1365
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1366 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
1367 finch_blist_remove_node_cb(PurpleBlistNode *selected, PurpleBlistNode *node)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1368 {
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
1369 PurpleAccount *account = NULL;
14260
a21577fbb4d2 [gaim-migrate @ 16870]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14194
diff changeset
1370 char *primary;
a21577fbb4d2 [gaim-migrate @ 16870]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14194
diff changeset
1371 const char *name, *sec = NULL;
14126
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1372
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1373 if (PURPLE_IS_CONTACT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1374 PurpleContact *c = (PurpleContact*)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1375 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
1376 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
1377 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
1378 } else if (PURPLE_IS_BUDDY(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1379 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
1380 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
1381 } else if (PURPLE_IS_CHAT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1382 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
1383 } 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
1384 name = purple_group_get_name((PurpleGroup*)node);
14126
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1385 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
1386 }
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1387 else
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1388 return;
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1389
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1390 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
1391
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1392 /* XXX: anything to do with the returned ui-handle? */
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1393 purple_request_action(node, _("Confirm Remove"),
14126
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1394 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
1395 1,
34331
c8486462bb63 Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34329
diff changeset
1396 purple_request_cpar_from_account(account),
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1397 node, 2,
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
1398 _("Remove"), finch_blist_remove_node,
14126
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1399 _("Cancel"), NULL);
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
1400 g_free(primary);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1401 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1402
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1403 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1404 finch_blist_toggle_tag_buddy(PurpleBlistNode *node)
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1405 {
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1406 GList *iter;
15377
f45f57e922a7 [gaim-migrate @ 18106]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15244
diff changeset
1407 if (node == NULL)
f45f57e922a7 [gaim-migrate @ 18106]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15244
diff changeset
1408 return;
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1409 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
1410 ggblist->tagged = g_list_delete_link(ggblist->tagged, iter);
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1411 } else {
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1412 ggblist->tagged = g_list_prepend(ggblist->tagged, node);
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1413 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1414 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
1415 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
1416 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
1417 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
1418 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
1419 update_node_display(node, ggblist);
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1420 }
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1421
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1422 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1423 finch_blist_place_tagged(PurpleBlistNode *target)
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1424 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1425 PurpleGroup *tg = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1426 PurpleContact *tc = NULL;
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1427
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1428 if (PURPLE_IS_GROUP(target))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1429 tg = (PurpleGroup*)target;
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1430 else if (PURPLE_IS_BUDDY(target)) {
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
1431 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
1432 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
1433 } else if (PURPLE_IS_CONTACT(target)) {
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1434 tc = (PurpleContact *)target;
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1435 tg = (PurpleGroup *)purple_blist_node_get_parent(target);
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1436 } else if (PURPLE_IS_CHAT(target)) {
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1437 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
1438 } else {
39901
253056947264 finch: Remove redundant checks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39897
diff changeset
1439 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
1440 }
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1441
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1442 if (ggblist->tagged) {
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1443 GList *list = ggblist->tagged;
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1444 ggblist->tagged = NULL;
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1445 while (list) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1446 PurpleBlistNode *node = list->data;
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1447 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
1448
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1449 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
1450 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
1451 /* 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
1452 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
1453 } 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
1454 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
1455 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
1456 /* 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
1457 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
1458 } 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
1459 /* 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
1460 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
1461 } 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
1462 /* 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
1463 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
1464 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1465 } 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
1466 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
1467 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
1468 /* 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
1469 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
1470 } 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
1471 /* 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
1472 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
1473 } 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
1474 /* 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
1475 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
1476 } 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
1477 /* 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
1478 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
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_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
1481 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
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 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
1484 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
1485 purple_blist_add_chat((PurpleChat*)node, NULL, target);
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1486 }
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1487 }
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1488 }
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1489 }
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1490
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1491 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1492 context_menu_destroyed(GntWidget *widget, FinchBuddyList *ggblist)
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1493 {
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1494 ggblist->context = NULL;
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1495 }
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1496
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1497 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1498 draw_context_menu(FinchBuddyList *ggblist)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1499 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1500 PurpleBlistNode *node = NULL;
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1501 GntWidget *context = NULL;
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1502 GntTree *tree = NULL;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1503 int x, y, top, width;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1504 char *title = NULL;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1505
16869
f35dce8e5bc3 Do not build the context menu if one is already being shown.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16837
diff changeset
1506 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
1507 return;
f35dce8e5bc3 Do not build the context menu if one is already being shown.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16837
diff changeset
1508
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1509 tree = GNT_TREE(ggblist->tree);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1510
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1511 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
1512 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
1513 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
1514 return;
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1515
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1516 if (ggblist->tooltip)
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1517 remove_tooltip(ggblist);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1518
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1519 ggblist->cnode = node;
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1520
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1521 ggblist->context = context = gnt_menu_new(GNT_MENU_POPUP);
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1522 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
1523 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
1524
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1525 if (!node) {
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1526 create_group_menu(GNT_MENU(context), NULL);
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1527 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
1528 } 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
1529 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
1530 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
1531 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
1532 } else if (PURPLE_IS_BUDDY(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1533 PurpleBuddy *buddy = (PurpleBuddy *)node;
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1534 create_buddy_menu(GNT_MENU(context), buddy);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1535 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
1536 } else if (PURPLE_IS_CHAT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1537 PurpleChat *chat = (PurpleChat*)node;
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1538 create_chat_menu(GNT_MENU(context), chat);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1539 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
1540 } else if (PURPLE_IS_GROUP(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1541 PurpleGroup *group = (PurpleGroup *)node;
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1542 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
1543 title = g_strdup(purple_group_get_name(group));
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1544 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1545
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1546 append_extended_menu(GNT_MENU(context), node);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1547
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1548 /* These are common for everything */
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1549 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
1550 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
1551 PURPLE_IS_GROUP(node) ? _("Rename") : _("Alias"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1552 PURPLE_CALLBACK(finch_blist_rename_node_cb), node);
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1553 add_custom_action(GNT_MENU(context), _("Remove"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1554 PURPLE_CALLBACK(finch_blist_remove_node_cb), node);
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1555
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1556 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
1557 || PURPLE_IS_GROUP(node))) {
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1558 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
1559 PURPLE_CALLBACK(finch_blist_place_tagged), node);
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1560 }
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
1561
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1562 if (PURPLE_IS_BUDDY(node) || PURPLE_IS_CONTACT(node)) {
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1563 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
1564 PURPLE_CALLBACK(finch_blist_toggle_tag_buddy), node);
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1565 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1566 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
1567 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
1568 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
1569 }
14756
bd7ebc1641e1 [gaim-migrate @ 17446]
Richard Nelson <wabz@pidgin.im>
parents: 14753
diff changeset
1570 }
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1571
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1572 /* Set the position for the popup */
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1573 gnt_widget_get_position(GNT_WIDGET(tree), &x, &y);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1574 gnt_widget_get_size(GNT_WIDGET(tree), &width, NULL);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1575 top = gnt_tree_get_selection_visible_line(tree);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1576
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1577 x += width;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1578 y += top - 1;
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1579
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1580 gnt_widget_set_position(context, x, y);
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1581 gnt_screen_menu_show(GNT_MENU(context));
14021
a633de85f90e [gaim-migrate @ 16511]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14020
diff changeset
1582 g_free(title);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1583 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1584
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1585 static void
18391
a51451368934 Show better tooltips for contacts.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18369
diff changeset
1586 tooltip_for_buddy(PurpleBuddy *buddy, GString *str, gboolean full)
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1587 {
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
1588 PurpleProtocol *protocol;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1589 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1590 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
1591 PurplePresence *presence;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1592 const char *alias = purple_buddy_get_alias(buddy);
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1593 char *tmp, *strip;
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1594
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1595 user_info = purple_notify_user_info_new();
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1596
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1597 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
1598 presence = purple_buddy_get_presence(buddy);
15113
956d8ac87bf6 [gaim-migrate @ 17835]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15083
diff changeset
1599
19425
07be487bc354 Fix #2607. (Finch tooltip HTML display)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18909
diff changeset
1600 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
1601 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
1602 }
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1603
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1604 tmp = g_strdup_printf("%s (%s)",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1605 purple_account_get_username(account),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1606 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
1607 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
1608 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
1609
36626
18fc361b3704 Renamed purple_find_protocol_info to purple_protocols_find
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
1610 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
1611 if (protocol) {
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
1612 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
1613 }
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1614
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
1615 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
1616 PurplePresence *pre = purple_buddy_get_presence(buddy);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1617 if (purple_presence_is_idle(pre)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1618 time_t idle = purple_presence_get_idle_time(pre);
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1619 if (idle > 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1620 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
1621 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
1622 g_free(st);
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1623 }
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1624 }
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1625 }
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30060
diff changeset
1626
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1627 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
1628 purple_notify_user_info_destroy(user_info);
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1629
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1630 strip = purple_markup_strip_html(tmp);
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1631 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
1632
18909
ebc3cc277277 Insert a newline in the tooltip.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18852
diff changeset
1633 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
1634 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
1635 g_string_append(str, _("On Mobile"));
18909
ebc3cc277277 Insert a newline in the tooltip.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18852
diff changeset
1636 }
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
1637
15207
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1638 g_free(strip);
31d9665a2a7d [gaim-migrate @ 17931]
Evan Schoenberg <evands@pidgin.im>
parents: 15113
diff changeset
1639 g_free(tmp);
14446
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1640 }
5f36f08183e8 [gaim-migrate @ 17090]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14441
diff changeset
1641
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1642 static GString*
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1643 make_sure_text_fits(GString *string)
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1644 {
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1645 int maxw = getmaxx(stdscr) - 3;
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1646 char *str = gnt_util_onscreen_fit_string(string->str, maxw);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1647 string = g_string_assign(string, str);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1648 g_free(str);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1649 return string;
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1650 }
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1651
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1652 static gboolean
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1653 draw_tooltip_real(FinchBuddyList *ggblist)
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1654 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1655 PurpleBlistNode *node;
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1656 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
1657 GString *str = NULL;
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1658 GntTree *tree;
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1659 GntWidget *widget, *box, *tv;
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1660 char *title = NULL;
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1661
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1662 widget = ggblist->tree;
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1663 tree = GNT_TREE(widget);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1664
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
1665 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
1666 (ggblist->context && gnt_widget_get_visible(ggblist->context)))
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1667 return FALSE;
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
1668
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1669 if (ggblist->tooltip)
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1670 {
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13927
diff changeset
1671 /* 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
1672 * to avoid the blinking*/
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1673 remove_tooltip(ggblist);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1674 }
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1675
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1676 node = gnt_tree_get_selection_data(tree);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1677 if (!node)
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1678 return FALSE;
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 (!ggblist->manager->create_tooltip(node, &str, &title))
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1681 return FALSE;
14489
99fb5724b4b1 [gaim-migrate @ 17137]
Richard Nelson <wabz@pidgin.im>
parents: 14469
diff changeset
1682
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1683 gnt_widget_get_position(widget, &x, &y);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1684 gnt_widget_get_size(widget, &width, NULL);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1685 top = gnt_tree_get_selection_visible_line(tree);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1686
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1687 x += width;
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1688 y += top - 1;
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 box = gnt_box_new(FALSE, FALSE);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1691 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
1692 gnt_widget_set_has_shadow(box, FALSE);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1693 gnt_box_set_title(GNT_BOX(box), title);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1694
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1695 str = make_sure_text_fits(str);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1696 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
1697 h = MAX(1, h);
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1698 tv = gnt_text_view_new();
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1699 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
1700 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
1701 gnt_box_add_widget(GNT_BOX(box), tv);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1702
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
1703 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
1704 x -= w + width + 2;
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1705 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
1706 gnt_widget_set_take_focus(box, FALSE);
1d0453799f73 Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39483
diff changeset
1707 gnt_widget_set_transient(box, TRUE);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1708 gnt_widget_draw(box);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1709
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1710 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
1711 gnt_text_view_scroll(GNT_TEXT_VIEW(tv), 0);
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1712
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1713 g_free(title);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1714 g_string_free(str, TRUE);
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1715 ggblist->tooltip = box;
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1716 ggblist->tnode = node;
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13927
diff changeset
1717
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13927
diff changeset
1718 gnt_widget_set_name(ggblist->tooltip, "tooltip");
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1719 return FALSE;
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1720 }
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1721
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1722 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1723 draw_tooltip(FinchBuddyList *ggblist)
14997
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1724 {
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1725 /* 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
1726 * Drawing the tooltip after removing each buddy is expensive. On
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1727 * 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
1728 * account, then retreiving the tooltip for that causes crash. So
197138c20527 [gaim-migrate @ 17707]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
1729 * 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
1730 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
1731 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
1732 GINT_TO_POINTER(id), (GDestroyNotify)g_source_remove);
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1733 }
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1734
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1735 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1736 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
1737 FinchBuddyList *ggblist)
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1738 {
16837
d3b8ba967fdc Fix context menu unusualness in the buddylist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16828
diff changeset
1739 remove_peripherals(ggblist);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1740 draw_tooltip(ggblist);
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1741 }
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1742
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1743 static gboolean
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1744 context_menu(GntWidget *widget, FinchBuddyList *ggblist)
14896
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1745 {
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1746 draw_context_menu(ggblist);
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1747 return TRUE;
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1748 }
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1749
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14774
diff changeset
1750 static gboolean
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1751 key_pressed(GntWidget *widget, const char *text, FinchBuddyList *ggblist)
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1752 {
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1753 if (text[0] == 27 && text[1] == 0) {
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1754 /* Escape was pressed */
21472
7c77d4a1921d Cancel the typeahead search when escape is pressed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21233
diff changeset
1755 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
1756 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
1757 remove_peripherals(ggblist);
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
1758 } 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
1759 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
1760 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
1761 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
1762 NULL);
18787
a96af97dc501 New feature: successful compilation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18765
diff changeset
1763 } 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
1764 if (purple_strequal(text, "t")) {
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
1765 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
1766 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
1767 } else if (purple_strequal(text, "a")) {
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
1768 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
1769 } else
b3a992ff3e5f [gaim-migrate @ 17952]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15222
diff changeset
1770 return FALSE;
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1771 } else
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1772 return FALSE;
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13946
diff changeset
1773
15039
20a0d0117a47 [gaim-migrate @ 17756]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14997
diff changeset
1774 return TRUE;
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1775 }
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
1776
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1777 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1778 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
1779 {
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
1780 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
1781 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
1782 }
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
1783
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
1784 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1785 update_buddy_display(PurpleBuddy *buddy, FinchBuddyList *ggblist)
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1786 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1787 PurpleContact *contact;
21808
2684d3deb32e Refactor the code a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21807
diff changeset
1788
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1789 contact = purple_buddy_get_contact(buddy);
14447
32f854416012 [gaim-migrate @ 17091]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14446
diff changeset
1790
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1791 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
1792 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
1793
39698
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
1794 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
1795 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
1796 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
1797
43d46d468694 Remove some use of buddy list globals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39696
diff changeset
1798 if (ggblist->tnode == (PurpleBlistNode *)buddy) {
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1799 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
1800 }
13993
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1801 }
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1802
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1803 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1804 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
1805 FinchBuddyList *ggblist)
13993
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1806 {
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1807 update_buddy_display(buddy, ggblist);
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1808 }
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1809
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1810 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1811 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
1812 FinchBuddyList *ggblist)
13993
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1813 {
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
1814 update_buddy_display(buddy, ggblist);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1815 }
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
1816
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1817 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
1818 remove_peripherals(FinchBuddyList *ggblist)
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1819 {
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1820 if (ggblist->tooltip)
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1821 remove_tooltip(ggblist);
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1822 else if (ggblist->context)
14905
23f31a7acc73 [gaim-migrate @ 17612]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14896
diff changeset
1823 gnt_widget_destroy(ggblist->context);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1824 }
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
1825
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1826 static void
14908
0ccb73d4e584 [gaim-migrate @ 17615]
Richard Nelson <wabz@pidgin.im>
parents: 14905
diff changeset
1827 size_changed_cb(GntWidget *w, int wi, int h)
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1828 {
14908
0ccb73d4e584 [gaim-migrate @ 17615]
Richard Nelson <wabz@pidgin.im>
parents: 14905
diff changeset
1829 int width, height;
0ccb73d4e584 [gaim-migrate @ 17615]
Richard Nelson <wabz@pidgin.im>
parents: 14905
diff changeset
1830 gnt_widget_get_size(w, &width, &height);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1831 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
1832 purple_prefs_set_int(PREF_ROOT "/size/height", height);
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1833 }
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1834
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1835 static void
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1836 save_position_cb(GntWidget *w, int x, int y)
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1837 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1838 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
1839 purple_prefs_set_int(PREF_ROOT "/position/y", y);
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1840 }
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
1841
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1842 static void
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1843 reset_blist_window(GntWidget *window, gpointer null)
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1844 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1845 PurpleBlistNode *node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1846 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
1847
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1848 node = purple_blist_get_default_root();
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
1849 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
1850 reset_blist_node_ui_data(node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1851 node = purple_blist_node_next(node, TRUE);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1852 }
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1853
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
1854 if (ggblist->typing)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
1855 g_source_remove(ggblist->typing);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1856 remove_peripherals(ggblist);
15046
e17788e5403a [gaim-migrate @ 17763]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15039
diff changeset
1857 if (ggblist->tagged)
e17788e5403a [gaim-migrate @ 17763]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15039
diff changeset
1858 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
1859
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
1860 if (ggblist->new_group_timeout)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
1861 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
1862 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
1863 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
1864
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1865 ggblist = NULL;
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1866 }
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1867
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1868 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
1869 populate_buddylist(void)
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1870 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1871 PurpleBlistNode *node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1872 PurpleBuddyList *list;
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1873
22312
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1874 if (ggblist->manager->init)
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1875 ggblist->manager->init();
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1876
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
1877 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
1878 gnt_tree_set_compare_func(GNT_TREE(ggblist->tree),
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1879 (GCompareFunc)blist_node_compare_text);
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
1880 } 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
1881 gnt_tree_set_compare_func(GNT_TREE(ggblist->tree),
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1882 (GCompareFunc)blist_node_compare_status);
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
1883 } 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
1884 gnt_tree_set_compare_func(GNT_TREE(ggblist->tree),
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1885 (GCompareFunc)blist_node_compare_log);
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
1886 }
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30060
diff changeset
1887
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1888 list = purple_blist_get_default();
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1889 node = purple_blist_get_root(list);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1890 while (node)
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1891 {
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1892 node_update(list, node);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1893 node = purple_blist_node_next(node, FALSE);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1894 }
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1895 }
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
1896
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1897 static void
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1898 destroy_status_list(GList *list)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1899 {
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
1900 g_list_free_full(list, g_free);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1901 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1902
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1903 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
1904 populate_status_dropdown(void)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1905 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1906 int i;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1907 GList *iter;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1908 GList *items = NULL;
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1909 StatusBoxItem *item = NULL;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1910
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1911 /* First the primitives */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1912 PurpleStatusPrimitive prims[] = {PURPLE_STATUS_AVAILABLE, PURPLE_STATUS_AWAY,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1913 PURPLE_STATUS_INVISIBLE, PURPLE_STATUS_OFFLINE, PURPLE_STATUS_UNSET};
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1914
14555
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
1915 gnt_combo_box_remove_all(GNT_COMBO_BOX(ggblist->status));
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
1916
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1917 for (i = 0; prims[i] != PURPLE_STATUS_UNSET; i++)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1918 {
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1919 item = g_new0(StatusBoxItem, 1);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1920 item->type = STATUS_PRIMITIVE;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1921 item->u.prim = prims[i];
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1922 items = g_list_prepend(items, item);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1923 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
1924 purple_primitive_get_name_from_type(prims[i]));
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
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1927 /* Now the popular statuses */
18851
87634d109f57 Memory leak fix.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18850
diff changeset
1928 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
1929 {
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1930 item = g_new0(StatusBoxItem, 1);
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1931 item->type = STATUS_SAVED_POPULAR;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1932 item->u.saved = iter->data;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1933 items = g_list_prepend(items, item);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1934 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
1935 purple_savedstatus_get_title(iter->data));
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1936 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1937
14194
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1938 /* New savedstatus */
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1939 item = g_new0(StatusBoxItem, 1);
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1940 item->type = STATUS_SAVED_NEW;
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1941 items = g_list_prepend(items, item);
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1942 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
1943 _("New..."));
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
1944
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1945 /* More savedstatuses */
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1946 item = g_new0(StatusBoxItem, 1);
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1947 item->type = STATUS_SAVED_ALL;
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1948 items = g_list_prepend(items, item);
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1949 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
1950 _("Saved..."));
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1951
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1952 /* 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
1953 * 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
1954 * is destroyed. */
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
1955 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
1956 items, (GDestroyNotify)destroy_status_list);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1957 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
1958
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
1959 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1960 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
1961 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1962 PurpleBlistNode *node, *sel;
22300
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1963 FinchBlistManager *manager;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1964
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1965 if (ggblist == NULL)
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1966 return;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1967
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1968 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
1969 if (manager == NULL)
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1970 manager = &default_manager;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1971 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
1972 if (ggblist->manager->uninit)
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1973 ggblist->manager->uninit();
dae4ed366fcb Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22303
diff changeset
1974
22300
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1975 ggblist->manager = manager;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1976 if (manager->can_add_node == NULL)
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1977 manager->can_add_node = default_can_add_node;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1978 if (manager->find_parent == NULL)
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1979 manager->find_parent = default_find_parent;
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1980 if (manager->create_tooltip == NULL)
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1981 manager->create_tooltip = default_create_tooltip;
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
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
1984 if (ggblist->window == NULL)
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
1985 return;
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
1986
14531
4beceb49b547 [gaim-migrate @ 17185]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14489
diff changeset
1987 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
1988 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
1989
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
1990 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
1991 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
1992 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
1993 }
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
1994 populate_buddylist();
14531
4beceb49b547 [gaim-migrate @ 17185]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14489
diff changeset
1995 gnt_tree_set_selected(GNT_TREE(ggblist->tree), sel);
4beceb49b547 [gaim-migrate @ 17185]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14489
diff changeset
1996 draw_tooltip(ggblist);
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
1997 }
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
1998
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
1999 void finch_blist_init()
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2000 {
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21808
diff changeset
2001 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
2002 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
2003 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
2004 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
2005 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
2006 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
2007 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
2008 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
2009 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
2010 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
2011 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
2012 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
2013
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2014 purple_prefs_add_none(PREF_ROOT);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2015 purple_prefs_add_none(PREF_ROOT "/size");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2016 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
2017 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
2018 purple_prefs_add_none(PREF_ROOT "/position");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2019 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
2020 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
2021 purple_prefs_add_bool(PREF_ROOT "/idletime", TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2022 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
2023 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
2024 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
2025 purple_prefs_add_string(PREF_ROOT "/grouping", "default");
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
2026
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2027 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
2028 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
2029 purple_prefs_connect_callback(finch_blist_get_handle(),
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
2030 PREF_ROOT "/showoffline", redraw_blist, NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2031 purple_prefs_connect_callback(finch_blist_get_handle(),
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2032 PREF_ROOT "/sort_type", redraw_blist, NULL);
22300
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
2033 purple_prefs_connect_callback(finch_blist_get_handle(),
42f7d98ffeeb Remember the selected grouping option.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22299
diff changeset
2034 PREF_ROOT "/grouping", redraw_blist, NULL);
14461
ed494fb68279 [gaim-migrate @ 17107]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14458
diff changeset
2035
30039
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2036 purple_signal_connect_priority(purple_connections_get_handle(),
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2037 "autojoin", purple_blist_get_handle(),
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2038 G_CALLBACK(account_autojoin_cb), NULL,
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2039 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
2040
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
2041 finch_blist_install_manager(&default_manager);
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
2042 }
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
2043
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14104
diff changeset
2044 static gboolean
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2045 remove_typing_cb(gpointer null)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2046 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2047 PurpleSavedStatus *current;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2048 const char *message, *newmessage;
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2049 char *escnewmessage;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2050 PurpleStatusPrimitive prim, newprim;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2051 StatusBoxItem *item;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2052
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2053 current = purple_savedstatus_get_current();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2054 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
2055 prim = purple_savedstatus_get_primitive_type(current);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2056
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2057 newmessage = gnt_entry_get_text(GNT_ENTRY(ggblist->statustext));
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2058 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
2059 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
2060
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2061 switch (item->type) {
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2062 case STATUS_PRIMITIVE:
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2063 newprim = item->u.prim;
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2064 break;
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2065 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
2066 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
2067 break;
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2068 default:
b54dafede4bd A rare crash fix for finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16636
diff changeset
2069 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
2070 }
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2071
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2072 if (newprim != prim || ((message && !escnewmessage) ||
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2073 (!message && escnewmessage) ||
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2074 (message && escnewmessage && g_utf8_collate(message, escnewmessage) != 0)))
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2075 {
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2076 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
2077 /* Holy Crap! That's a LAWNG function name */
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2078 if (status == NULL)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2079 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2080 status = purple_savedstatus_new(NULL, newprim);
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2081 purple_savedstatus_set_message(status, escnewmessage);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2082 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2083
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2084 purple_savedstatus_activate(status);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2085 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2086
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2087 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
2088 end:
24799
d166acdb3a43 Properly escape the status message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24504
diff changeset
2089 g_free(escnewmessage);
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
2090 if (ggblist->typing)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2091 g_source_remove(ggblist->typing);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2092 ggblist->typing = 0;
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14104
diff changeset
2093 return FALSE;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2094 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2095
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2096 static void
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2097 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
2098 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2099 gnt_entry_set_text(GNT_ENTRY(ggblist->statustext), NULL);
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
2100 if (now->type == STATUS_SAVED_POPULAR)
14103
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 /* Set the status immediately */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2103 purple_savedstatus_activate(now->u.saved);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2104 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2105 else if (now->type == STATUS_PRIMITIVE)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2106 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2107 /* Move the focus to the entry box */
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
2108 /* 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
2109 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
2110 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
2111 }
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
2112 else if (now->type == STATUS_SAVED_ALL)
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
2113 {
14193
fcfd3eea2160 [gaim-migrate @ 16773]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14188
diff changeset
2114 /* Restore the selection to reflect current status. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2115 savedstatus_changed(purple_savedstatus_get_current(), NULL);
14193
fcfd3eea2160 [gaim-migrate @ 16773]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14188
diff changeset
2116 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
2117 finch_savedstatus_show_all();
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14167
diff changeset
2118 }
14194
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
2119 else if (now->type == STATUS_SAVED_NEW)
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
2120 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2121 savedstatus_changed(purple_savedstatus_get_current(), NULL);
14194
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
2122 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
2123 finch_savedstatus_edit(NULL);
14194
b371a53b1695 [gaim-migrate @ 16774]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14193
diff changeset
2124 }
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2125 else
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2126 g_return_if_reached();
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2127 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2128
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2129 static gboolean
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2130 status_text_changed(GntEntry *entry, const char *text, gpointer null)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2131 {
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14104
diff changeset
2132 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
2133 return FALSE;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2134
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
2135 if (ggblist->typing)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2136 g_source_remove(ggblist->typing);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2137 ggblist->typing = 0;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2138
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2139 if (text[0] == '\r' && text[1] == 0)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2140 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2141 /* Set the status only after you press 'Enter' */
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2142 remove_typing_cb(NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2143 return TRUE;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2144 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2145
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2146 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
2147 return FALSE;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2148 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2149
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2150 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2151 savedstatus_changed(PurpleSavedStatus *now, PurpleSavedStatus *old)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2152 {
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2153 GList *list;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2154 PurpleStatusPrimitive prim;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2155 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
2156 gboolean found = FALSE, saved = TRUE;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2157
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2158 if (!ggblist)
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2159 return;
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2160
14555
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
2161 /* Block the signals we don't want to emit */
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2162 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
2163 0, 0, NULL, status_selection_changed, NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2164 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
2165 0, 0, NULL, status_text_changed, NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2166
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
2167 prim = purple_savedstatus_get_primitive_type(now);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2168 message = purple_savedstatus_get_message(now);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2169
14555
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
2170 /* Rebuild the status dropdown */
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
2171 populate_status_dropdown();
0d6ef581e3ac [gaim-migrate @ 17212]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14539
diff changeset
2172
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
2173 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
2174 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
2175 for (; list; list = list->next)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2176 {
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
2177 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
2178 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
2179 (!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
2180 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2181 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
2182 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
2183 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
2184 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
2185 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
2186 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
2187 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
2188 }
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 }
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 if (!saved)
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2191 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
2192 saved = FALSE;
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2193 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2194
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2195 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
2196 0, 0, NULL, status_selection_changed, NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2197 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
2198 0, 0, NULL, status_text_changed, NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2199 }
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2200
14167
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2201 static int
16555
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2202 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
2203 {
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
2204 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
2205 if (n1 == n2)
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2206 return 1;
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2207 return -1;
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2208 }
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2209
9f8c3a97fb35 Never change the orders of chats or the groups.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16490
diff changeset
2210 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2211 blist_node_compare_text(PurpleBlistNode *n1, PurpleBlistNode *n2)
14167
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2212 {
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2213 const char *s1, *s2;
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2214 char *us1, *us2;
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2215 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
2216
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
2217 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
2218 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
2219
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
2220 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
2221 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
2222 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
2223 } 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
2224 return purple_buddy_presence_compare(
4676b30130c9 Refactored finch to use the GObject PurplePresence API
Ankit Vani <a@nevitus.org>
parents: 34760
diff changeset
2225 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
2226 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
2227 } 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
2228 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
2229 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
2230 } 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
2231 return blist_node_compare_position(n1, n2);
14167
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2232 }
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2233
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2234 us1 = g_utf8_strup(s1, -1);
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2235 us2 = g_utf8_strup(s2, -1);
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2236 ret = g_utf8_collate(us1, us2);
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2237 g_free(us1);
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2238 g_free(us2);
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2239
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2240 return ret;
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2241 }
ca6027c33d2c [gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14127
diff changeset
2242
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2243 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2244 blist_node_compare_status(PurpleBlistNode *n1, PurpleBlistNode *n2)
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2245 {
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2246 int ret;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2247
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
2248 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
2249 return blist_node_compare_position(n1, n2);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2250
35914
e05ac5e585d0 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35587
diff changeset
2251 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
2252 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
2253 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
2254 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
2255
e05ac5e585d0 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35587
diff changeset
2256 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
2257 ret = purple_buddy_presence_compare(
4676b30130c9 Refactored finch to use the GObject PurplePresence API
Ankit Vani <a@nevitus.org>
parents: 34760
diff changeset
2258 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
2259 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
2260 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
2261 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
2262 } 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
2263 return blist_node_compare_position(n1, n2);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2264 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2265
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2266 /* Sort alphabetically if presence is not comparable */
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2267 ret = blist_node_compare_text(n1, n2);
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2268
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2269 return ret;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2270 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2271
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2272 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2273 get_contact_log_size(PurpleBlistNode *c)
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2274 {
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2275 int log = 0;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2276 PurpleBlistNode *node;
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2277
22282
a964668bd7e4 Add some accessor functions for PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22140
diff changeset
2278 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
2279 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
2280 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
2281 purple_buddy_get_account(b));
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2282 }
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 log;
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 blist_node_compare_log(PurpleBlistNode *n1, PurpleBlistNode *n2)
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 ret;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2291 PurpleBuddy *b1, *b2;
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2292
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
2293 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
2294 return blist_node_compare_position(n1, n2);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2295
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
2296 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
2297 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
2298 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
2299 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
2300 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
2301 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
2302 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
2303 } 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
2304 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
2305 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
2306 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
2307 } 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
2308 return blist_node_compare_position(n1, n2);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2309 }
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
2310
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2311 ret = blist_node_compare_text(n1, n2);
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2312 return ret;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2313 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2314
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2315 static void
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2316 plugin_action(GntMenuItem *item, gpointer data)
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2317 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2318 PurplePluginAction *action = data;
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2319 if (action && action->callback)
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2320 action->callback(action);
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2321 }
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2322
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2323 static void
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2324 build_plugin_actions(GntMenuItem *item, PurplePlugin *plugin)
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2325 {
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2326 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
2327 PurplePluginActionsCb actions_cb;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2328 GList *actions;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2329 GntMenuItem *menuitem;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2330
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36896
diff changeset
2331 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
2332 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
2333
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2334 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
2335 for (actions = actions_cb(plugin); actions;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2336 actions = g_list_delete_link(actions, actions)) {
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2337 if (actions->data) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2338 PurplePluginAction *action = actions->data;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2339 action->plugin = plugin;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2340 menuitem = gnt_menuitem_new(action->label);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2341 gnt_menu_add_item(GNT_MENU(sub), menuitem);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2342
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2343 gnt_menuitem_set_callback(menuitem, plugin_action, action);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2344 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
2345 action, (GDestroyNotify)purple_plugin_action_free);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2346 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2347 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2348 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2349
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2350 static void
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2351 protocol_action(GntMenuItem *item, gpointer data)
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2352 {
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2353 PurpleProtocolAction *action = data;
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2354 if (action && action->callback)
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2355 action->callback(action);
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2356 }
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2357
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2358 static void
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
2359 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
2360 PurpleConnection *gc)
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 GntWidget *sub = gnt_menu_new(GNT_MENU_POPUP);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2363 GList *actions;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2364 GntMenuItem *menuitem;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2365
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2366 gnt_menuitem_set_submenu(item, GNT_MENU(sub));
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
2367 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
2368 actions = g_list_delete_link(actions, actions)) {
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2369 if (actions->data) {
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2370 PurpleProtocolAction *action = actions->data;
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2371 action->connection = gc;
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2372 menuitem = gnt_menuitem_new(action->label);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2373 gnt_menu_add_item(GNT_MENU(sub), menuitem);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2374
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2375 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
2376 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
2377 action, (GDestroyNotify)purple_protocol_action_free);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2378 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2379 }
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
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2382 static gboolean
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2383 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
2384 {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2385 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
2386 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
2387
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2388 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
2389 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
2390
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
2391 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
2392 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
2393 } else {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2394 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
2395 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
2396 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
2397 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2398
34716
fc09ccb6eab5 ref buddy before connecting signed off timeout, and unref in the handler
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
2399 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
2400 return FALSE;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2401 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2402
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2403 static gboolean
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2404 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
2405 {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2406 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
2407 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
2408 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
2409 return FALSE;
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2410
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2411 if (fnode->signed_timer)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2412 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
2413
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_ref(node);
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 38358
diff changeset
2415 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
2416 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
2417 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
2418 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
2419 return FALSE;
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
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2422 static void
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2423 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
2424 {
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2425 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
2426 }
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2427
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2428 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
2429 reconstruct_plugins_menu(void)
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2430 {
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2431 GntWidget *sub;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2432 GntMenuItem *plg;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2433 GList *iter;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2434
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2435 if (!ggblist)
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2436 return;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2437
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2438 if (ggblist->plugins == NULL)
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2439 ggblist->plugins = gnt_menuitem_new(_("Plugins"));
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2440
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2441 plg = ggblist->plugins;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2442 sub = gnt_menu_new(GNT_MENU_POPUP);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2443 gnt_menuitem_set_submenu(plg, GNT_MENU(sub));
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2444
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2445 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
2446 PurplePlugin *plugin = iter->data;
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2447 PurplePluginInfo *info = purple_plugin_get_info(plugin);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2448 GntMenuItem *item;
36489
6e8edeb3f3f9 Refactored gntblist to use the actions callbacks
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
2449
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36896
diff changeset
2450 if (!purple_plugin_info_get_actions_cb(info))
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2451 continue;
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2452
39834
0345d198dbd6 Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
2453 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
2454 GPLUGIN_PLUGIN_INFO(info))));
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2455 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
2456 build_plugin_actions(item, plugin);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2457 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2458 }
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2459
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2460 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
2461 reconstruct_accounts_menu(void)
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2462 {
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2463 GntWidget *sub;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2464 GntMenuItem *acc, *item;
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2465 GList *iter;
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2466
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2467 if (!ggblist)
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2468 return;
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2469
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2470 if (ggblist->accounts == NULL)
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2471 ggblist->accounts = gnt_menuitem_new(_("Accounts"));
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2472
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2473 acc = ggblist->accounts;
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2474 sub = gnt_menu_new(GNT_MENU_POPUP);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2475 gnt_menuitem_set_submenu(acc, GNT_MENU(sub));
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2476
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2477 for (iter = purple_accounts_get_all_active(); iter;
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2478 iter = g_list_delete_link(iter, iter)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2479 PurpleAccount *account = iter->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2480 PurpleConnection *gc = purple_account_get_connection(account);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
2481 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
2482
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2483 if (!gc || !PURPLE_CONNECTION_IS_CONNECTED(gc))
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2484 continue;
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
2485 protocol = purple_connection_get_protocol(gc);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
2486
39759
ea1401483849 Rename *_GET_*_IFACE to more standard *_GET_IFACE.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39698
diff changeset
2487 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
2488 item = gnt_menuitem_new(purple_account_get_username(account));
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2489 gnt_menu_add_item(GNT_MENU(sub), item);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36510
diff changeset
2490 build_protocol_actions(item, protocol, gc);
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2491 }
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2492 }
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2493 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2494
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2495 static void
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2496 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
2497 {
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2498 GList *iter;
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2499 GntWidget *subsub;
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2500
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2501 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
2502 return;
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2503
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2504 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
2505 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
2506
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2507 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
2508 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
2509 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
2510 GntMenuItem *item = gnt_menuitem_new(_(manager->name));
25708
7e97dbce8223 applied changes from aa7ce93329f5ccbe74640a92b6656ae402d8eea8
Ethan Blanton <elb@pidgin.im>
parents: 24799
diff changeset
2511 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
2512 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
2513 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
2514 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
2515 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
2516 }
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2517 }
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2518
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
2519 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
2520 auto_join_chats(gpointer data)
15242
4f4b5d66f9af [gaim-migrate @ 17967]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15241
diff changeset
2521 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2522 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
2523 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
2524 PurpleAccount *account = purple_connection_get_account(pc);
15242
4f4b5d66f9af [gaim-migrate @ 17967]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15241
diff changeset
2525
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2526 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
2527 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
2528 if (PURPLE_IS_CHAT(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2529 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
2530 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
2531 purple_blist_node_get_bool(node, "gnt-autojoin"))
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
2532 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
2533 }
4f4b5d66f9af [gaim-migrate @ 17967]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15241
diff changeset
2534 }
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
2535 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
2536 }
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2537
30039
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2538 static gboolean
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2539 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
2540 {
9d5c2c048760 I think this fixes the auto-rejoin-after-auto-reconnect bug in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19425
diff changeset
2541 g_idle_add(auto_join_chats, gc);
30039
9cd7672bae4f Add an autojoin connection signal
Richard Laager <rlaager@pidgin.im>
parents: 29106
diff changeset
2542 return TRUE;
15242
4f4b5d66f9af [gaim-migrate @ 17967]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15241
diff changeset
2543 }
18626
c2d9efa0ef1a Minor changes to remove a couple of lines of duplication.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18625
diff changeset
2544
c2d9efa0ef1a Minor changes to remove a couple of lines of duplication.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18625
diff changeset
2545 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
2546 {
18626
c2d9efa0ef1a Minor changes to remove a couple of lines of duplication.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18625
diff changeset
2547 purple_prefs_set_bool(n, !purple_prefs_get_bool(n));
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2548 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2549
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2550 static void sort_blist_change_cb(GntMenuItem *item, gpointer n)
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2551 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2552 purple_prefs_set_string(PREF_ROOT "/sort_type", n);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2553 }
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2554
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
2555 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
2556 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
2557 {
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
2558 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
2559 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
2560 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
2561 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
2562 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
2563 } else {
34584
ed2747e0598c Refactored finch to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 33935
diff changeset
2564 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
2565 }
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
2566 }
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
2567 }
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
2568
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
2569 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
2570 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
2571 {
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 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
2573 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
2574 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
2575
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
2576 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
2577
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 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
2579 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
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 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
2582 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
2583 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
2584 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
2585
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 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
2587 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
2588 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
2589 (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
2590 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
2591 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
2592 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
2593
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
2594 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
2595 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
2596 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
2597 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
2598
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2599 purple_request_fields(
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2600 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
2601 _("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
2602 "you would like to Block/Unblock."),
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2603 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
2604 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
2605 }
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
18607
9b0e8be076f0 Fix a bug where buddies from offline accounts were showing up.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18400
diff changeset
2607 /* send_im_select* -- Xerox */
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2608 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2609 send_im_select_cb(gpointer data, PurpleRequestFields *fields)
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2610 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2611 PurpleAccount *account;
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2612 const char *username;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
2613 PurpleIMConversation *im;
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2614
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2615 account = purple_request_fields_get_account(fields, "account");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2616 username = purple_request_fields_get_string(fields, "screenname");
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2617
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
2618 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
2619 purple_conversation_present(PURPLE_CONVERSATION(im));
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2620 }
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2621
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2622 static void
14981
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14951
diff changeset
2623 send_im_select(GntMenuItem *item, gpointer n)
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2624 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2625 PurpleRequestFields *fields;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2626 PurpleRequestFieldGroup *group;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2627 PurpleRequestField *field;
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2628
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2629 fields = purple_request_fields_new();
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2630
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2631 group = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2632 purple_request_fields_add_group(fields, group);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2633
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2634 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
2635 purple_request_field_set_type_hint(field, "screenname");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2636 purple_request_field_set_required(field, TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2637 purple_request_field_group_add_field(group, field);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2638
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2639 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
2640 purple_request_field_set_type_hint(field, "account");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2641 purple_request_field_set_visible(field,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2642 (purple_connections_get_all() != NULL &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2643 purple_connections_get_all()->next != NULL));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2644 purple_request_field_set_required(field, TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2645 purple_request_field_group_add_field(group, field);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2646
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2647 purple_request_fields(
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2648 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
2649 _("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
2650 "you would like to IM."),
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2651 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
2652 NULL, NULL, NULL);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2653 }
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2654
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2655 static void
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2656 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
2657 {
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2658 PurpleAccount *account;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2659 const char *name;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2660 PurpleConnection *gc;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2661 PurpleChat *chat;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2662 GHashTable *hash = NULL;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
2663 PurpleChatConversation *conv;
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2664
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2665 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
2666 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
2667
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2668 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
2669 return;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2670
22336
ac905bb0a8ec Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22335
diff changeset
2671 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
2672 /* 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
2673 * 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
2674 * 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
2675 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
2676 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
2677 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
2678 } else {
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
2679 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
2680 }
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
2681
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2682 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
2683 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
2684 PurpleProtocol *protocol = purple_connection_get_protocol(gc);
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36701
diff changeset
2685 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
2686 } 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
2687 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
2688 }
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
2689 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
2690 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
2691 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
2692 }
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2693
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2694 static void
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2695 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
2696 {
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2697 PurpleRequestFields *fields;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2698 PurpleRequestFieldGroup *group;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2699 PurpleRequestField *field;
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2700
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2701 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
2702
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2703 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
2704 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
2705
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2706 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
2707 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
2708 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
2709
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2710 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
2711 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
2712 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
2713 (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
2714 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
2715 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
2716 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
2717
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2718 purple_request_fields(
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2719 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
2720 _("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
2721 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
2722 NULL, NULL, NULL);
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2723 }
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2724
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2725 static void
22988
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2726 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
2727 {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2728 PurpleAccount *account;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2729 const char *name;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2730 PurpleBuddy *buddy;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2731 PurpleContact *contact;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2732
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2733 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
2734 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
2735
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
2736 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
2737 if (buddy) {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2738 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
2739 } else {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2740 contact = NULL;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2741 }
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 if (contact) {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2744 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
2745 } else {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2746 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
2747 }
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2748 }
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2749
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2750 static void
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2751 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
2752 {
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2753 PurpleRequestFields *fields;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2754 PurpleRequestFieldGroup *group;
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2755 PurpleRequestField *field;
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 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
2758
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2759 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
2760 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
2761
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2762 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
2763 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
2764 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
2765 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
2766
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2767 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
2768 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
2769 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
2770 (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
2771 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
2772 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
2773 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
2774 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
2775
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2776 purple_request_fields(
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2777 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
2778 _("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
2779 "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
2780 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
2781 NULL, NULL, NULL);
22988
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2782 }
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2783
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2784 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
2785 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
2786 {
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
2787 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
2788 }
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
2789
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
2790 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
2791 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
2792 {
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2793 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
2794 }
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2795
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2796 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
2797 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
2798 {
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2799 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
2800 }
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2801
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2802 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
2803 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
2804 {
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2805 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
2806 }
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 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
2809 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
2810 {
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
2811 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
2812 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
2813 }
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
2814
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
2815 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
2816 create_menu(void)
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2817 {
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2818 GntWidget *menu, *sub, *subsub;
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2819 GntMenuItem *item;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2820 GntWindow *window;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2821
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2822 if (!ggblist)
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2823 return;
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2824
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2825 window = GNT_WINDOW(ggblist->window);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2826 ggblist->menu = menu = gnt_menu_new(GNT_MENU_TOPLEVEL);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2827 gnt_window_set_menu(window, GNT_MENU(menu));
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2828
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2829 item = gnt_menuitem_new(_("Options"));
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2830 gnt_menu_add_item(GNT_MENU(menu), item);
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2831
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2832 sub = gnt_menu_new(GNT_MENU_POPUP);
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2833 gnt_menuitem_set_submenu(item, GNT_MENU(sub));
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2834
14951
315052c54c13 [gaim-migrate @ 17661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14945
diff changeset
2835 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
2836 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
2837 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
2838 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
2839
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
2840 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
2841 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
2842 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
2843 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
2844
20793
2cf364db44c2 Add a 'Join Chat...' item in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20666
diff changeset
2845 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
2846 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
2847 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
2848 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
2849
22988
d311acabca71 Add a 'View log' option in the buddylist menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22986
diff changeset
2850 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
2851 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
2852 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
2853 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
2854
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
2855 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
2856 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
2857 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
2858 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
2859
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2860 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
2861 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
2862 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
2863 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
2864
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2865 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
2866 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
2867 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
2868 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
2869 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
2870 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
2871
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2872 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
2873 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
2874 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
2875 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
2876 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
2877 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
2878
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2879 item = gnt_menuitem_new(_("Sort"));
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2880 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
2881 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
2882 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
2883
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2884 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
2885 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
2886 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
2887 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
2888
20684
4daaf3284863 propagate from branch 'im.pidgin.pidgin' (head b47c4fe72d16b3724a2e8fa0b9c783bc33863beb)
Gabriel Schulhof <nix@go-nix.ca>
parents: 20628 19997
diff changeset
2889 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
2890 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
2891 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
2892 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
2893
20691
2b0a4e2175db Restoring gntblist.c:create_menu
Gabriel Schulhof <nix@go-nix.ca>
parents: 20690
diff changeset
2894 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
2895 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
2896 gnt_menu_add_item(GNT_MENU(subsub), item);
2b0a4e2175db Restoring gntblist.c:create_menu
Gabriel Schulhof <nix@go-nix.ca>
parents: 20690
diff changeset
2897 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
2898
2b0a4e2175db Restoring gntblist.c:create_menu
Gabriel Schulhof <nix@go-nix.ca>
parents: 20690
diff changeset
2899 item = gnt_menuitem_new(_("Add"));
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2900 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
2901
20628
14b7b59970c3 Re-arrange the menu. Add 'Add buddy/chat/group' in the menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
2902 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
2903 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
2904
22288
c6c6473ce2b9 Mark some strings for translation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22286
diff changeset
2905 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
2906 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
2907 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
2908 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
2909
22288
c6c6473ce2b9 Mark some strings for translation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22286
diff changeset
2910 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
2911 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
2912 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
2913 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
2914
22288
c6c6473ce2b9 Mark some strings for translation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22286
diff changeset
2915 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
2916 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
2917 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
2918 gnt_menuitem_set_callback(item, menu_add_group_cb, NULL);
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2919
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
2920 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
2921 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
2922 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
2923
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2924 reconstruct_accounts_menu();
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2925 gnt_menu_add_item(GNT_MENU(menu), ggblist->accounts);
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2926
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2927 reconstruct_plugins_menu();
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2928 gnt_menu_add_item(GNT_MENU(menu), ggblist->plugins);
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2929 }
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2930
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
2931 void finch_blist_show()
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
2932 {
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
2933 blist_show(purple_blist_get_default());
14909
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14908
diff changeset
2934 }
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
2935
14909
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14908
diff changeset
2936 static void
16165
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
2937 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
2938 {
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
2939 if (PURPLE_IS_GROUP(node))
16166
e40815a97f8e ...only for groups
Richard Nelson <wabz@pidgin.im>
parents: 16165
diff changeset
2940 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
2941 }
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
2942
24ec117bc52c Remember the collapsed state of groups in the blist
Richard Nelson <wabz@pidgin.im>
parents: 15991
diff changeset
2943 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2944 blist_show(PurpleBuddyList *list)
14909
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14908
diff changeset
2945 {
39695
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
2946 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
2947 gnt_window_present(ggblist->window);
14909
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14908
diff changeset
2948 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
2949 }
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2950
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
2951 ggblist->window = gnt_vwindow_new(FALSE);
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13927
diff changeset
2952 gnt_widget_set_name(ggblist->window, "buddylist");
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
2953 gnt_box_set_toplevel(GNT_BOX(ggblist->window), TRUE);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2954 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
2955 gnt_box_set_pad(GNT_BOX(ggblist->window), 0);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2956
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2957 ggblist->tree = gnt_tree_new();
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
2958
39617
1d0453799f73 Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39483
diff changeset
2959 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
2960 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
2961 purple_prefs_get_int(PREF_ROOT "/size/height"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2962 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
2963 purple_prefs_get_int(PREF_ROOT "/position/y"));
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2964
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2965 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
2966
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2967 ggblist->status = gnt_combo_box_new();
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2968 gnt_box_add_widget(GNT_BOX(ggblist->window), ggblist->status);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2969 ggblist->statustext = gnt_entry_new(NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2970 gnt_box_add_widget(GNT_BOX(ggblist->window), ggblist->statustext);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2971
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
2972 gnt_widget_show(ggblist->window);
13926
d2c1522276b3 [gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13923
diff changeset
2973
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2974 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
2975 PURPLE_CALLBACK(reconstruct_accounts_menu), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2976 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
2977 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
2978 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
2979 PURPLE_CALLBACK(reconstruct_accounts_menu), NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2980 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
2981 PURPLE_CALLBACK(buddy_status_changed), ggblist);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2982 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
2983 PURPLE_CALLBACK(buddy_idle_changed), ggblist);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
2984
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2985 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
2986 PURPLE_CALLBACK(reconstruct_plugins_menu), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
2987 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
2988 PURPLE_CALLBACK(reconstruct_plugins_menu), NULL);
14945
4cd7dbf2933b [gaim-migrate @ 17652]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14912
diff changeset
2989
22110
d0bd9cd65d03 Blink the buddies that signed on/off recently for six seconds.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
2990 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
2991 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
2992 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
2993 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
2994
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13920
diff changeset
2995 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
2996 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
2997 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
2998 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
2999 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
3000 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
3001 ggblist, 0, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
14020
d9a007b109be [gaim-migrate @ 16510]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
3002 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
3003 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
3004 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
3005 ggblist, 0, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
3006 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
3007 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
3008 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
3009
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3010 /* Status signals */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
3011 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
3012 PURPLE_CALLBACK(savedstatus_changed), NULL);
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3013 g_signal_connect(G_OBJECT(ggblist->status), "selection_changed",
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3014 G_CALLBACK(status_selection_changed), NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3015 g_signal_connect(G_OBJECT(ggblist->statustext), "key_pressed",
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3016 G_CALLBACK(status_text_changed), NULL);
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3017
14774
317db0f851e0 [gaim-migrate @ 17466]
Richard Nelson <wabz@pidgin.im>
parents: 14770
diff changeset
3018 create_menu();
14678
97f57691faab [gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14620
diff changeset
3019
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14082
diff changeset
3020 populate_buddylist();
14103
bcac61d40461 [gaim-migrate @ 16647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
3021
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
3022 savedstatus_changed(purple_savedstatus_get_current(), NULL);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
3023 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
3024
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
3025 void finch_blist_uninit()
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
3026 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
3027 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
3028
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
3029 gboolean finch_blist_get_position(int *x, int *y)
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3030 {
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3031 if (!ggblist || !ggblist->window)
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3032 return FALSE;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3033 gnt_widget_get_position(ggblist->window, x, y);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3034 return TRUE;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3035 }
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
3036
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
3037 void finch_blist_set_position(int x, int y)
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3038 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3039 gnt_widget_set_position(ggblist->window, x, y);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3040 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3041
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
3042 gboolean finch_blist_get_size(int *width, int *height)
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3043 {
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3044 if (!ggblist || !ggblist->window)
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3045 return FALSE;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3046 gnt_widget_get_size(ggblist->window, width, height);
14413
bd998fe17d82 [gaim-migrate @ 17054]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14280
diff changeset
3047 return TRUE;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3048 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3049
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15825
diff changeset
3050 void finch_blist_set_size(int width, int height)
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3051 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3052 gnt_widget_set_size(ggblist->window, width, height);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
3053 }
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
3054
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
3055 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
3056 {
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
3057 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
3058 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
3059 reconstruct_grouping_menu();
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
3060 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
3061 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
3062 }
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
3063 }
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
3064
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
3065 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
3066 {
22299
e2e241477323 Reconstruct the 'Grouping' menu when a blist manager is un/installed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22288
diff changeset
3067 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
3068 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
3069 reconstruct_grouping_menu();
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
3070 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
3071 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
3072 }
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 }
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
3074
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
3075 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
3076 {
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
3077 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
3078 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
3079 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
3080
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 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
3082 FinchBlistManager *m = iter->data;
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31601
diff changeset
3083 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
3084 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
3085 }
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
3086 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
3087 }
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 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
3090 {
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 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
3092 }
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
35587
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3094 /**************************************************************************
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3095 * GObject code
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3096 **************************************************************************/
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3097 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
3098
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3099 static void
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3100 finch_buddy_list_init(FinchBuddyList *self)
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3101 {
39695
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3102 if (!ggblist) {
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3103 /* The first buddy list object becomes the default. */
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3104 ggblist = self;
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3105 }
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3106
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3107 self->manager = finch_blist_manager_find(
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3108 purple_prefs_get_string(PREF_ROOT "/grouping"));
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3109 if (!self->manager) {
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3110 self->manager = &default_manager;
f0f7abe70b49 Remove PurpleBuddyListClass->new_list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39694
diff changeset
3111 }
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3112 }
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
39696
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3115 finch_buddy_list_finalize(GObject *obj)
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3116 {
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3117 FinchBuddyList *ggblist = FINCH_BUDDY_LIST(obj);
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3118
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3119 gnt_widget_destroy(ggblist->window);
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3120
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3121 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
3122 }
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3123
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3124 static void
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3125 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
3126 {
39696
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3127 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
3128 PurpleBuddyListClass *purple_blist_class;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3129
39696
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3130 obj_class->finalize = finch_buddy_list_finalize;
2ed6dd895984 Remove PurpleBuddyListClass->destroy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39695
diff changeset
3131
39693
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3132 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
3133 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
3134 purple_blist_class->show = blist_show;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3135 purple_blist_class->update = node_update;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3136 purple_blist_class->remove = node_remove;
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3137 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
3138 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
3139 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
3140 }
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3141
86f5c1fef140 Convert UI ops to PurpleBuddyListClass methods.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39692
diff changeset
3142 /**************************************************************************
35587
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3143 * GBoxed code
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3144 **************************************************************************/
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3145 static FinchBlistManager *
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3146 finch_blist_manager_copy(FinchBlistManager *manager)
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3147 {
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3148 FinchBlistManager *manager_new;
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3149
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3150 g_return_val_if_fail(manager != NULL, NULL);
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3151
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3152 manager_new = g_new(FinchBlistManager, 1);
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3153 *manager_new = *manager;
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3154
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3155 return manager_new;
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3156 }
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3157
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3158 static void
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3159 finch_blist_manager_free(FinchBlistManager *manager)
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3160 {
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3161 g_return_if_fail(manager != NULL);
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 g_free(manager);
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
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3166 GType
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3167 finch_blist_manager_get_type(void)
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3168 {
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3169 static GType type = 0;
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3170
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3171 if (type == 0) {
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3172 type = g_boxed_type_register_static("FinchBlistManager",
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3173 (GBoxedCopyFunc)finch_blist_manager_copy,
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3174 (GBoxedFreeFunc)finch_blist_manager_free);
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
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3177 return type;
78463057dd76 Box FinchBlistManager
Ankit Vani <a@nevitus.org>
parents: 35499
diff changeset
3178 }

mercurial