Wed, 20 Jun 2018 02:13:44 -0400
prefs: Add binding versions of pref widget functions.
These just bind settings to existing widgets and copy the saved value to
the widget, except for combos which are produced from runtime lists.
Those are populated in a similar way as before.
There are some extra _bind_ words that will probably be dropped once the
other functions are unused.
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
1 | /* purple |
| 4687 | 2 | * |
| 15884 | 3 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 5 | * source distribution. | |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
6 | * |
| 4687 | 7 | * This program is free software; you can redistribute it and/or modify |
| 8 | * it under the terms of the GNU General Public License as published by | |
| 9 | * the Free Software Foundation; either version 2 of the License, or | |
| 10 | * (at your option) any later version. | |
| 11 | * | |
| 12 | * This program is distributed in the hope that it will be useful, | |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 | * GNU General Public License for more details. | |
| 16 | * | |
| 17 | * You should have received a copy of the GNU General Public License | |
| 18 | * 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:
18209
diff
changeset
|
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 4687 | 20 | */ |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
21 | #include "internal.h" |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
22 | #include "conversation.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
23 | #include "debug.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5866
diff
changeset
|
24 | #include "pounce.h" |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
25 | |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
26 | #include "debug.h" |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
27 | #include "pounce.h" |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
28 | #include "util.h" |
| 4687 | 29 | |
|
35462
901dfa763f15
Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
30 | /* |
|
32227
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
31 | * A buddy pounce structure. |
|
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
32 | * |
|
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
33 | * Buddy pounces are actions triggered by a buddy-related event. For |
|
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
34 | * example, a sound can be played or an IM window opened when a buddy |
|
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
35 | * signs on or returns from away. Such responses are handled in the |
|
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
36 | * UI. The events themselves are done in the core. |
|
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
37 | */ |
|
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
38 | struct _PurplePounce |
|
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
39 | { |
|
35462
901dfa763f15
Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
40 | char *ui_type; /* The type of UI. */ |
|
32227
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
41 | |
|
35462
901dfa763f15
Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
42 | PurplePounceEvent events; /* The event(s) to pounce on. */ |
|
901dfa763f15
Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
43 | PurplePounceOption options; /* The pounce options */ |
|
901dfa763f15
Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
44 | PurpleAccount *pouncer; /* The user who is pouncing. */ |
|
32227
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
45 | |
|
35462
901dfa763f15
Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
46 | char *pouncee; /* The buddy to pounce on. */ |
|
32227
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
47 | |
|
35462
901dfa763f15
Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
48 | GHashTable *actions; /* The registered actions. */ |
|
32227
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
49 | |
|
35462
901dfa763f15
Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
50 | gboolean save; /* Whether or not the pounce should |
|
32227
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
51 | be saved after activation. */ |
|
35462
901dfa763f15
Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
52 | void *data; /* Pounce-specific data. */ |
|
32227
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
53 | }; |
|
73087d75a17c
I want to play hide-a-struct too
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31694
diff
changeset
|
54 | |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
55 | typedef struct |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
56 | { |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
57 | GString *buffer; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
58 | |
| 15884 | 59 | PurplePounce *pounce; |
| 60 | PurplePounceEvent events; | |
| 61 | PurplePounceOption options; | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
62 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
63 | char *ui_name; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
64 | char *pouncee; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
65 | char *protocol_id; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
66 | char *event_type; |
| 12694 | 67 | char *option_type; |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
68 | char *action_name; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
69 | char *param_name; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
70 | char *account_name; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
71 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
72 | } PounceParserData; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
73 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
74 | typedef struct |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
75 | { |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
76 | char *name; |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
77 | |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
78 | gboolean enabled; |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
79 | |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
80 | GHashTable *atts; |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
81 | |
| 15884 | 82 | } PurplePounceActionData; |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
83 | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
84 | typedef struct |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
85 | { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
86 | char *ui; |
| 15884 | 87 | PurplePounceCb cb; |
| 88 | void (*new_pounce)(PurplePounce *); | |
| 89 | void (*free_pounce)(PurplePounce *); | |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
90 | |
| 15884 | 91 | } PurplePounceHandler; |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
92 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
93 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
94 | static GHashTable *pounce_handlers = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
95 | static GList *pounces = NULL; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
96 | static guint save_timer = 0; |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
97 | static gboolean pounces_loaded = FALSE; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
98 | |
| 4687 | 99 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
100 | /********************************************************************* |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
101 | * Private utility functions * |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
102 | *********************************************************************/ |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
103 | |
| 15884 | 104 | static PurplePounceActionData * |
| 105 | find_action_data(const PurplePounce *pounce, const char *name) | |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
106 | { |
| 15884 | 107 | PurplePounceActionData *action; |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
108 | |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
109 | g_return_val_if_fail(pounce != NULL, NULL); |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
110 | g_return_val_if_fail(name != NULL, NULL); |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
111 | |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
112 | action = g_hash_table_lookup(pounce->actions, name); |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
113 | |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
114 | return action; |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
115 | } |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
116 | |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
117 | static void |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
118 | free_action_data(gpointer data) |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
119 | { |
| 15884 | 120 | PurplePounceActionData *action_data = data; |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
121 | |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
122 | g_free(action_data->name); |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
123 | |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
124 | g_hash_table_destroy(action_data->atts); |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
125 | |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
126 | g_free(action_data); |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
127 | } |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
128 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
129 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
130 | /********************************************************************* |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
131 | * Writing to disk * |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
132 | *********************************************************************/ |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
133 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
134 | static void |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
135 | action_parameter_to_xmlnode(gpointer key, gpointer value, gpointer user_data) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
136 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
137 | const char *name, *param_value; |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
138 | PurpleXmlNode *node, *child; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
139 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
140 | name = (const char *)key; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
141 | param_value = (const char *)value; |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
142 | node = (PurpleXmlNode *)user_data; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
143 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
144 | child = purple_xmlnode_new_child(node, "param"); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
145 | purple_xmlnode_set_attrib(child, "name", name); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
146 | purple_xmlnode_insert_data(child, param_value, -1); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
147 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
148 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
149 | static void |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
150 | action_parameter_list_to_xmlnode(gpointer key, gpointer value, gpointer user_data) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
151 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
152 | const char *action; |
| 15884 | 153 | PurplePounceActionData *action_data; |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
154 | PurpleXmlNode *node, *child; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
155 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
156 | action = (const char *)key; |
| 15884 | 157 | action_data = (PurplePounceActionData *)value; |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
158 | node = (PurpleXmlNode *)user_data; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
159 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
160 | if (!action_data->enabled) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
161 | return; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
162 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
163 | child = purple_xmlnode_new_child(node, "action"); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
164 | purple_xmlnode_set_attrib(child, "type", action); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
165 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
166 | g_hash_table_foreach(action_data->atts, action_parameter_to_xmlnode, child); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
167 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
168 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
169 | static void |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
170 | add_event_to_xmlnode(PurpleXmlNode *node, const char *type) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
171 | { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
172 | PurpleXmlNode *child; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
173 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
174 | child = purple_xmlnode_new_child(node, "event"); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
175 | purple_xmlnode_set_attrib(child, "type", type); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
176 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
177 | |
| 12694 | 178 | static void |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
179 | add_option_to_xmlnode(PurpleXmlNode *node, const char *type) |
| 12694 | 180 | { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
181 | PurpleXmlNode *child; |
| 12694 | 182 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
183 | child = purple_xmlnode_new_child(node, "option"); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
184 | purple_xmlnode_set_attrib(child, "type", type); |
| 12694 | 185 | } |
| 186 | ||
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
187 | static PurpleXmlNode * |
| 15884 | 188 | pounce_to_xmlnode(PurplePounce *pounce) |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
189 | { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
190 | PurpleXmlNode *node, *child; |
| 15884 | 191 | PurpleAccount *pouncer; |
| 192 | PurplePounceEvent events; | |
| 193 | PurplePounceOption options; | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
194 | |
| 15884 | 195 | pouncer = purple_pounce_get_pouncer(pounce); |
| 196 | events = purple_pounce_get_events(pounce); | |
| 197 | options = purple_pounce_get_options(pounce); | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
198 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
199 | node = purple_xmlnode_new("pounce"); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
200 | purple_xmlnode_set_attrib(node, "ui", pounce->ui_type); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
201 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
202 | child = purple_xmlnode_new_child(node, "account"); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
203 | purple_xmlnode_set_attrib(child, "protocol", purple_account_get_protocol_id(pouncer)); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
204 | purple_xmlnode_insert_data(child, |
|
21908
0e933a80c8fd
Save the normalized account name for pounces and custom statuses. References #2049.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20147
diff
changeset
|
205 | purple_normalize(pouncer, purple_account_get_username(pouncer)), -1); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
206 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
207 | child = purple_xmlnode_new_child(node, "pouncee"); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
208 | purple_xmlnode_insert_data(child, purple_pounce_get_pouncee(pounce), -1); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
209 | |
| 12694 | 210 | /* Write pounce options */ |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
211 | child = purple_xmlnode_new_child(node, "options"); |
| 15884 | 212 | if (options & PURPLE_POUNCE_OPTION_AWAY) |
| 12694 | 213 | add_option_to_xmlnode(child, "on-away"); |
| 214 | ||
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
215 | /* Write pounce events */ |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
216 | child = purple_xmlnode_new_child(node, "events"); |
| 15884 | 217 | if (events & PURPLE_POUNCE_SIGNON) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
218 | add_event_to_xmlnode(child, "sign-on"); |
| 15884 | 219 | if (events & PURPLE_POUNCE_SIGNOFF) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
220 | add_event_to_xmlnode(child, "sign-off"); |
| 15884 | 221 | if (events & PURPLE_POUNCE_AWAY) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
222 | add_event_to_xmlnode(child, "away"); |
| 15884 | 223 | if (events & PURPLE_POUNCE_AWAY_RETURN) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
224 | add_event_to_xmlnode(child, "return-from-away"); |
| 15884 | 225 | if (events & PURPLE_POUNCE_IDLE) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
226 | add_event_to_xmlnode(child, "idle"); |
| 15884 | 227 | if (events & PURPLE_POUNCE_IDLE_RETURN) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
228 | add_event_to_xmlnode(child, "return-from-idle"); |
| 15884 | 229 | if (events & PURPLE_POUNCE_TYPING) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
230 | add_event_to_xmlnode(child, "start-typing"); |
| 15884 | 231 | if (events & PURPLE_POUNCE_TYPED) |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13229
diff
changeset
|
232 | add_event_to_xmlnode(child, "typed"); |
| 15884 | 233 | if (events & PURPLE_POUNCE_TYPING_STOPPED) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
234 | add_event_to_xmlnode(child, "stop-typing"); |
| 15884 | 235 | if (events & PURPLE_POUNCE_MESSAGE_RECEIVED) |
| 12694 | 236 | add_event_to_xmlnode(child, "message-received"); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
237 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
238 | /* Write pounce actions */ |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
239 | child = purple_xmlnode_new_child(node, "actions"); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
240 | g_hash_table_foreach(pounce->actions, action_parameter_list_to_xmlnode, child); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
241 | |
| 15884 | 242 | if (purple_pounce_get_save(pounce)) |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
243 | purple_xmlnode_new_child(node, "save"); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
244 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
245 | return node; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
246 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
247 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
248 | static PurpleXmlNode * |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
249 | pounces_to_xmlnode(void) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
250 | { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
251 | PurpleXmlNode *node, *child; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
252 | GList *cur; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
253 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
254 | node = purple_xmlnode_new("pounces"); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
255 | purple_xmlnode_set_attrib(node, "version", "1.0"); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
256 | |
| 15884 | 257 | for (cur = purple_pounces_get_all(); cur != NULL; cur = cur->next) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
258 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
259 | child = pounce_to_xmlnode(cur->data); |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
260 | purple_xmlnode_insert_child(node, child); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
261 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
262 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
263 | return node; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
264 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
265 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
266 | static void |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
267 | sync_pounces(void) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
268 | { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
269 | PurpleXmlNode *node; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
270 | char *data; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
271 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
272 | if (!pounces_loaded) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
273 | { |
| 15884 | 274 | purple_debug_error("pounce", "Attempted to save buddy pounces before " |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
275 | "they were read!\n"); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
276 | return; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
277 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
278 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
279 | node = pounces_to_xmlnode(); |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
280 | data = purple_xmlnode_to_formatted_str(node, NULL); |
|
38900
6239177ce7ed
Treat pounces.xml as config part
qarkai <qarkai@gmail.com>
parents:
38880
diff
changeset
|
281 | purple_util_write_data_to_config_file("pounces.xml", data, -1); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
282 | g_free(data); |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
34670
diff
changeset
|
283 | purple_xmlnode_free(node); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
284 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
285 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
286 | static gboolean |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
287 | save_cb(gpointer data) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
288 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
289 | sync_pounces(); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
290 | save_timer = 0; |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
291 | return FALSE; |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
292 | } |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
293 | |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
294 | static void |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
295 | schedule_pounces_save(void) |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
296 | { |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
297 | if (save_timer == 0) |
|
38433
361c801c4536
Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents:
38358
diff
changeset
|
298 | save_timer = g_timeout_add_seconds(5, save_cb, NULL); |
|
5864
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
299 | } |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
300 | |
|
86822afeeab0
[gaim-migrate @ 6295]
Christian Hammond <chipx86@chipx86.com>
parents:
5857
diff
changeset
|
301 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
302 | /********************************************************************* |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
303 | * Reading from disk * |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
304 | *********************************************************************/ |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
305 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
306 | static void |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
307 | free_parser_data(gpointer user_data) |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
308 | { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
309 | PounceParserData *data = user_data; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
310 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
311 | if (data->buffer != NULL) |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
312 | g_string_free(data->buffer, TRUE); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
313 | |
|
13229
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
314 | g_free(data->ui_name); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
315 | g_free(data->pouncee); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
316 | g_free(data->protocol_id); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
317 | g_free(data->event_type); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
318 | g_free(data->option_type); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
319 | g_free(data->action_name); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
320 | g_free(data->param_name); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
321 | g_free(data->account_name); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
322 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
323 | g_free(data); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
324 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
325 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
326 | static void |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
327 | start_element_handler(GMarkupParseContext *context, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
328 | const gchar *element_name, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
329 | const gchar **attribute_names, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
330 | const gchar **attribute_values, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
331 | gpointer user_data, GError **error) |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
332 | { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
333 | PounceParserData *data = user_data; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
334 | GHashTable *atts; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
335 | int i; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
336 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
337 | atts = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
338 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
339 | for (i = 0; attribute_names[i] != NULL; i++) { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
340 | g_hash_table_insert(atts, g_strdup(attribute_names[i]), |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
341 | g_strdup(attribute_values[i])); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
342 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
343 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
344 | if (data->buffer != NULL) { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
345 | g_string_free(data->buffer, TRUE); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
346 | data->buffer = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
347 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
348 | |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
349 | if (purple_strequal(element_name, "pounce")) { |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
350 | const char *ui = g_hash_table_lookup(atts, "ui"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
351 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
352 | if (ui == NULL) { |
| 15884 | 353 | purple_debug(PURPLE_DEBUG_ERROR, "pounce", |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
354 | "Unset 'ui' parameter for pounce!\n"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
355 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
356 | else |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
357 | data->ui_name = g_strdup(ui); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
358 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
359 | data->events = 0; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
360 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
361 | else if (purple_strequal(element_name, "account")) { |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
362 | const char *protocol_id = g_hash_table_lookup(atts, "protocol"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
363 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
364 | if (protocol_id == NULL) { |
| 15884 | 365 | purple_debug(PURPLE_DEBUG_ERROR, "pounce", |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
366 | "Unset 'protocol' parameter for account!\n"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
367 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
368 | else |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
369 | data->protocol_id = g_strdup(protocol_id); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
370 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
371 | else if (purple_strequal(element_name, "option")) { |
| 12694 | 372 | const char *type = g_hash_table_lookup(atts, "type"); |
| 373 | ||
| 374 | if (type == NULL) { | |
| 15884 | 375 | purple_debug(PURPLE_DEBUG_ERROR, "pounce", |
| 12694 | 376 | "Unset 'type' parameter for option!\n"); |
| 377 | } | |
| 378 | else | |
| 379 | data->option_type = g_strdup(type); | |
| 380 | } | |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
381 | else if (purple_strequal(element_name, "event")) { |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
382 | const char *type = g_hash_table_lookup(atts, "type"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
383 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
384 | if (type == NULL) { |
| 15884 | 385 | purple_debug(PURPLE_DEBUG_ERROR, "pounce", |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
386 | "Unset 'type' parameter for event!\n"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
387 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
388 | else |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
389 | data->event_type = g_strdup(type); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
390 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
391 | else if (purple_strequal(element_name, "action")) { |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
392 | const char *type = g_hash_table_lookup(atts, "type"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
393 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
394 | if (type == NULL) { |
| 15884 | 395 | purple_debug(PURPLE_DEBUG_ERROR, "pounce", |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
396 | "Unset 'type' parameter for action!\n"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
397 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
398 | else |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
399 | data->action_name = g_strdup(type); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
400 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
401 | else if (purple_strequal(element_name, "param")) { |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
402 | const char *param_name = g_hash_table_lookup(atts, "name"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
403 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
404 | if (param_name == NULL) { |
| 15884 | 405 | purple_debug(PURPLE_DEBUG_ERROR, "pounce", |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
406 | "Unset 'name' parameter for param!\n"); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
407 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
408 | else |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
409 | data->param_name = g_strdup(param_name); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
410 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
411 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
412 | g_hash_table_destroy(atts); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
413 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
414 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
415 | static void |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
416 | end_element_handler(GMarkupParseContext *context, const gchar *element_name, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
417 | gpointer user_data, GError **error) |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
418 | { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
419 | PounceParserData *data = user_data; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
420 | gchar *buffer = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
421 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
422 | if (data->buffer != NULL) { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
423 | buffer = g_string_free(data->buffer, FALSE); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
424 | data->buffer = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
425 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
426 | |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
427 | if (purple_strequal(element_name, "account")) { |
|
9598
952f38eaf13d
[gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents:
8549
diff
changeset
|
428 | g_free(data->account_name); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
429 | data->account_name = g_strdup(buffer); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
430 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
431 | else if (purple_strequal(element_name, "pouncee")) { |
|
9598
952f38eaf13d
[gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents:
8549
diff
changeset
|
432 | g_free(data->pouncee); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
433 | data->pouncee = g_strdup(buffer); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
434 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
435 | else if (purple_strequal(element_name, "option")) { |
|
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
436 | if (purple_strequal(data->option_type, "on-away")) |
| 15884 | 437 | data->options |= PURPLE_POUNCE_OPTION_AWAY; |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13229
diff
changeset
|
438 | |
| 12694 | 439 | g_free(data->option_type); |
| 440 | data->option_type = NULL; | |
| 441 | } | |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
442 | else if (purple_strequal(element_name, "event")) { |
|
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
443 | if (purple_strequal(data->event_type, "sign-on")) |
| 15884 | 444 | data->events |= PURPLE_POUNCE_SIGNON; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
445 | else if (purple_strequal(data->event_type, "sign-off")) |
| 15884 | 446 | data->events |= PURPLE_POUNCE_SIGNOFF; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
447 | else if (purple_strequal(data->event_type, "away")) |
| 15884 | 448 | data->events |= PURPLE_POUNCE_AWAY; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
449 | else if (purple_strequal(data->event_type, "return-from-away")) |
| 15884 | 450 | data->events |= PURPLE_POUNCE_AWAY_RETURN; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
451 | else if (purple_strequal(data->event_type, "idle")) |
| 15884 | 452 | data->events |= PURPLE_POUNCE_IDLE; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
453 | else if (purple_strequal(data->event_type, "return-from-idle")) |
| 15884 | 454 | data->events |= PURPLE_POUNCE_IDLE_RETURN; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
455 | else if (purple_strequal(data->event_type, "start-typing")) |
| 15884 | 456 | data->events |= PURPLE_POUNCE_TYPING; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
457 | else if (purple_strequal(data->event_type, "typed")) |
| 15884 | 458 | data->events |= PURPLE_POUNCE_TYPED; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
459 | else if (purple_strequal(data->event_type, "stop-typing")) |
| 15884 | 460 | data->events |= PURPLE_POUNCE_TYPING_STOPPED; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
461 | else if (purple_strequal(data->event_type, "message-received")) |
| 15884 | 462 | data->events |= PURPLE_POUNCE_MESSAGE_RECEIVED; |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
463 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
464 | g_free(data->event_type); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
465 | data->event_type = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
466 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
467 | else if (purple_strequal(element_name, "action")) { |
|
9598
952f38eaf13d
[gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents:
8549
diff
changeset
|
468 | if (data->pounce != NULL) { |
| 15884 | 469 | purple_pounce_action_register(data->pounce, data->action_name); |
| 470 | purple_pounce_action_set_enabled(data->pounce, data->action_name, TRUE); | |
|
9598
952f38eaf13d
[gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents:
8549
diff
changeset
|
471 | } |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
472 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
473 | g_free(data->action_name); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
474 | data->action_name = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
475 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
476 | else if (purple_strequal(element_name, "param")) { |
|
9598
952f38eaf13d
[gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents:
8549
diff
changeset
|
477 | if (data->pounce != NULL) { |
| 15884 | 478 | purple_pounce_action_set_attribute(data->pounce, data->action_name, |
|
9598
952f38eaf13d
[gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents:
8549
diff
changeset
|
479 | data->param_name, buffer); |
|
952f38eaf13d
[gaim-migrate @ 10441]
Mark Doliner <markdoliner@pidgin.im>
parents:
8549
diff
changeset
|
480 | } |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
481 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
482 | g_free(data->param_name); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
483 | data->param_name = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
484 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
485 | else if (purple_strequal(element_name, "events")) { |
| 15884 | 486 | PurpleAccount *account; |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
487 | |
| 15884 | 488 | account = purple_accounts_find(data->account_name, data->protocol_id); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
489 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
490 | g_free(data->account_name); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
491 | g_free(data->protocol_id); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
492 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
493 | data->account_name = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
494 | data->protocol_id = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
495 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
496 | if (account == NULL) { |
| 15884 | 497 | purple_debug(PURPLE_DEBUG_ERROR, "pounce", |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
498 | "Account for pounce not found!\n"); |
|
12002
4920ce1f4eac
[gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents:
11935
diff
changeset
|
499 | /* |
|
4920ce1f4eac
[gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents:
11935
diff
changeset
|
500 | * This pounce has effectively been removed, so make |
|
4920ce1f4eac
[gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents:
11935
diff
changeset
|
501 | * sure that we save the changes to pounces.xml |
|
4920ce1f4eac
[gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents:
11935
diff
changeset
|
502 | */ |
|
4920ce1f4eac
[gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents:
11935
diff
changeset
|
503 | schedule_pounces_save(); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
504 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
505 | else { |
| 15884 | 506 | purple_debug(PURPLE_DEBUG_INFO, "pounce", |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
507 | "Creating pounce: %s, %s\n", data->ui_name, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
508 | data->pouncee); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
509 | |
| 15884 | 510 | data->pounce = purple_pounce_new(data->ui_name, account, |
| 12694 | 511 | data->pouncee, data->events, |
| 512 | data->options); | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
513 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
514 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
515 | g_free(data->pouncee); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
516 | data->pouncee = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
517 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
518 | else if (purple_strequal(element_name, "save")) { |
|
12002
4920ce1f4eac
[gaim-migrate @ 14295]
Mark Doliner <markdoliner@pidgin.im>
parents:
11935
diff
changeset
|
519 | if (data->pounce != NULL) |
| 15884 | 520 | purple_pounce_set_save(data->pounce, TRUE); |
|
5878
8d6734d19691
[gaim-migrate @ 6310]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
521 | } |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
522 | else if (purple_strequal(element_name, "pounce")) { |
| 12694 | 523 | data->pounce = NULL; |
| 524 | data->events = 0; | |
| 525 | data->options = 0; | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
526 | |
|
13229
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
527 | g_free(data->ui_name); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
528 | g_free(data->pouncee); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
529 | g_free(data->protocol_id); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
530 | g_free(data->event_type); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
531 | g_free(data->option_type); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
532 | g_free(data->action_name); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
533 | g_free(data->param_name); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
534 | g_free(data->account_name); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
535 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
536 | data->ui_name = NULL; |
|
38880
dfe50a38fc52
Migrate pounces.xml to XDG data dir
qarkai <qarkai@gmail.com>
parents:
37071
diff
changeset
|
537 | data->pouncee = NULL; |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
538 | data->protocol_id = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
539 | data->event_type = NULL; |
| 12694 | 540 | data->option_type = NULL; |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
541 | data->action_name = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
542 | data->param_name = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
543 | data->account_name = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
544 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
545 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
546 | g_free(buffer); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
547 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
548 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
549 | static void |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
550 | text_handler(GMarkupParseContext *context, const gchar *text, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
551 | gsize text_len, gpointer user_data, GError **error) |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
552 | { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
553 | PounceParserData *data = user_data; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
554 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
555 | if (data->buffer == NULL) |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
556 | data->buffer = g_string_new_len(text, text_len); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
557 | else |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
558 | g_string_append_len(data->buffer, text, text_len); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
559 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
560 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
561 | static GMarkupParser pounces_parser = |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
562 | { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
563 | start_element_handler, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
564 | end_element_handler, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
565 | text_handler, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
566 | NULL, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
567 | NULL |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
568 | }; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
569 | |
|
33640
07553a1e0900
Move pounce loading into purple_pounces_init().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32623
diff
changeset
|
570 | static gboolean |
| 15884 | 571 | purple_pounces_load(void) |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
572 | { |
|
38900
6239177ce7ed
Treat pounces.xml as config part
qarkai <qarkai@gmail.com>
parents:
38880
diff
changeset
|
573 | gchar *filename = g_build_filename(purple_config_dir(), "pounces.xml", NULL); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
574 | gchar *contents = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
575 | gsize length; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
576 | GMarkupParseContext *context; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
577 | GError *error = NULL; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
578 | PounceParserData *parser_data; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
579 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
580 | if (filename == NULL) { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
581 | pounces_loaded = TRUE; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
582 | return FALSE; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
583 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
584 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
585 | if (!g_file_get_contents(filename, &contents, &length, &error)) { |
| 15884 | 586 | purple_debug(PURPLE_DEBUG_ERROR, "pounce", |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
587 | "Error reading pounces: %s\n", error->message); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
588 | |
| 5940 | 589 | g_free(filename); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
590 | g_error_free(error); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
591 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
592 | pounces_loaded = TRUE; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
593 | return FALSE; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
594 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
595 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
596 | parser_data = g_new0(PounceParserData, 1); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
597 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
598 | context = g_markup_parse_context_new(&pounces_parser, 0, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
599 | parser_data, free_parser_data); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
600 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
601 | if (!g_markup_parse_context_parse(context, contents, length, NULL)) { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
602 | g_markup_parse_context_free(context); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
603 | g_free(contents); |
| 5940 | 604 | g_free(filename); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
605 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
606 | pounces_loaded = TRUE; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
607 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
608 | return FALSE; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
609 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
610 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
611 | if (!g_markup_parse_context_end_parse(context, NULL)) { |
| 15884 | 612 | purple_debug(PURPLE_DEBUG_ERROR, "pounce", "Error parsing %s\n", |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
613 | filename); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
614 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
615 | g_markup_parse_context_free(context); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
616 | g_free(contents); |
| 5940 | 617 | g_free(filename); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
618 | pounces_loaded = TRUE; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
619 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
620 | return FALSE; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
621 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
622 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
623 | g_markup_parse_context_free(context); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
624 | g_free(contents); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
625 | g_free(filename); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
626 | |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
627 | pounces_loaded = TRUE; |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
628 | |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
629 | return TRUE; |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
630 | } |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
631 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
632 | |
| 15884 | 633 | PurplePounce * |
| 634 | purple_pounce_new(const char *ui_type, PurpleAccount *pouncer, | |
| 635 | const char *pouncee, PurplePounceEvent event, | |
| 636 | PurplePounceOption option) | |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
637 | { |
| 15884 | 638 | PurplePounce *pounce; |
| 639 | PurplePounceHandler *handler; | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
640 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
641 | g_return_val_if_fail(ui_type != NULL, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
642 | g_return_val_if_fail(pouncer != NULL, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
643 | g_return_val_if_fail(pouncee != NULL, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
644 | g_return_val_if_fail(event != 0, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
645 | |
| 15884 | 646 | pounce = g_new0(PurplePounce, 1); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
647 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
648 | pounce->ui_type = g_strdup(ui_type); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
649 | pounce->pouncer = pouncer; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
650 | pounce->pouncee = g_strdup(pouncee); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
651 | pounce->events = event; |
| 12694 | 652 | pounce->options = option; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
653 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
654 | pounce->actions = g_hash_table_new_full(g_str_hash, g_str_equal, |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
655 | g_free, free_action_data); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
656 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
657 | handler = g_hash_table_lookup(pounce_handlers, pounce->ui_type); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
658 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
659 | if (handler != NULL && handler->new_pounce != NULL) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
660 | handler->new_pounce(pounce); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
661 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
662 | pounces = g_list_append(pounces, pounce); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
663 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
664 | schedule_pounces_save(); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
665 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
666 | return pounce; |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
667 | } |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
668 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
669 | void |
| 15884 | 670 | purple_pounce_destroy(PurplePounce *pounce) |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
671 | { |
| 15884 | 672 | PurplePounceHandler *handler; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
673 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
674 | g_return_if_fail(pounce != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
675 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
676 | handler = g_hash_table_lookup(pounce_handlers, pounce->ui_type); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
677 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
678 | pounces = g_list_remove(pounces, pounce); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
679 | |
|
13229
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
680 | g_free(pounce->ui_type); |
|
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
681 | g_free(pounce->pouncee); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
682 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
683 | g_hash_table_destroy(pounce->actions); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
684 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
685 | if (handler != NULL && handler->free_pounce != NULL) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
686 | handler->free_pounce(pounce); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
687 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
688 | g_free(pounce); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
689 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
690 | schedule_pounces_save(); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
691 | } |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
692 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
693 | void |
| 15884 | 694 | purple_pounce_destroy_all_by_account(PurpleAccount *account) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
695 | { |
| 15884 | 696 | PurpleAccount *pouncer; |
| 697 | PurplePounce *pounce; | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
698 | GList *l, *l_next; |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
699 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
700 | g_return_if_fail(account != NULL); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
701 | |
| 15884 | 702 | for (l = purple_pounces_get_all(); l != NULL; l = l_next) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
703 | { |
| 15884 | 704 | pounce = (PurplePounce *)l->data; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
705 | l_next = l->next; |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
706 | |
| 15884 | 707 | pouncer = purple_pounce_get_pouncer(pounce); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
708 | if (pouncer == account) |
| 15884 | 709 | purple_pounce_destroy(pounce); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
710 | } |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
711 | } |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
712 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
713 | void |
|
31655
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
714 | purple_pounce_destroy_all_by_buddy(PurpleBuddy *buddy) |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
715 | { |
|
31656
0a950c84d9a6
Tweak kartikmohta's patch a bit to use accessors instead of directly accessing
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
31655
diff
changeset
|
716 | const char *pouncee, *bname; |
|
0a950c84d9a6
Tweak kartikmohta's patch a bit to use accessors instead of directly accessing
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
31655
diff
changeset
|
717 | PurpleAccount *pouncer, *bacct; |
|
31655
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
718 | PurplePounce *pounce; |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
719 | GList *l, *l_next; |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
720 | |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
721 | g_return_if_fail(buddy != NULL); |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
722 | |
|
31656
0a950c84d9a6
Tweak kartikmohta's patch a bit to use accessors instead of directly accessing
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
31655
diff
changeset
|
723 | bacct = purple_buddy_get_account(buddy); |
|
0a950c84d9a6
Tweak kartikmohta's patch a bit to use accessors instead of directly accessing
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
31655
diff
changeset
|
724 | bname = purple_buddy_get_name(buddy); |
|
0a950c84d9a6
Tweak kartikmohta's patch a bit to use accessors instead of directly accessing
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
31655
diff
changeset
|
725 | |
|
31655
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
726 | for (l = purple_pounces_get_all(); l != NULL; l = l_next) { |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
727 | pounce = (PurplePounce *)l->data; |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
728 | l_next = l->next; |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
729 | |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
730 | pouncer = purple_pounce_get_pouncer(pounce); |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
731 | pouncee = purple_pounce_get_pouncee(pounce); |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
732 | |
|
38259
c593fc9f5438
Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents:
33794
diff
changeset
|
733 | if ( (pouncer == bacct) && (purple_strequal(pouncee, bname)) ) |
|
31655
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
734 | purple_pounce_destroy(pounce); |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
735 | } |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
736 | } |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
737 | |
|
23ee3cdf91f2
Delete buddy pounces when removing a buddy. Fixes #1131.
Kartik Mohta <kartikmohta@gmail.com>
parents:
28177
diff
changeset
|
738 | void |
| 15884 | 739 | purple_pounce_set_events(PurplePounce *pounce, PurplePounceEvent events) |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
740 | { |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
741 | g_return_if_fail(pounce != NULL); |
| 15884 | 742 | g_return_if_fail(events != PURPLE_POUNCE_NONE); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
743 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
744 | pounce->events = events; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
745 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
746 | schedule_pounces_save(); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
747 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
748 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
749 | void |
| 15884 | 750 | purple_pounce_set_options(PurplePounce *pounce, PurplePounceOption options) |
| 12694 | 751 | { |
| 752 | g_return_if_fail(pounce != NULL); | |
| 753 | ||
| 754 | pounce->options = options; | |
| 755 | ||
| 756 | schedule_pounces_save(); | |
| 757 | } | |
| 758 | ||
| 759 | void | |
| 15884 | 760 | purple_pounce_set_pouncer(PurplePounce *pounce, PurpleAccount *pouncer) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
761 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
762 | g_return_if_fail(pounce != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
763 | g_return_if_fail(pouncer != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
764 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
765 | pounce->pouncer = pouncer; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
766 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
767 | schedule_pounces_save(); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
768 | } |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
769 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
770 | void |
| 15884 | 771 | purple_pounce_set_pouncee(PurplePounce *pounce, const char *pouncee) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
772 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
773 | g_return_if_fail(pounce != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
774 | g_return_if_fail(pouncee != NULL); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
775 | |
|
13229
d5c9c7394e02
[gaim-migrate @ 15593]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12694
diff
changeset
|
776 | g_free(pounce->pouncee); |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
777 | pounce->pouncee = g_strdup(pouncee); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
778 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
779 | schedule_pounces_save(); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
780 | } |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
781 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
782 | void |
| 15884 | 783 | purple_pounce_set_save(PurplePounce *pounce, gboolean save) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
784 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
785 | g_return_if_fail(pounce != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
786 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
787 | pounce->save = save; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
788 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
789 | schedule_pounces_save(); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
790 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
791 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
792 | void |
| 15884 | 793 | purple_pounce_action_register(PurplePounce *pounce, const char *name) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
794 | { |
| 15884 | 795 | PurplePounceActionData *action_data; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
796 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
797 | g_return_if_fail(pounce != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
798 | g_return_if_fail(name != NULL); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
799 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
800 | if (g_hash_table_lookup(pounce->actions, name) != NULL) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
801 | return; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
802 | |
| 15884 | 803 | action_data = g_new0(PurplePounceActionData, 1); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
804 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
805 | action_data->name = g_strdup(name); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
806 | action_data->enabled = FALSE; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
807 | action_data->atts = g_hash_table_new_full(g_str_hash, g_str_equal, |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
808 | g_free, g_free); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
809 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
810 | g_hash_table_insert(pounce->actions, g_strdup(name), action_data); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
811 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
812 | schedule_pounces_save(); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
813 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
814 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
815 | void |
| 15884 | 816 | purple_pounce_action_set_enabled(PurplePounce *pounce, const char *action, |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
817 | gboolean enabled) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
818 | { |
| 15884 | 819 | PurplePounceActionData *action_data; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
820 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
821 | g_return_if_fail(pounce != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
822 | g_return_if_fail(action != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
823 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
824 | action_data = find_action_data(pounce, action); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
825 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
826 | g_return_if_fail(action_data != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
827 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
828 | action_data->enabled = enabled; |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
829 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
830 | schedule_pounces_save(); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
831 | } |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
832 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
833 | void |
| 15884 | 834 | purple_pounce_action_set_attribute(PurplePounce *pounce, const char *action, |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
835 | const char *attr, const char *value) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
836 | { |
| 15884 | 837 | PurplePounceActionData *action_data; |
|
5878
8d6734d19691
[gaim-migrate @ 6310]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
838 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
839 | g_return_if_fail(pounce != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
840 | g_return_if_fail(action != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
841 | g_return_if_fail(attr != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
842 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
843 | action_data = find_action_data(pounce, action); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
844 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
845 | g_return_if_fail(action_data != NULL); |
|
5878
8d6734d19691
[gaim-migrate @ 6310]
Christian Hammond <chipx86@chipx86.com>
parents:
5875
diff
changeset
|
846 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
847 | if (value == NULL) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
848 | g_hash_table_remove(action_data->atts, attr); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
849 | else |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
850 | g_hash_table_insert(action_data->atts, g_strdup(attr), |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
851 | g_strdup(value)); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
852 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
853 | schedule_pounces_save(); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
854 | } |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
855 | |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
856 | void |
| 15884 | 857 | purple_pounce_set_data(PurplePounce *pounce, void *data) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
858 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
859 | g_return_if_fail(pounce != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
860 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
861 | pounce->data = data; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
862 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
863 | schedule_pounces_save(); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
864 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
865 | |
| 15884 | 866 | PurplePounceEvent |
| 867 | purple_pounce_get_events(const PurplePounce *pounce) | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
868 | { |
| 15884 | 869 | g_return_val_if_fail(pounce != NULL, PURPLE_POUNCE_NONE); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
870 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
871 | return pounce->events; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
872 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
873 | |
| 15884 | 874 | PurplePounceOption |
| 875 | purple_pounce_get_options(const PurplePounce *pounce) | |
| 12694 | 876 | { |
| 15884 | 877 | g_return_val_if_fail(pounce != NULL, PURPLE_POUNCE_OPTION_NONE); |
| 12694 | 878 | |
| 879 | return pounce->options; | |
| 880 | } | |
| 881 | ||
| 15884 | 882 | PurpleAccount * |
| 883 | purple_pounce_get_pouncer(const PurplePounce *pounce) | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
884 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
885 | g_return_val_if_fail(pounce != NULL, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
886 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
887 | return pounce->pouncer; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
888 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
889 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
890 | const char * |
| 15884 | 891 | purple_pounce_get_pouncee(const PurplePounce *pounce) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
892 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
893 | g_return_val_if_fail(pounce != NULL, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
894 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
895 | return pounce->pouncee; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
896 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
897 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
898 | gboolean |
| 15884 | 899 | purple_pounce_get_save(const PurplePounce *pounce) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
900 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
901 | g_return_val_if_fail(pounce != NULL, FALSE); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
902 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
903 | return pounce->save; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
904 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
905 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
906 | gboolean |
| 15884 | 907 | purple_pounce_action_is_enabled(const PurplePounce *pounce, const char *action) |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
908 | { |
| 15884 | 909 | PurplePounceActionData *action_data; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
910 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
911 | g_return_val_if_fail(pounce != NULL, FALSE); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
912 | g_return_val_if_fail(action != NULL, FALSE); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
913 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
914 | action_data = find_action_data(pounce, action); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
915 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
916 | g_return_val_if_fail(action_data != NULL, FALSE); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
917 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
918 | return action_data->enabled; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
919 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
920 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
921 | const char * |
| 15884 | 922 | purple_pounce_action_get_attribute(const PurplePounce *pounce, |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
923 | const char *action, const char *attr) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
924 | { |
| 15884 | 925 | PurplePounceActionData *action_data; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
926 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
927 | g_return_val_if_fail(pounce != NULL, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
928 | g_return_val_if_fail(action != NULL, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
929 | g_return_val_if_fail(attr != NULL, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
930 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
931 | action_data = find_action_data(pounce, action); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
932 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
933 | g_return_val_if_fail(action_data != NULL, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
934 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
935 | return g_hash_table_lookup(action_data->atts, attr); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
936 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
937 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
938 | void * |
| 15884 | 939 | purple_pounce_get_data(const PurplePounce *pounce) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
940 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
941 | g_return_val_if_fail(pounce != NULL, NULL); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
942 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
943 | return pounce->data; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
944 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
945 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
946 | void |
| 15884 | 947 | purple_pounce_execute(const PurpleAccount *pouncer, const char *pouncee, |
| 948 | PurplePounceEvent events) | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
949 | { |
| 15884 | 950 | PurplePounce *pounce; |
| 951 | PurplePounceHandler *handler; | |
| 952 | PurplePresence *presence; | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
953 | GList *l, *l_next; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
954 | char *norm_pouncee; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
955 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
956 | g_return_if_fail(pouncer != NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
957 | g_return_if_fail(pouncee != NULL); |
| 15884 | 958 | g_return_if_fail(events != PURPLE_POUNCE_NONE); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
959 | |
| 15884 | 960 | norm_pouncee = g_strdup(purple_normalize(pouncer, pouncee)); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
961 | |
| 15884 | 962 | for (l = purple_pounces_get_all(); l != NULL; l = l_next) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
963 | { |
| 15884 | 964 | pounce = (PurplePounce *)l->data; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
965 | l_next = l->next; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
966 | |
| 15884 | 967 | presence = purple_account_get_presence(pouncer); |
| 12694 | 968 | |
| 15884 | 969 | if ((purple_pounce_get_events(pounce) & events) && |
| 970 | (purple_pounce_get_pouncer(pounce) == pouncer) && | |
| 971 | !purple_utf8_strcasecmp(purple_normalize(pouncer, purple_pounce_get_pouncee(pounce)), | |
| 12694 | 972 | norm_pouncee) && |
| 15884 | 973 | (pounce->options == PURPLE_POUNCE_OPTION_NONE || |
| 974 | (pounce->options & PURPLE_POUNCE_OPTION_AWAY && | |
| 975 | !purple_presence_is_available(presence)))) | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
976 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
977 | handler = g_hash_table_lookup(pounce_handlers, pounce->ui_type); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
978 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
979 | if (handler != NULL && handler->cb != NULL) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
980 | { |
| 15884 | 981 | handler->cb(pounce, events, purple_pounce_get_data(pounce)); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
982 | |
| 15884 | 983 | if (!purple_pounce_get_save(pounce)) |
| 984 | purple_pounce_destroy(pounce); | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
985 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
986 | } |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
987 | } |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
988 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
989 | g_free(norm_pouncee); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
990 | } |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
991 | |
| 15884 | 992 | PurplePounce * |
| 993 | purple_find_pounce(const PurpleAccount *pouncer, const char *pouncee, | |
| 994 | PurplePounceEvent events) | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
995 | { |
| 15884 | 996 | PurplePounce *pounce = NULL; |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
997 | GList *l; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
998 | char *norm_pouncee; |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
999 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1000 | g_return_val_if_fail(pouncer != NULL, NULL); |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1001 | g_return_val_if_fail(pouncee != NULL, NULL); |
| 15884 | 1002 | g_return_val_if_fail(events != PURPLE_POUNCE_NONE, NULL); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
1003 | |
| 15884 | 1004 | norm_pouncee = g_strdup(purple_normalize(pouncer, pouncee)); |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
1005 | |
| 15884 | 1006 | for (l = purple_pounces_get_all(); l != NULL; l = l->next) |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1007 | { |
| 15884 | 1008 | pounce = (PurplePounce *)l->data; |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
1009 | |
| 15884 | 1010 | if ((purple_pounce_get_events(pounce) & events) && |
| 1011 | (purple_pounce_get_pouncer(pounce) == pouncer) && | |
| 1012 | !purple_utf8_strcasecmp(purple_normalize(pouncer, purple_pounce_get_pouncee(pounce)), | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1013 | norm_pouncee)) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1014 | { |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1015 | break; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1016 | } |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1017 | |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1018 | pounce = NULL; |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
1019 | } |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
1020 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1021 | g_free(norm_pouncee); |
|
10399
67995cae36c0
[gaim-migrate @ 11630]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9598
diff
changeset
|
1022 | |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1023 | return pounce; |
|
5866
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
1024 | } |
|
5caedbcd1bb7
[gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents:
5864
diff
changeset
|
1025 | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1026 | void |
| 15884 | 1027 | purple_pounces_register_handler(const char *ui, PurplePounceCb cb, |
| 1028 | void (*new_pounce)(PurplePounce *pounce), | |
| 1029 | void (*free_pounce)(PurplePounce *pounce)) | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1030 | { |
| 15884 | 1031 | PurplePounceHandler *handler; |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1032 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1033 | g_return_if_fail(ui != NULL); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1034 | g_return_if_fail(cb != NULL); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1035 | |
| 15884 | 1036 | handler = g_new0(PurplePounceHandler, 1); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1037 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1038 | handler->ui = g_strdup(ui); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1039 | handler->cb = cb; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1040 | handler->new_pounce = new_pounce; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1041 | handler->free_pounce = free_pounce; |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1042 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1043 | g_hash_table_insert(pounce_handlers, g_strdup(ui), handler); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1044 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1045 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1046 | void |
| 15884 | 1047 | purple_pounces_unregister_handler(const char *ui) |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1048 | { |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1049 | g_return_if_fail(ui != NULL); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1050 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1051 | g_hash_table_remove(pounce_handlers, ui); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1052 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1053 | |
|
5032
2276c67b0243
[gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
4793
diff
changeset
|
1054 | GList * |
| 15884 | 1055 | purple_pounces_get_all(void) |
|
5032
2276c67b0243
[gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
4793
diff
changeset
|
1056 | { |
|
2276c67b0243
[gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
4793
diff
changeset
|
1057 | return pounces; |
|
2276c67b0243
[gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents:
4793
diff
changeset
|
1058 | } |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1059 | |
|
18209
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1060 | GList *purple_pounces_get_all_for_ui(const char *ui) |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1061 | { |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1062 | GList *list = NULL, *iter; |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1063 | g_return_val_if_fail(ui != NULL, NULL); |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1064 | |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1065 | for (iter = pounces; iter; iter = iter->next) { |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1066 | PurplePounce *pounce = iter->data; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
1067 | if (purple_strequal(pounce->ui_type, ui)) |
|
18209
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1068 | list = g_list_prepend(list, pounce); |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1069 | } |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1070 | list = g_list_reverse(list); |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1071 | return list; |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1072 | } |
|
5f63822878eb
Fix #1574. (Pidgin and Finch show each other's pounces, interact in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18068
diff
changeset
|
1073 | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1074 | static void |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1075 | free_pounce_handler(gpointer user_data) |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1076 | { |
| 15884 | 1077 | PurplePounceHandler *handler = (PurplePounceHandler *)user_data; |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1078 | |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1079 | g_free(handler->ui); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1080 | g_free(handler); |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1081 | } |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1082 | |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1083 | static void |
| 15884 | 1084 | buddy_state_cb(PurpleBuddy *buddy, PurplePounceEvent event) |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1085 | { |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1086 | PurpleAccount *account = purple_buddy_get_account(buddy); |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1087 | const gchar *name = purple_buddy_get_name(buddy); |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1088 | |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1089 | purple_pounce_execute(account, name, event); |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1090 | } |
|
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1091 | |
|
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1092 | static void |
| 15884 | 1093 | buddy_status_changed_cb(PurpleBuddy *buddy, PurpleStatus *old_status, |
| 1094 | PurpleStatus *status) | |
| 11935 | 1095 | { |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1096 | PurpleAccount *account = purple_buddy_get_account(buddy); |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1097 | const gchar *name = purple_buddy_get_name(buddy); |
| 11935 | 1098 | gboolean old_available, available; |
| 1099 | ||
| 15884 | 1100 | available = purple_status_is_available(status); |
| 1101 | old_available = purple_status_is_available(old_status); | |
| 11935 | 1102 | |
| 1103 | if (available && !old_available) | |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1104 | purple_pounce_execute(account, name, PURPLE_POUNCE_AWAY_RETURN); |
| 11935 | 1105 | else if (!available && old_available) |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1106 | purple_pounce_execute(account, name, PURPLE_POUNCE_AWAY); |
| 11935 | 1107 | } |
| 1108 | ||
| 1109 | static void | |
| 15884 | 1110 | buddy_idle_changed_cb(PurpleBuddy *buddy, gboolean old_idle, gboolean idle) |
| 11935 | 1111 | { |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1112 | PurpleAccount *account = purple_buddy_get_account(buddy); |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1113 | const gchar *name = purple_buddy_get_name(buddy); |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1114 | |
| 11935 | 1115 | if (idle && !old_idle) |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1116 | purple_pounce_execute(account, name, PURPLE_POUNCE_IDLE); |
| 11935 | 1117 | else if (!idle && old_idle) |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
21908
diff
changeset
|
1118 | purple_pounce_execute(account, name, PURPLE_POUNCE_IDLE_RETURN); |
| 11935 | 1119 | } |
| 1120 | ||
| 1121 | static void | |
| 15884 | 1122 | buddy_typing_cb(PurpleAccount *account, const char *name, void *data) |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1123 | { |
|
34656
adbcbe04077c
Refactored remaining libpurple to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents:
34625
diff
changeset
|
1124 | PurpleIMConversation *im; |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1125 | |
|
34656
adbcbe04077c
Refactored remaining libpurple to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents:
34625
diff
changeset
|
1126 | im = purple_conversations_find_im_with_account(name, account); |
|
adbcbe04077c
Refactored remaining libpurple to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents:
34625
diff
changeset
|
1127 | if (im != NULL) |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1128 | { |
|
34670
9bd5bd903dc7
Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents:
34656
diff
changeset
|
1129 | PurpleIMTypingState state; |
| 15884 | 1130 | PurplePounceEvent event; |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1131 | |
|
34656
adbcbe04077c
Refactored remaining libpurple to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents:
34625
diff
changeset
|
1132 | state = purple_im_conversation_get_typing_state(im); |
|
34670
9bd5bd903dc7
Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents:
34656
diff
changeset
|
1133 | if (state == PURPLE_IM_TYPED) |
| 15884 | 1134 | event = PURPLE_POUNCE_TYPED; |
|
34670
9bd5bd903dc7
Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents:
34656
diff
changeset
|
1135 | else if (state == PURPLE_IM_NOT_TYPING) |
| 15884 | 1136 | event = PURPLE_POUNCE_TYPING_STOPPED; |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13229
diff
changeset
|
1137 | else |
| 15884 | 1138 | event = PURPLE_POUNCE_TYPING; |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1139 | |
| 15884 | 1140 | purple_pounce_execute(account, name, event); |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1141 | } |
|
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1142 | } |
|
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1143 | |
| 12694 | 1144 | static void |
| 15884 | 1145 | received_message_cb(PurpleAccount *account, const char *name, void *data) |
| 12694 | 1146 | { |
| 15884 | 1147 | purple_pounce_execute(account, name, PURPLE_POUNCE_MESSAGE_RECEIVED); |
| 12694 | 1148 | } |
| 1149 | ||
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1150 | void * |
| 15884 | 1151 | purple_pounces_get_handle(void) |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1152 | { |
|
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1153 | static int pounce_handle; |
|
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1154 | |
|
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1155 | return &pounce_handle; |
|
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1156 | } |
|
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1157 | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1158 | void |
| 15884 | 1159 | purple_pounces_init(void) |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1160 | { |
| 15884 | 1161 | void *handle = purple_pounces_get_handle(); |
| 1162 | void *blist_handle = purple_blist_get_handle(); | |
| 1163 | void *conv_handle = purple_conversations_get_handle(); | |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1164 | |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1165 | pounce_handlers = g_hash_table_new_full(g_str_hash, g_str_equal, |
|
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1166 | g_free, free_pounce_handler); |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1167 | |
| 15884 | 1168 | purple_signal_connect(blist_handle, "buddy-idle-changed", |
| 1169 | handle, PURPLE_CALLBACK(buddy_idle_changed_cb), NULL); | |
| 1170 | purple_signal_connect(blist_handle, "buddy-status-changed", | |
| 1171 | handle, PURPLE_CALLBACK(buddy_status_changed_cb), NULL); | |
| 1172 | purple_signal_connect(blist_handle, "buddy-signed-on", | |
| 1173 | handle, PURPLE_CALLBACK(buddy_state_cb), | |
| 1174 | GINT_TO_POINTER(PURPLE_POUNCE_SIGNON)); | |
| 1175 | purple_signal_connect(blist_handle, "buddy-signed-off", | |
| 1176 | handle, PURPLE_CALLBACK(buddy_state_cb), | |
| 1177 | GINT_TO_POINTER(PURPLE_POUNCE_SIGNOFF)); | |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1178 | |
| 15884 | 1179 | purple_signal_connect(conv_handle, "buddy-typing", |
| 1180 | handle, PURPLE_CALLBACK(buddy_typing_cb), NULL); | |
| 1181 | purple_signal_connect(conv_handle, "buddy-typed", | |
| 1182 | handle, PURPLE_CALLBACK(buddy_typing_cb), NULL); | |
| 1183 | purple_signal_connect(conv_handle, "buddy-typing-stopped", | |
| 1184 | handle, PURPLE_CALLBACK(buddy_typing_cb), NULL); | |
| 12694 | 1185 | |
| 15884 | 1186 | purple_signal_connect(conv_handle, "received-im-msg", |
| 1187 | handle, PURPLE_CALLBACK(received_message_cb), NULL); | |
|
33640
07553a1e0900
Move pounce loading into purple_pounces_init().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32623
diff
changeset
|
1188 | |
|
07553a1e0900
Move pounce loading into purple_pounces_init().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32623
diff
changeset
|
1189 | purple_pounces_load(); |
|
5875
493a921c0378
[gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1190 | } |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1191 | |
|
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1192 | void |
| 15884 | 1193 | purple_pounces_uninit() |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1194 | { |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1195 | if (save_timer != 0) |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1196 | { |
|
38433
361c801c4536
Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents:
38358
diff
changeset
|
1197 | g_source_remove(save_timer); |
|
10432
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1198 | save_timer = 0; |
|
da2df724be56
[gaim-migrate @ 11684]
Mark Doliner <markdoliner@pidgin.im>
parents:
10423
diff
changeset
|
1199 | sync_pounces(); |
| 8235 | 1200 | } |
| 1201 | ||
| 15884 | 1202 | purple_signals_disconnect_by_handle(purple_pounces_get_handle()); |
|
28177
e62fe687ca6c
Clean up various file-scoped globals at uninit.
Paul Aurich <darkrain42@pidgin.im>
parents:
25859
diff
changeset
|
1203 | |
|
e62fe687ca6c
Clean up various file-scoped globals at uninit.
Paul Aurich <darkrain42@pidgin.im>
parents:
25859
diff
changeset
|
1204 | g_hash_table_destroy(pounce_handlers); |
|
e62fe687ca6c
Clean up various file-scoped globals at uninit.
Paul Aurich <darkrain42@pidgin.im>
parents:
25859
diff
changeset
|
1205 | pounce_handlers = NULL; |
|
6837
7c0a9bac0f3f
[gaim-migrate @ 7382]
Christian Hammond <chipx86@chipx86.com>
parents:
6719
diff
changeset
|
1206 | } |