libpurple/protocols/msn/dialog.c

Sun, 12 Aug 2007 18:44:58 +0000

author
Gabriel Schulhof <nix@go-nix.ca>
date
Sun, 12 Aug 2007 18:44:58 +0000
changeset 19263
16b92b240047
parent 16490
68c22924d66b
child 19997
24bc4ea43075
permissions
-rw-r--r--

Added hints to msn dialog.c

10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
1 /**
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
2 * @file dialog.c Dialog functions
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4 * purple
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
5 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
8 * source distribution.
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
9 *
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
13 * (at your option) any later version.
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
14 *
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
18 * GNU General Public License for more details.
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
19 *
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
21 * along with this program; if not, write to the Free Software
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
23 */
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
24
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
25 #include "msn.h"
12324
caf9784f2405 [gaim-migrate @ 14628]
Richard Laager <rlaager@pidgin.im>
parents: 12323
diff changeset
26 #include "dialog.h"
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
27
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
28 typedef struct
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
29 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
30 PurpleConnection *gc;
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
31 char *who;
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
32 char *group;
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
33 gboolean add;
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
34
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
35 } MsnAddRemData;
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
36
13967
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
37 /* Remove the buddy referenced by the MsnAddRemData before the serverside list is changed.
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
38 * If the buddy will be added, he'll be added back; if he will be removed, he won't be. */
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
39 static void
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
40 msn_complete_sync_issue(MsnAddRemData *data)
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
41 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
42 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
43 PurpleGroup *group = NULL;
13967
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
44
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
45 if (data->group != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
46 group = purple_find_group(data->group);
13967
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
47
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
48 if (group != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
49 buddy = purple_find_buddy_in_group(purple_connection_get_account(data->gc), data->who, group);
13967
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
50 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
51 buddy = purple_find_buddy(purple_connection_get_account(data->gc), data->who);
13967
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
52
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
53 if (buddy != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
54 purple_blist_remove_buddy(buddy);
13967
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
55 }
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
56
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
57 static void
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
58 msn_add_cb(MsnAddRemData *data)
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
59 {
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
60 MsnSession *session;
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
61 MsnUserList *userlist;
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
62
13967
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
63 msn_complete_sync_issue(data);
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
64
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
65 session = data->gc->proto_data;
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
66 userlist = session->userlist;
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
67
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
68 msn_userlist_add_buddy(userlist, data->who, MSN_LIST_FL, data->group);
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
69
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
70 g_free(data->group);
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
71 g_free(data->who);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
72 g_free(data);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
73 }
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
74
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
75 static void
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
76 msn_rem_cb(MsnAddRemData *data)
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
77 {
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
78 MsnSession *session;
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
79 MsnUserList *userlist;
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
80
13967
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
81 msn_complete_sync_issue(data);
33f2dfa5e430 [gaim-migrate @ 16394]
Evan Schoenberg <evands@pidgin.im>
parents: 12324
diff changeset
82
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
83 session = data->gc->proto_data;
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
84 userlist = session->userlist;
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
85
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
86 msn_userlist_rem_buddy(userlist, data->who, MSN_LIST_FL, data->group);
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
87
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 13967
diff changeset
88 g_free(data->group);
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
89 g_free(data->who);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
90 g_free(data);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
91 }
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
92
12324
caf9784f2405 [gaim-migrate @ 14628]
Richard Laager <rlaager@pidgin.im>
parents: 12323
diff changeset
93 void
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
94 msn_show_sync_issue(MsnSession *session, const char *passport,
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
95 const char *group_name)
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
96 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
97 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
98 PurpleAccount *account;
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
99 MsnAddRemData *data;
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
100 char *msg, *reason;
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
101
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
102 account = session->account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
103 gc = purple_account_get_connection(account);
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
104
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
105 data = g_new0(MsnAddRemData, 1);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
106 data->who = g_strdup(passport);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
107 data->group = g_strdup(group_name);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
108 data->gc = gc;
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
109
10310
9f797642432a [gaim-migrate @ 11504]
Mark Doliner <markdoliner@pidgin.im>
parents: 10116
diff changeset
110 msg = g_strdup_printf(_("Buddy list synchronization issue in %s (%s)"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
111 purple_account_get_username(account),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
112 purple_account_get_protocol_name(account));
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
113
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
114 if (group_name != NULL)
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
115 {
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
116 reason = g_strdup_printf(_("%s on the local list is "
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
117 "inside the group \"%s\" but not on "
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
118 "the server list. "
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
119 "Do you want this buddy to be added?"),
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
120 passport, group_name);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
121 }
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
122 else
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
123 {
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
124 reason = g_strdup_printf(_("%s is on the local list but "
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
125 "not on the server list. "
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
126 "Do you want this buddy to be added?"),
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
127 passport);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
128 }
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
129
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
130 purple_request_action(gc, NULL, msg, reason, PURPLE_DEFAULT_ACTION_NONE,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
131 purple_connection_get_account(gc), data->who, NULL,
19263
16b92b240047 Added hints to msn dialog.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 16490
diff changeset
132 "blist", data, 2,
10044
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
133 _("Yes"), G_CALLBACK(msn_add_cb),
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
134 _("No"), G_CALLBACK(msn_rem_cb));
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
135
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
136 g_free(reason);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
137 g_free(msg);
884c09b189e6 [gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
138 }

mercurial