Mercurial > pidgin.yaz
annotate src/multi.c @ 5234:890b29f00b68
[gaim-migrate @ 5604]
Chats in the buddy list!
You can now put chat rooms in your buddy list, and double-click them to join
them, instead of having to do all that typing. I'm eventually gonna add
auto-join support, so that ugly hack involving pouncing can go away.
Someone should make some new artwork so we don't have 2 + icons next to
each other in the menus.
This also has some fixes to let gaim compile again, after the renaming of
the buddy list files.
This also fixes the problem with offline buddies not showing up in the list
sometimes for accounts that didn't log in at startup.
This probably fixes other stuff, but I can't remember any of it off the top
of my head.
I'm going to stop typing and let people play with this now.
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Sat, 26 Apr 2003 20:30:43 +0000 |
parents | 1a53330dfd34 |
children | 1f901484599d |
rev | line source |
---|---|
960 | 1 /* |
2 * gaim | |
3 * | |
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
5 * | |
6 * This program is free software; you can redistribute it and/or modify | |
7 * it under the terms of the GNU General Public License as published by | |
8 * the Free Software Foundation; either version 2 of the License, or | |
9 * (at your option) any later version. | |
10 * | |
11 * This program is distributed in the hope that it will be useful, | |
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 * GNU General Public License for more details. | |
15 * | |
16 * You should have received a copy of the GNU General Public License | |
17 * along with this program; if not, write to the Free Software | |
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
19 * | |
20 */ | |
21 | |
4634 | 22 #include <stdlib.h> |
2100
a93aeb6f813d
[gaim-migrate @ 2110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2086
diff
changeset
|
23 #include <string.h> |
3067 | 24 #include <ctype.h> |
960 | 25 #include <gtk/gtk.h> |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
26 #include "prpl.h" |
960 | 27 #include "multi.h" |
28 #include "gaim.h" | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
29 #include "conversation.h" |
5228
1a53330dfd34
[gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
30 #include "gtkblist.h" |
4962 | 31 #include "gaim-disclosure.h" |
960 | 32 |
4493
61ba567f9c64
[gaim-migrate @ 4768]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4491
diff
changeset
|
33 #ifdef _WIN32 |
61ba567f9c64
[gaim-migrate @ 4768]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4491
diff
changeset
|
34 #include "win32dep.h" |
61ba567f9c64
[gaim-migrate @ 4768]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4491
diff
changeset
|
35 #endif |
61ba567f9c64
[gaim-migrate @ 4768]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4491
diff
changeset
|
36 |
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
37 #define LOGIN_STEPS 5 |
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
38 |
960 | 39 GSList *connections; |
3517 | 40 int connecting_count = 0; |
960 | 41 |
42 static GtkWidget *acctedit = NULL; | |
3754 | 43 static GtkWidget *treeview = NULL; /* the treeview of names in the accteditor */ |
44 static GtkListStore *model = NULL; | |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
45 |
4491 | 46 static GSList *mod_accounts = NULL; |
960 | 47 |
3754 | 48 enum |
49 { | |
50 COLUMN_SCREENNAME, | |
51 COLUMN_ONLINE, | |
52 COLUMN_AUTOLOGIN, | |
53 COLUMN_PROTOCOL, | |
54 COLUMN_DATA, | |
55 NUM_COLUMNS | |
56 }; | |
57 | |
4491 | 58 struct mod_account { |
59 struct gaim_account *account; | |
60 | |
61 /* these are temporary */ | |
4966 | 62 char username[64]; |
63 char show[400]; | |
64 char password[32]; | |
4491 | 65 int options; |
66 int protocol; | |
67 char proto_opt[7][256]; | |
68 | |
69 /* stuff for modify window */ | |
70 GtkWidget *mod; | |
71 GtkWidget *main; | |
4998 | 72 GtkWidget *disc_box; |
4491 | 73 GtkWidget *name; |
74 GtkWidget *alias; | |
75 GtkWidget *pwdbox; | |
76 GtkWidget *pass; | |
77 GtkWidget *rempass; | |
4966 | 78 GtkWidget *login_frame; |
4491 | 79 GtkWidget *user_frame; |
80 GtkWidget *proto_frame; | |
81 GtkSizeGroup *sg; | |
4966 | 82 GList *user_split_entries; |
4491 | 83 GList *opt_entries; |
84 | |
85 /* stuff for icon selection */ | |
86 char iconfile[256]; | |
87 GtkWidget *iconsel; | |
88 GtkWidget *iconentry; | |
89 GtkWidget *icondlg; | |
90 | |
91 /* stuff for mail check prompt */ | |
92 GtkWidget *checkmail; | |
93 | |
94 /* stuff for register with server */ | |
95 GtkWidget *register_user; | |
4634 | 96 |
97 /* stuff for proxy options */ | |
98 GtkWidget *proxy_frame; | |
99 GtkWidget *proxy_host_box; | |
100 GtkWidget *proxytype_menu; | |
101 GtkWidget *proxyhost_entry; | |
102 GtkWidget *proxyport_entry; | |
103 GtkWidget *proxyuser_entry; | |
104 GtkWidget *proxypass_entry; | |
4491 | 105 }; |
106 | |
107 | |
108 struct mod_account_opt { | |
109 struct mod_account *ma; | |
110 int opt; | |
111 }; | |
112 | |
3754 | 113 static void acct_signin(GtkCellRendererToggle *cell, gchar *path_str, |
114 gpointer d); | |
115 static void acct_autologin(GtkCellRendererToggle *cell, gchar *path_str, | |
116 gpointer d); | |
117 | |
4491 | 118 static struct mod_account *mod_account_find(struct gaim_account *a) |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
119 { |
4491 | 120 GSList *m = mod_accounts; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
121 while (m) { |
4491 | 122 struct mod_account *ma = m->data; |
123 if (ma->account == a) | |
124 return ma; | |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
125 m = m->next; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
126 } |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
127 return NULL; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
128 } |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
129 |
960 | 130 |
4491 | 131 struct gaim_connection *new_gaim_conn(struct gaim_account *account) |
960 | 132 { |
133 struct gaim_connection *gc = g_new0(struct gaim_connection, 1); | |
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1355
diff
changeset
|
134 gc->edittype = EDIT_GC; |
4491 | 135 gc->protocol = account->protocol; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
136 gc->prpl = gaim_find_prpl(account->protocol); |
4491 | 137 g_snprintf(gc->username, sizeof(gc->username), "%s", account->username); |
138 g_snprintf(gc->password, sizeof(gc->password), "%s", account->password); | |
1153
3063e6743913
[gaim-migrate @ 1163]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1124
diff
changeset
|
139 gc->keepalive = 0; |
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
140 gc->inpa = 0; |
998
70c685de2be5
[gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
993
diff
changeset
|
141 gc->buddy_chats = NULL; |
4111
ee884f1d7ae3
[gaim-migrate @ 4326]
Christian Hammond <chipx86@chipx86.com>
parents:
4082
diff
changeset
|
142 gc->away = NULL; |
ee884f1d7ae3
[gaim-migrate @ 4326]
Christian Hammond <chipx86@chipx86.com>
parents:
4082
diff
changeset
|
143 gc->away_state = NULL; |
960 | 144 |
145 connections = g_slist_append(connections, gc); | |
146 | |
4491 | 147 account->gc = gc; |
148 gc->account = account; | |
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
149 |
960 | 150 return gc; |
151 } | |
152 | |
3060 | 153 struct meter_window { |
154 GtkWidget *window; | |
155 GtkTable *table; | |
156 gint rows; | |
157 gint active_count; | |
158 } *meter_win = NULL; | |
159 | |
960 | 160 void destroy_gaim_conn(struct gaim_connection *gc) |
161 { | |
4785 | 162 GaimBlistNode *gnode,*bnode; |
1063
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
163 struct group *m; |
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
164 struct buddy *n; |
4785 | 165 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
166 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) | |
167 continue; | |
168 m = (struct group *)gnode; | |
169 for(bnode = gnode->child; bnode; bnode = bnode->next) { | |
5234 | 170 if(GAIM_BLIST_NODE_IS_BUDDY(bnode)) { |
171 n = (struct buddy *)bnode; | |
172 if(n->account == gc->account) { | |
173 n->present = GAIM_BUDDY_OFFLINE; | |
174 } | |
4349 | 175 } |
1063
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
176 } |
2597
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2568
diff
changeset
|
177 } |
4111
ee884f1d7ae3
[gaim-migrate @ 4326]
Christian Hammond <chipx86@chipx86.com>
parents:
4082
diff
changeset
|
178 g_free(gc->away); |
ee884f1d7ae3
[gaim-migrate @ 4326]
Christian Hammond <chipx86@chipx86.com>
parents:
4082
diff
changeset
|
179 g_free(gc->away_state); |
960 | 180 g_free(gc); |
3510 | 181 |
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
182 if (!connections && mainwindow) |
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
183 gtk_widget_show(mainwindow); |
960 | 184 } |
185 | |
4275 | 186 static void quit_acctedit(gpointer d) |
960 | 187 { |
188 if (acctedit) { | |
189 save_prefs(); | |
190 gtk_widget_destroy(acctedit); | |
4275 | 191 acctedit = NULL; |
960 | 192 } |
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
193 |
3754 | 194 treeview = NULL; |
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
195 |
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
196 if (!d && !GAIM_GTK_BLIST(gaim_get_blist())->window && |
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
197 !mainwindow && !connections) { |
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
198 |
4082 | 199 do_quit(); |
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
200 } |
960 | 201 } |
202 | |
4275 | 203 static void on_delete_acctedit(GtkWidget *w, GdkEvent *ev, gpointer d) |
960 | 204 { |
4275 | 205 quit_acctedit(d); |
206 } | |
207 | |
208 static void on_close_acctedit(GtkButton *button, gpointer d) | |
209 { | |
210 quit_acctedit(d); | |
960 | 211 } |
212 | |
213 static char *proto_name(int proto) | |
214 { | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
215 GaimPlugin *p = gaim_find_prpl(proto); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
216 if (p && p->info->name) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
217 return p->info->name; |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
218 else |
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
219 return "Unknown"; |
960 | 220 } |
221 | |
2204
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
222 void regenerate_user_list() |
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
223 { |
4491 | 224 GSList *accounts = gaim_accounts; |
225 struct gaim_account *a; | |
3754 | 226 GtkTreeIter iter; |
2204
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
227 |
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
228 if (!acctedit) |
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
229 return; |
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
230 |
3754 | 231 gtk_list_store_clear(model); |
2204
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
232 |
4491 | 233 while (accounts) { |
234 a = (struct gaim_account *)accounts->data; | |
3754 | 235 |
236 gtk_list_store_append(model, &iter); | |
237 gtk_list_store_set(model, &iter, | |
238 COLUMN_SCREENNAME, a->username, | |
239 COLUMN_ONLINE, (a->gc ? TRUE : FALSE), | |
4491 | 240 COLUMN_AUTOLOGIN, (a->options & OPT_ACCT_AUTO), |
3754 | 241 COLUMN_PROTOCOL, proto_name(a->protocol), |
242 COLUMN_DATA, a, | |
243 -1); | |
4491 | 244 accounts = accounts->next; |
2204
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
245 } |
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
246 } |
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
247 |
3754 | 248 static gboolean get_iter_from_data(GtkTreeView *treeview, |
4491 | 249 struct gaim_account *a, GtkTreeIter *iter) |
3754 | 250 { |
251 return gtk_tree_model_iter_nth_child(gtk_tree_view_get_model(treeview), | |
252 iter, NULL, | |
4491 | 253 g_slist_index(gaim_accounts, a)); |
3754 | 254 } |
255 | |
256 static void add_columns(GtkWidget *treeview) | |
257 { | |
258 GtkCellRenderer *renderer; | |
4635 | 259 /* GtkTreeViewColumn *column; */ |
3754 | 260 |
261 /* Screennames */ | |
262 renderer = gtk_cell_renderer_text_new(); | |
263 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview), | |
264 -1, _("Screenname"), | |
265 renderer, | |
266 "text", COLUMN_SCREENNAME, | |
267 NULL); | |
268 | |
269 /* Online? */ | |
270 renderer = gtk_cell_renderer_toggle_new(); | |
271 g_signal_connect(G_OBJECT(renderer), "toggled", | |
272 G_CALLBACK(acct_signin), model); | |
273 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview), | |
274 -1, _("Online"), | |
275 renderer, | |
276 "active", COLUMN_ONLINE, | |
277 NULL); | |
278 | |
279 /* Auto-login? */ | |
280 renderer = gtk_cell_renderer_toggle_new(); | |
281 g_signal_connect(G_OBJECT(renderer), "toggled", | |
282 G_CALLBACK(acct_autologin), model); | |
283 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview), | |
284 -1, _("Auto-login"), | |
285 renderer, | |
286 "active", COLUMN_AUTOLOGIN, | |
287 NULL); | |
288 | |
289 /* Protocol */ | |
290 renderer = gtk_cell_renderer_text_new(); | |
291 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview), | |
292 -1, _("Protocol"), | |
293 renderer, | |
294 "text", COLUMN_PROTOCOL, | |
295 NULL); | |
296 | |
297 /* Data */ | |
4630 | 298 /* |
3754 | 299 column = gtk_tree_view_column_new(); |
4630 | 300 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1); |
3754 | 301 gtk_tree_view_column_set_visible(column, FALSE); |
4630 | 302 */ |
3754 | 303 } |
304 | |
960 | 305 static GtkWidget *generate_list() |
306 { | |
307 GtkWidget *win; | |
308 | |
309 win = gtk_scrolled_window_new(0, 0); | |
3754 | 310 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(win), |
311 GTK_POLICY_AUTOMATIC, | |
312 GTK_POLICY_ALWAYS); | |
4550
972af41f277c
[gaim-migrate @ 4830]
Christian Hammond <chipx86@chipx86.com>
parents:
4493
diff
changeset
|
313 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(win), |
972af41f277c
[gaim-migrate @ 4830]
Christian Hammond <chipx86@chipx86.com>
parents:
4493
diff
changeset
|
314 GTK_SHADOW_IN); |
3754 | 315 |
316 /* Create the list model. */ | |
317 model = gtk_list_store_new(NUM_COLUMNS, G_TYPE_STRING, G_TYPE_BOOLEAN, | |
318 G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER); | |
960 | 319 |
3754 | 320 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model)); |
321 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE); | |
322 gtk_tree_selection_set_mode( | |
323 gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), | |
324 GTK_SELECTION_MULTIPLE); | |
325 | |
326 add_columns(treeview); | |
327 | |
328 gtk_container_add(GTK_CONTAINER(win), treeview); | |
329 gtk_widget_show(treeview); | |
960 | 330 |
2204
5014b802eb41
[gaim-migrate @ 2214]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2203
diff
changeset
|
331 regenerate_user_list(); |
3754 | 332 gtk_tree_view_set_reorderable (GTK_TREE_VIEW(treeview), TRUE); |
960 | 333 gtk_widget_show(win); |
334 return win; | |
335 } | |
336 | |
4491 | 337 static void delmod(GtkWidget *w, struct mod_account *ma) |
960 | 338 { |
4491 | 339 mod_accounts = g_slist_remove(mod_accounts, ma); |
340 g_free(ma); | |
960 | 341 } |
342 | |
4491 | 343 static void mod_opt(GtkWidget *b, struct mod_account_opt *mao) |
960 | 344 { |
4491 | 345 mao->ma->options = mao->ma->options ^ mao->opt; |
960 | 346 } |
347 | |
4491 | 348 static void free_mao(GtkWidget *b, struct mod_account_opt *mao) |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
349 { |
4491 | 350 g_free(mao); |
1051
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
351 } |
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
352 |
4491 | 353 static GtkWidget *acct_button(const char *text, struct mod_account *ma, int option, GtkWidget *box) |
960 | 354 { |
355 GtkWidget *button; | |
4491 | 356 struct mod_account_opt *mao = g_new0(struct mod_account_opt, 1); |
960 | 357 button = gtk_check_button_new_with_label(text); |
4635 | 358 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), (ma->options & option)); |
960 | 359 gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); |
4491 | 360 mao->ma = ma; |
361 mao->opt = option; | |
362 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(mod_opt), mao); | |
363 g_signal_connect(GTK_OBJECT(button), "destroy", G_CALLBACK(free_mao), mao); | |
960 | 364 gtk_widget_show(button); |
365 return button; | |
366 } | |
367 | |
4966 | 368 static void process_login_opts(struct mod_account *ma) { |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
369 GaimPlugin *p = gaim_find_prpl(ma->protocol); |
4966 | 370 const char *entry_text; |
371 char *username = g_strdup(gtk_entry_get_text(GTK_ENTRY(ma->name))); | |
372 char *tmp; | |
373 GList *entries = ma->user_split_entries; | |
374 GList *user_splits = NULL; | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
375 |
4966 | 376 if(p) |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
377 user_splits = GAIM_PLUGIN_PROTOCOL_INFO(p)->user_splits; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
378 |
4966 | 379 while(user_splits) { |
380 GtkWidget *entry = entries->data; | |
381 struct proto_user_split *pus = user_splits->data; | |
382 char tmp_sep[2] = " "; | |
383 entry_text = gtk_entry_get_text(GTK_ENTRY(entry)); | |
384 | |
385 tmp_sep[0] = pus->sep; | |
386 tmp = g_strconcat(username, tmp_sep, *entry_text ? entry_text : pus->def, NULL); | |
387 g_free(username); | |
388 username = tmp; | |
389 | |
390 entries = entries->next; | |
391 user_splits = user_splits->next; | |
392 } | |
393 | |
394 g_snprintf(ma->username, sizeof(ma->username), "%s", username); | |
395 g_free(username); | |
396 | |
397 entry_text = gtk_entry_get_text(GTK_ENTRY(ma->pass)); | |
398 g_snprintf(ma->password, sizeof(ma->password), "%s", entry_text); | |
399 | |
400 entry_text = gtk_entry_get_text(GTK_ENTRY(ma->alias)); | |
401 g_snprintf(ma->show, sizeof(ma->show), "%s", entry_text); | |
402 } | |
403 | |
4491 | 404 static void ok_mod(GtkWidget *w, struct mod_account *ma) |
960 | 405 { |
2154
cff133e0ec0c
[gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2153
diff
changeset
|
406 GList *tmp; |
1954
c15c3a3f6cd4
[gaim-migrate @ 1964]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1942
diff
changeset
|
407 const char *txt; |
4491 | 408 struct gaim_account *a; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
409 GaimPlugin *p = gaim_find_prpl(ma->protocol); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
410 GaimPluginProtocolInfo *prpl_info = NULL; |
3754 | 411 GtkTreeIter iter; |
4634 | 412 int proxytype; |
1355
04874e92af24
[gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
413 |
4491 | 414 if (!ma->account) { |
415 txt = gtk_entry_get_text(GTK_ENTRY(ma->name)); | |
416 ma->account = gaim_account_new(txt, ma->protocol, ma->options); | |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
417 } |
4491 | 418 a = ma->account; |
2154
cff133e0ec0c
[gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2153
diff
changeset
|
419 |
4491 | 420 a->options = ma->options; |
421 a->protocol = ma->protocol; | |
4966 | 422 |
423 process_login_opts(ma); | |
424 g_snprintf(a->username, sizeof(a->username), "%s", ma->username); | |
425 g_snprintf(a->alias, sizeof(a->alias), "%s", ma->show); | |
426 | |
4491 | 427 if (a->options & OPT_ACCT_REM_PASS) |
4966 | 428 g_snprintf(a->password, sizeof(a->password), "%s", ma->password); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
429 else |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
430 a->password[0] = '\0'; |
2190
24d947eff811
[gaim-migrate @ 2200]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2165
diff
changeset
|
431 |
3754 | 432 if (get_iter_from_data(GTK_TREE_VIEW(treeview), a, &iter)) { |
433 gtk_list_store_set(model, &iter, | |
434 COLUMN_SCREENNAME, a->username, | |
4491 | 435 COLUMN_AUTOLOGIN, (a->options & OPT_ACCT_AUTO), |
3754 | 436 COLUMN_PROTOCOL, proto_name(a->protocol), |
437 -1); | |
438 } | |
439 | |
440 #if 0 | |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
441 i = gtk_clist_find_row_from_data(GTK_CLIST(list), a); |
2628
4054a0849461
[gaim-migrate @ 2641]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2627
diff
changeset
|
442 gtk_clist_set_text(GTK_CLIST(list), i, 0, a->username); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
443 gtk_clist_set_text(GTK_CLIST(list), i, 2, |
4491 | 444 (a->options & OPT_ACCT_AUTO) ? "True" : "False"); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
445 gtk_clist_set_text(GTK_CLIST(list), i, 3, proto_name(a->protocol)); |
3754 | 446 #endif |
1355
04874e92af24
[gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
447 |
4491 | 448 tmp = ma->opt_entries; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
449 while (tmp) { |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
450 GtkEntry *entry = tmp->data; |
4635 | 451 int pos = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(entry), "position")); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
452 g_snprintf(a->proto_opt[pos], sizeof(a->proto_opt[pos]), "%s", |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2364
diff
changeset
|
453 gtk_entry_get_text(entry)); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
454 tmp = tmp->next; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
455 } |
4491 | 456 if (ma->opt_entries) |
457 g_list_free(ma->opt_entries); | |
458 ma->opt_entries = NULL; | |
1355
04874e92af24
[gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
459 |
4491 | 460 g_snprintf(a->iconfile, sizeof(a->iconfile), "%s", ma->iconfile); |
461 if (ma->icondlg) | |
462 gtk_widget_destroy(ma->icondlg); | |
463 ma->icondlg = NULL; | |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
464 |
4634 | 465 if(ma->account->gpi) |
466 g_free(ma->account->gpi); | |
467 ma->account->gpi = NULL; | |
468 | |
4635 | 469 proxytype = GPOINTER_TO_INT(g_object_get_data( |
470 G_OBJECT(gtk_menu_get_active(GTK_MENU(ma->proxytype_menu))), | |
471 "proxytype")); | |
4634 | 472 |
473 if(proxytype != PROXY_USE_GLOBAL) { | |
474 struct gaim_proxy_info *gpi = g_new0(struct gaim_proxy_info, 1); | |
475 gpi->proxytype = proxytype; | |
476 g_snprintf(gpi->proxyhost, sizeof(gpi->proxyhost), "%s", gtk_entry_get_text(GTK_ENTRY(ma->proxyhost_entry))); | |
477 gpi->proxyport = atoi(gtk_entry_get_text(GTK_ENTRY(ma->proxyport_entry))); | |
478 g_snprintf(gpi->proxyuser, sizeof(gpi->proxyuser), "%s", gtk_entry_get_text(GTK_ENTRY(ma->proxyuser_entry))); | |
479 g_snprintf(gpi->proxypass, sizeof(gpi->proxypass), "%s", gtk_entry_get_text(GTK_ENTRY(ma->proxypass_entry))); | |
480 | |
481 ma->account->gpi = gpi; | |
482 } | |
483 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
484 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(p); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
485 |
2956 | 486 /* |
487 * See if user registration is supported/required | |
488 */ | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
489 if (!p) { |
2956 | 490 /* TBD: error dialog here! (This should never happen, you know...) */ |
4491 | 491 fprintf(stderr, "dbg: couldn't find protocol for protocol number %d!\n", ma->protocol); |
2956 | 492 fflush(stderr); |
493 } else { | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
494 if (prpl_info->register_user != NULL && |
4491 | 495 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ma->register_user)) == TRUE) { |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
496 prpl_info->register_user(a); |
2956 | 497 } |
498 } | |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
499 |
960 | 500 save_prefs(); |
2956 | 501 |
4491 | 502 gtk_widget_destroy(ma->mod); |
960 | 503 } |
504 | |
4491 | 505 static void cancel_mod(GtkWidget *w, struct mod_account *ma) |
960 | 506 { |
4491 | 507 if (ma->opt_entries) |
508 g_list_free(ma->opt_entries); | |
509 ma->opt_entries = NULL; | |
510 if (ma->icondlg) | |
511 gtk_widget_destroy(ma->icondlg); | |
512 ma->icondlg = NULL; | |
513 gtk_widget_destroy(ma->mod); | |
960 | 514 } |
515 | |
4966 | 516 static void generate_login_options(struct mod_account *ma, GtkWidget *box); |
517 static void generate_user_options(struct mod_account *ma, GtkWidget *box); | |
518 static void generate_protocol_options(struct mod_account *ma, GtkWidget *box); | |
519 | |
960 | 520 static void set_prot(GtkWidget *opt, int proto) |
521 { | |
4635 | 522 struct mod_account *ma = g_object_get_data(G_OBJECT(opt), "mod_account"); |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
523 GaimPlugin *p; |
4491 | 524 if (ma->protocol != proto) { |
1086
ce201056e7a6
[gaim-migrate @ 1096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1075
diff
changeset
|
525 int i; |
4966 | 526 |
1878
75643b9f4261
[gaim-migrate @ 1888]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1817
diff
changeset
|
527 for (i = 0; i < 7; i++) |
4491 | 528 ma->proto_opt[i][0] = '\0'; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
529 p = gaim_find_prpl(ma->protocol); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
530 |
4966 | 531 process_login_opts(ma); |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
532 |
4491 | 533 ma->protocol = proto; |
4966 | 534 |
535 if(!ma->account) | |
536 g_snprintf(ma->username, sizeof(ma->username), "%s", | |
537 gtk_entry_get_text(GTK_ENTRY(ma->name))); | |
538 | |
539 generate_login_options(ma, ma->main); | |
540 generate_user_options(ma, ma->main); | |
4998 | 541 generate_protocol_options(ma, ma->disc_box); |
960 | 542 } |
543 } | |
544 | |
4491 | 545 static GtkWidget *make_protocol_menu(GtkWidget *box, struct mod_account *ma) |
960 | 546 { |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
547 GaimPluginProtocolInfo *prpl_info = NULL; |
960 | 548 GtkWidget *optmenu; |
549 GtkWidget *menu; | |
550 GtkWidget *opt; | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
551 GSList *p; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
552 GaimPlugin *e; |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
553 int count = 0; |
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
554 gboolean found = FALSE; |
960 | 555 |
556 optmenu = gtk_option_menu_new(); | |
557 gtk_box_pack_start(GTK_BOX(box), optmenu, FALSE, FALSE, 5); | |
558 gtk_widget_show(optmenu); | |
559 | |
560 menu = gtk_menu_new(); | |
561 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
562 for (p = protocols; p != NULL; p = p->next) { |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
563 e = (GaimPlugin *)p->data; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
564 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(e); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
565 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
566 if (prpl_info->protocol == ma->protocol) |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
567 found = TRUE; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
568 if (!found) |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
569 count++; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
570 if (e->info->name) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
571 opt = gtk_menu_item_new_with_label(e->info->name); |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
572 else |
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
573 opt = gtk_menu_item_new_with_label("Unknown"); |
4635 | 574 g_object_set_data(G_OBJECT(opt), "mod_account", ma); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
575 g_signal_connect(GTK_OBJECT(opt), "activate", |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
576 G_CALLBACK(set_prot), (void *)prpl_info->protocol); |
4635 | 577 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
578 gtk_widget_show(opt); |
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
579 } |
960 | 580 |
581 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); | |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
582 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), count); |
960 | 583 |
584 return optmenu; | |
585 } | |
586 | |
4491 | 587 static void des_icon_sel(GtkWidget *w, struct mod_account *ma) |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
588 { |
4491 | 589 w = ma->icondlg; |
590 if (ma->icondlg) | |
591 ma->icondlg = NULL; | |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
592 if (w) |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
593 gtk_widget_destroy(w); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
594 } |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
595 |
4491 | 596 static void set_icon(GtkWidget *w, struct mod_account *ma) |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
597 { |
4491 | 598 GtkWidget *sel = ma->icondlg; |
3466 | 599 const char *file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(sel)); |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
600 |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
601 if (file_is_dir(file, sel)) |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
602 return; |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
603 |
4491 | 604 gtk_entry_set_text(GTK_ENTRY(ma->iconentry), file); |
605 g_snprintf(ma->iconfile, sizeof(ma->iconfile), "%s", file); | |
606 ma->icondlg = NULL; | |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
607 |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
608 gtk_widget_destroy(sel); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
609 } |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
610 |
4491 | 611 static void sel_icon_dlg(GtkWidget *w, struct mod_account *ma) |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
612 { |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
613 GtkWidget *dlg; |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
614 char buf[256]; |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
615 |
4491 | 616 if (ma->icondlg) { |
617 gtk_widget_show(ma->icondlg); | |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
618 return; |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
619 } |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
620 |
4703 | 621 dlg = gtk_file_selection_new(_("Load Buddy Icon")); |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
622 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(dlg)); |
4491 | 623 if (ma->iconfile) { |
4738 | 624 char *tmp = g_path_get_dirname(ma->iconfile); |
625 g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S, tmp); | |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
626 g_free(tmp); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
627 } else { |
3630 | 628 g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S, gaim_home_dir()); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
629 } |
4738 | 630 gtk_file_selection_set_filename(GTK_FILE_SELECTION(dlg), buf); |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
631 |
4491 | 632 g_signal_connect(GTK_OBJECT(dlg), "destroy", G_CALLBACK(des_icon_sel), ma); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
633 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(dlg)->cancel_button), "clicked", |
4491 | 634 G_CALLBACK(des_icon_sel), ma); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
635 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(dlg)->ok_button), "clicked", |
4491 | 636 G_CALLBACK(set_icon), ma); |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
637 |
4491 | 638 ma->icondlg = dlg; |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
639 |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
640 gtk_widget_show(dlg); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
641 } |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
642 |
4491 | 643 static void reset_icon(GtkWidget *w, struct mod_account *ma) |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
644 { |
4491 | 645 ma->iconfile[0] = 0; |
646 gtk_entry_set_text(GTK_ENTRY(ma->iconentry), ""); | |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
647 } |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
648 |
4491 | 649 static GtkWidget *build_icon_selection(struct mod_account *ma, GtkWidget *box) |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
650 { |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
651 GtkWidget *hbox; |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
652 GtkWidget *label; |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
653 GtkWidget *name; |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
654 GtkWidget *browse; |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
655 GtkWidget *reset; |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
656 |
4491 | 657 if (ma->account) |
658 g_snprintf(ma->iconfile, sizeof(ma->iconfile), "%s", ma->account->iconfile); | |
2431
5948060f486c
[gaim-migrate @ 2444]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2411
diff
changeset
|
659 |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
660 hbox = gtk_hbox_new(FALSE, 0); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
661 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
662 gtk_widget_show(hbox); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
663 |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
664 label = gtk_label_new(_("Buddy Icon File:")); |
4491 | 665 gtk_size_group_add_widget(ma->sg, label); |
3754 | 666 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
667 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
668 gtk_widget_show(label); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
669 |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
670 name = gtk_entry_new(); |
4491 | 671 gtk_entry_set_text(GTK_ENTRY(name), ma->iconfile); |
4635 | 672 gtk_editable_set_editable(GTK_EDITABLE(name), FALSE); |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
673 gtk_box_pack_start(GTK_BOX(hbox), name, TRUE, TRUE, 5); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
674 gtk_widget_show(name); |
4491 | 675 ma->iconentry = name; |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
676 |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
677 browse = gtk_button_new_with_label(_("Browse")); |
4491 | 678 g_signal_connect(GTK_OBJECT(browse), "clicked", G_CALLBACK(sel_icon_dlg), ma); |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
679 gtk_box_pack_start(GTK_BOX(hbox), browse, FALSE, FALSE, 0); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
680 gtk_widget_show(browse); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
681 |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
682 reset = gtk_button_new_with_label(_("Reset")); |
4491 | 683 g_signal_connect(GTK_OBJECT(reset), "clicked", G_CALLBACK(reset_icon), ma); |
2411
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
684 gtk_box_pack_start(GTK_BOX(hbox), reset, FALSE, FALSE, 0); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
685 gtk_widget_show(reset); |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
686 |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
687 return hbox; |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
688 } |
123aaa84109a
[gaim-migrate @ 2424]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2403
diff
changeset
|
689 |
4491 | 690 static void generate_login_options(struct mod_account *ma, GtkWidget *box) |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
691 { |
4966 | 692 GtkWidget *frame; |
960 | 693 GtkWidget *vbox; |
694 GtkWidget *hbox; | |
695 GtkWidget *label; | |
4966 | 696 GList *user_splits = NULL; |
697 GList *split_entries; | |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
698 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
699 GaimPlugin *p; |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
700 |
4966 | 701 char *username = NULL; |
702 char *start; | |
703 | |
704 if(ma->login_frame) | |
705 gtk_widget_destroy(ma->login_frame); | |
706 ma->login_frame = NULL; | |
707 | |
3754 | 708 frame = make_frame(box, _("Login Options")); |
4966 | 709 ma->login_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame)); |
4998 | 710 gtk_box_reorder_child(GTK_BOX(box), ma->login_frame, 0); |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
711 |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
712 vbox = gtk_vbox_new(FALSE, 5); |
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
713 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
714 gtk_container_add(GTK_CONTAINER(frame), vbox); |
960 | 715 |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
716 hbox = gtk_hbox_new(FALSE, 5); |
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
717 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
4966 | 718 gtk_widget_show(hbox); |
719 | |
720 label = gtk_label_new(_("Protocol:")); | |
721 gtk_size_group_add_widget(ma->sg, label); | |
722 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
723 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
724 | |
725 make_protocol_menu(hbox, ma); | |
726 | |
727 hbox = gtk_hbox_new(FALSE, 5); | |
728 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
729 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
730 p = gaim_find_prpl(ma->protocol); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
731 |
4966 | 732 if(p) |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
733 user_splits = GAIM_PLUGIN_PROTOCOL_INFO(p)->user_splits; |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
734 |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
735 label = gtk_label_new(_("Screenname:")); |
4491 | 736 gtk_size_group_add_widget(ma->sg, label); |
3754 | 737 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
738 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
960 | 739 |
4491 | 740 ma->name = gtk_entry_new(); |
741 gtk_box_pack_start(GTK_BOX(hbox), ma->name, TRUE, TRUE, 0); | |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
742 |
4966 | 743 if(ma->user_split_entries) { |
744 g_list_free(ma->user_split_entries); | |
745 ma->user_split_entries = NULL; | |
746 } | |
747 | |
748 while(user_splits) { | |
749 struct proto_user_split *pus = user_splits->data; | |
750 GtkWidget *entry; | |
751 | |
752 hbox = gtk_hbox_new(FALSE, 5); | |
753 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
754 | |
755 label = gtk_label_new(pus->label); | |
756 gtk_size_group_add_widget(ma->sg, label); | |
757 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
758 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
759 user_splits = user_splits->next; | |
760 | |
761 entry = gtk_entry_new(); | |
762 gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0); | |
763 | |
764 ma->user_split_entries = g_list_append(ma->user_split_entries, entry); | |
765 } | |
766 | |
4491 | 767 ma->pwdbox = gtk_hbox_new(FALSE, 5); |
768 gtk_box_pack_start(GTK_BOX(vbox), ma->pwdbox, FALSE, FALSE, 0); | |
960 | 769 |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
770 label = gtk_label_new(_("Password:")); |
4491 | 771 gtk_size_group_add_widget(ma->sg, label); |
3754 | 772 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
4491 | 773 gtk_box_pack_start(GTK_BOX(ma->pwdbox), label, FALSE, FALSE, 0); |
960 | 774 |
4491 | 775 ma->pass = gtk_entry_new(); |
776 gtk_box_pack_start(GTK_BOX(ma->pwdbox), ma->pass, TRUE, TRUE, 0); | |
777 gtk_entry_set_visibility(GTK_ENTRY(ma->pass), FALSE); | |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
778 |
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
779 hbox = gtk_hbox_new(FALSE, 5); |
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
780 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
3205 | 781 |
782 label = gtk_label_new(_("Alias:")); | |
4491 | 783 gtk_size_group_add_widget(ma->sg, label); |
3754 | 784 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
3205 | 785 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
786 | |
4491 | 787 ma->alias = gtk_entry_new(); |
788 gtk_box_pack_start(GTK_BOX(hbox), ma->alias, TRUE, TRUE, 0); | |
3205 | 789 |
4491 | 790 ma->rempass = acct_button(_("Remember Password"), ma, OPT_ACCT_REM_PASS, vbox); |
791 acct_button(_("Auto-Login"), ma, OPT_ACCT_AUTO, vbox); | |
960 | 792 |
4966 | 793 gtk_widget_show_all(ma->login_frame); |
794 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
795 if (p) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
796 user_splits = g_list_last(GAIM_PLUGIN_PROTOCOL_INFO(p)->user_splits); |
4966 | 797 |
798 username = g_strdup(ma->username); | |
799 split_entries = g_list_last(ma->user_split_entries); | |
2100
a93aeb6f813d
[gaim-migrate @ 2110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2086
diff
changeset
|
800 |
4966 | 801 while(user_splits) { |
802 struct proto_user_split *pus = user_splits->data; | |
803 GtkWidget *entry = split_entries->data; | |
804 start = strrchr(username, pus->sep); | |
805 if(start) { | |
806 *start = '\0'; | |
807 start++; | |
808 gtk_entry_set_text(GTK_ENTRY(entry), start); | |
809 } else { | |
810 gtk_entry_set_text(GTK_ENTRY(entry), pus->def); | |
811 } | |
812 user_splits = user_splits->prev; | |
813 split_entries = split_entries->prev; | |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
814 } |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
815 |
4966 | 816 gtk_entry_set_text(GTK_ENTRY(ma->name), username); |
817 gtk_entry_set_text(GTK_ENTRY(ma->alias), ma->show); | |
818 gtk_entry_set_text(GTK_ENTRY(ma->pass), ma->password); | |
819 g_free(username); | |
820 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
821 if (p && (GAIM_PLUGIN_PROTOCOL_INFO(p)->options & OPT_PROTO_NO_PASSWORD)) { |
4491 | 822 gtk_widget_hide(ma->pwdbox); |
823 gtk_widget_hide(ma->rempass); | |
2444
13ce96daf30f
[gaim-migrate @ 2457]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2442
diff
changeset
|
824 } |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
825 } |
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
826 |
4491 | 827 static void generate_user_options(struct mod_account *ma, GtkWidget *box) |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
828 { |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
829 /* This function will add the appropriate (depending on the current |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
830 * protocol) widgets to frame and return TRUE if there anything |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
831 * was added (meaning the frame should be shown) |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
832 * Eric will most likely change this (as he does all other submitted code) |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
833 * so that it will accept the vbox as an argument and create, add, and show |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
834 * the frame itself (like generate_protocol_options). I'd do it myself, but I'm |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
835 * tired and I don't care. */ |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
836 /* Sean was right. I did do that. I told him I would. */ |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
837 |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
838 GtkWidget *vbox; |
3756
08742bf8a7be
[gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents:
3755
diff
changeset
|
839 GtkWidget *frame; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
840 GaimPluginProtocolInfo *prpl_info = NULL; |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
841 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
842 GaimPlugin *p = gaim_find_prpl(ma->protocol); |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
843 |
4966 | 844 if(ma->user_frame) |
845 gtk_widget_destroy(ma->user_frame); | |
846 ma->user_frame = NULL; | |
847 | |
3756
08742bf8a7be
[gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents:
3755
diff
changeset
|
848 frame = make_frame(box, _("User Options")); |
4491 | 849 ma->user_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame)); |
4998 | 850 gtk_box_reorder_child(GTK_BOX(box), ma->user_frame, 1); |
4491 | 851 gtk_widget_show_all(ma->user_frame); |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
852 |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
853 vbox = gtk_vbox_new(FALSE, 5); |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
854 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
3756
08742bf8a7be
[gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents:
3755
diff
changeset
|
855 gtk_container_add(GTK_CONTAINER(frame), vbox); |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
856 gtk_widget_show(vbox); |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
857 |
4491 | 858 ma->checkmail = acct_button(_("New Mail Notifications"), ma, OPT_ACCT_MAIL_CHECK, vbox); |
859 ma->iconsel = build_icon_selection(ma, vbox); | |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
860 |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
861 if (!p) { |
4491 | 862 gtk_widget_hide(ma->user_frame); |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
863 return; |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
864 } |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
865 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
866 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(p); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
867 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
868 if (!(prpl_info->options & OPT_PROTO_MAIL_CHECK)) |
4491 | 869 gtk_widget_hide(ma->checkmail); |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
870 if (!(prpl_info->options & OPT_PROTO_BUDDY_ICON)) |
4491 | 871 gtk_widget_hide(ma->iconsel); |
2525
4fc6aac9da94
[gaim-migrate @ 2538]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2522
diff
changeset
|
872 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
873 if ((prpl_info->options & OPT_PROTO_BUDDY_ICON) || |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
874 (prpl_info->options & OPT_PROTO_MAIL_CHECK)) { |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
875 |
2525
4fc6aac9da94
[gaim-migrate @ 2538]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2522
diff
changeset
|
876 return; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
877 } |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
878 |
4491 | 879 gtk_widget_hide(ma->user_frame); |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
880 } |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
881 |
4491 | 882 static void generate_protocol_options(struct mod_account *ma, GtkWidget *box) |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
883 { |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
884 GaimPlugin *p = gaim_find_prpl(ma->protocol); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
885 GaimPluginProtocolInfo *prpl_info = NULL; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
886 |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
887 GList *op, *tmp; |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
888 |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
889 GtkWidget *vbox; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
890 GtkWidget *hbox; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
891 GtkWidget *label; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
892 GtkWidget *entry; |
3754 | 893 GtkWidget *frame; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
894 |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
895 char buf[256]; |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
896 |
4491 | 897 if (ma->proto_frame) |
898 gtk_widget_destroy(ma->proto_frame); | |
899 ma->proto_frame = NULL; | |
2203
14100685c95f
[gaim-migrate @ 2213]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2200
diff
changeset
|
900 |
4491 | 901 if (ma->opt_entries) { |
902 g_list_free(ma->opt_entries); | |
903 ma->opt_entries = NULL; | |
2190
24d947eff811
[gaim-migrate @ 2200]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2165
diff
changeset
|
904 } |
24d947eff811
[gaim-migrate @ 2200]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2165
diff
changeset
|
905 |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
906 if (!p) |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
907 return; |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
908 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
909 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(p); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
910 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
911 if (!prpl_info->user_opts) |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
912 return; |
2154
cff133e0ec0c
[gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2153
diff
changeset
|
913 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
914 tmp = op = prpl_info->user_opts; |
2154
cff133e0ec0c
[gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2153
diff
changeset
|
915 |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
916 if (!op) |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
917 return; |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
918 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
919 g_snprintf(buf, sizeof(buf), _("%s Options"), p->info->name); |
3754 | 920 frame = make_frame(box, buf); |
921 | |
922 /* BLEH */ | |
4491 | 923 ma->proto_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame)); |
4998 | 924 gtk_box_reorder_child(GTK_BOX(box), ma->proto_frame, 0); |
4491 | 925 gtk_widget_show_all(ma->proto_frame); |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
926 |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
927 vbox = gtk_vbox_new(FALSE, 5); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
928 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
3754 | 929 gtk_container_add(GTK_CONTAINER(frame), vbox); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
930 gtk_widget_show(vbox); |
2154
cff133e0ec0c
[gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2153
diff
changeset
|
931 |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
932 while (op) { |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
933 struct proto_user_opt *puo = op->data; |
2154
cff133e0ec0c
[gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2153
diff
changeset
|
934 |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
935 hbox = gtk_hbox_new(FALSE, 5); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
936 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
937 gtk_widget_show(hbox); |
2154
cff133e0ec0c
[gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2153
diff
changeset
|
938 |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
939 label = gtk_label_new(puo->label); |
4491 | 940 gtk_size_group_add_widget(ma->sg, label); |
3754 | 941 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
942 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
943 gtk_widget_show(label); |
2154
cff133e0ec0c
[gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2153
diff
changeset
|
944 |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
945 entry = gtk_entry_new(); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
946 gtk_box_pack_end(GTK_BOX(hbox), entry, FALSE, FALSE, 0); |
4635 | 947 g_object_set_data(G_OBJECT(entry), "position", GINT_TO_POINTER(puo->pos)); |
4491 | 948 if (ma->proto_opt[puo->pos][0]) { |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
949 gaim_debug(GAIM_DEBUG_MISC, "protocol options", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
950 "Setting text %s\n", ma->proto_opt[puo->pos]); |
4491 | 951 gtk_entry_set_text(GTK_ENTRY(entry), ma->proto_opt[puo->pos]); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
952 } else { |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
953 gtk_entry_set_text(GTK_ENTRY(entry), puo->def); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
954 } |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
955 gtk_widget_show(entry); |
2154
cff133e0ec0c
[gaim-migrate @ 2164]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2153
diff
changeset
|
956 |
4491 | 957 ma->opt_entries = g_list_append(ma->opt_entries, entry); |
958 | |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
959 op = op->next; |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
960 } |
2956 | 961 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
962 if(prpl_info->register_user != NULL) { |
4491 | 963 ma->register_user = gtk_check_button_new_with_label(_("Register with server")); |
4635 | 964 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ma->register_user), FALSE); |
4491 | 965 gtk_box_pack_start(GTK_BOX(vbox), ma->register_user, FALSE, FALSE, 0); |
966 gtk_widget_show(ma->register_user); | |
2956 | 967 } |
968 | |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
969 } |
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
970 |
4635 | 971 static void proxy_dropdown_set(GObject *w, struct mod_account *ma) { |
972 int opt = GPOINTER_TO_INT(g_object_get_data(w, "proxytype")); | |
4856 | 973 if(opt == PROXY_NONE || opt == PROXY_USE_GLOBAL) |
974 gtk_widget_hide_all(ma->proxy_host_box); | |
975 else { | |
976 gtk_widget_show_all(ma->proxy_host_box); | |
977 } | |
4634 | 978 } |
979 | |
980 static void generate_proxy_options(struct mod_account *ma, GtkWidget *box) { | |
981 GtkWidget *frame; | |
982 GtkWidget *hbox; | |
983 GtkWidget *vbox; | |
984 GtkWidget *label; | |
985 GtkWidget *menu; | |
986 GtkWidget *dropdown; | |
987 GtkWidget *opt; | |
988 GtkWidget *entry; | |
989 GtkWidget *vbox2; | |
990 | |
991 struct gaim_proxy_info *gpi = NULL; | |
992 | |
993 if(ma->account) | |
994 gpi = ma->account->gpi; | |
995 | |
996 frame = make_frame(box, _("Proxy Options")); | |
997 ma->proxy_frame = gtk_widget_get_parent(gtk_widget_get_parent(frame)); | |
998 gtk_widget_show_all(ma->proxy_frame); | |
999 | |
1000 vbox = gtk_vbox_new(FALSE, 5); | |
1001 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); | |
1002 gtk_container_add(GTK_CONTAINER(frame), vbox); | |
1003 gtk_widget_show(vbox); | |
1004 | |
1005 /* make the dropdown w/o the benefit of the easy helper funcs in prefs.c */ | |
1006 hbox = gtk_hbox_new(FALSE, 5); | |
1007 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
1008 gtk_widget_show(hbox); | |
1009 | |
1010 label = gtk_label_new_with_mnemonic(_("Proxy _Type")); | |
1011 gtk_size_group_add_widget(ma->sg, label); | |
1012 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
1013 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
1014 gtk_widget_show(label); | |
1015 | |
1016 dropdown = gtk_option_menu_new(); | |
1017 menu = gtk_menu_new(); | |
1018 | |
4834 | 1019 opt = gtk_menu_item_new_with_label(_("Use Global Proxy Settings")); |
4635 | 1020 g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_USE_GLOBAL)); |
4634 | 1021 g_signal_connect(G_OBJECT(opt), "activate", |
1022 G_CALLBACK(proxy_dropdown_set), ma); | |
1023 gtk_widget_show(opt); | |
1024 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
1025 if(!gpi) | |
1026 gtk_menu_set_active(GTK_MENU(menu), 0); | |
1027 | |
4834 | 1028 opt = gtk_menu_item_new_with_label(_("No Proxy")); |
4635 | 1029 g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_NONE)); |
4634 | 1030 g_signal_connect(G_OBJECT(opt), "activate", |
1031 G_CALLBACK(proxy_dropdown_set), ma); | |
1032 gtk_widget_show(opt); | |
1033 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
1034 if(gpi && gpi->proxytype == PROXY_NONE) | |
1035 gtk_menu_set_active(GTK_MENU(menu), 1); | |
1036 | |
1037 opt = gtk_menu_item_new_with_label("SOCKS 4"); | |
4635 | 1038 g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_SOCKS4)); |
4634 | 1039 g_signal_connect(G_OBJECT(opt), "activate", |
1040 G_CALLBACK(proxy_dropdown_set), ma); | |
1041 gtk_widget_show(opt); | |
1042 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
1043 if(gpi && gpi->proxytype == PROXY_SOCKS4) | |
1044 gtk_menu_set_active(GTK_MENU(menu), 2); | |
1045 | |
1046 opt = gtk_menu_item_new_with_label("SOCKS 5"); | |
4635 | 1047 g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_SOCKS5)); |
4634 | 1048 g_signal_connect(G_OBJECT(opt), "activate", |
1049 G_CALLBACK(proxy_dropdown_set), ma); | |
1050 gtk_widget_show(opt); | |
1051 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
1052 if(gpi && gpi->proxytype == PROXY_SOCKS5) | |
1053 gtk_menu_set_active(GTK_MENU(menu), 3); | |
1054 | |
1055 opt = gtk_menu_item_new_with_label("HTTP"); | |
4635 | 1056 g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_HTTP)); |
4634 | 1057 g_signal_connect(G_OBJECT(opt), "activate", |
1058 G_CALLBACK(proxy_dropdown_set), ma); | |
1059 gtk_widget_show(opt); | |
1060 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
1061 if(gpi && gpi->proxytype == PROXY_HTTP) | |
1062 gtk_menu_set_active(GTK_MENU(menu), 4); | |
1063 | |
1064 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); | |
1065 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0); | |
1066 gtk_widget_show(dropdown); | |
1067 | |
1068 ma->proxytype_menu = menu; | |
1069 | |
1070 | |
1071 vbox2 = gtk_vbox_new(FALSE, 5); | |
1072 gtk_container_add(GTK_CONTAINER(vbox), vbox2); | |
1073 gtk_widget_show(vbox2); | |
1074 ma->proxy_host_box = vbox2; | |
1075 | |
1076 hbox = gtk_hbox_new(FALSE, 5); | |
1077 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0); | |
1078 gtk_widget_show(hbox); | |
1079 | |
1080 label = gtk_label_new_with_mnemonic(_("_Host:")); | |
1081 gtk_size_group_add_widget(ma->sg, label); | |
1082 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
1083 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
1084 gtk_widget_show(label); | |
1085 entry = gtk_entry_new(); | |
1086 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1087 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0); | |
1088 gtk_entry_set_text(GTK_ENTRY(entry), gpi ? gpi->proxyhost : ""); | |
1089 gtk_widget_show(entry); | |
1090 ma->proxyhost_entry = entry; | |
1091 | |
1092 hbox = gtk_hbox_new(FALSE, 5); | |
1093 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0); | |
1094 gtk_widget_show(hbox); | |
1095 | |
1096 label = gtk_label_new_with_mnemonic(_("Port:")); | |
1097 gtk_size_group_add_widget(ma->sg, label); | |
1098 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
1099 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
1100 gtk_widget_show(label); | |
1101 entry = gtk_entry_new(); | |
1102 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1103 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0); | |
1104 if(gpi && gpi->proxyport) { | |
1105 char buf[128]; | |
1106 g_snprintf(buf, sizeof(buf), "%d", gpi->proxyport); | |
1107 gtk_entry_set_text(GTK_ENTRY(entry), buf); | |
1108 } | |
1109 gtk_widget_show(entry); | |
1110 ma->proxyport_entry = entry; | |
1111 | |
1112 hbox = gtk_hbox_new(FALSE, 5); | |
1113 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0); | |
1114 gtk_widget_show(hbox); | |
1115 | |
1116 label = gtk_label_new_with_mnemonic(_("_User:")); | |
1117 gtk_size_group_add_widget(ma->sg, label); | |
1118 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
1119 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
1120 gtk_widget_show(label); | |
1121 entry = gtk_entry_new(); | |
1122 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1123 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0); | |
1124 gtk_entry_set_text(GTK_ENTRY(entry), gpi ? gpi->proxyuser : ""); | |
1125 gtk_widget_show(entry); | |
1126 ma->proxyuser_entry = entry; | |
1127 | |
1128 hbox = gtk_hbox_new(FALSE, 5); | |
1129 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0); | |
1130 gtk_widget_show(hbox); | |
1131 | |
1132 label = gtk_label_new_with_mnemonic(_("Pa_ssword:")); | |
1133 gtk_size_group_add_widget(ma->sg, label); | |
1134 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
1135 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
1136 gtk_widget_show(label); | |
1137 entry = gtk_entry_new(); | |
1138 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1139 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0); | |
1140 gtk_entry_set_text(GTK_ENTRY(entry), gpi ? gpi->proxypass : ""); | |
1141 gtk_widget_show(entry); | |
1142 ma->proxypass_entry = entry; | |
1143 | |
4856 | 1144 if(gpi == NULL || gpi->proxytype == PROXY_NONE) |
1145 gtk_widget_hide_all(vbox2); | |
4634 | 1146 } |
1147 | |
4491 | 1148 static void show_acct_mod(struct gaim_account *a) |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
1149 { |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
1150 /* This is the fucking modify account dialog. I've fucking seperated it into |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
1151 * three fucking frames: |
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
1152 * a fucking Login Options frame, a fucking User Options frame and a fucking |
4491 | 1153 * Protcol Options frame. This fucking removes the two fucking tabs, which |
1154 * were quite fucking uneccessary. Fuck. */ | |
2522
108b3eab22aa
[gaim-migrate @ 2535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2458
diff
changeset
|
1155 /* -- SeanEgan */ |
3754 | 1156 /* YEAH!! -- ChipX86 */ |
4962 | 1157 GtkWidget *hbox, *vbox, *disc, *dbox; |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
1158 GtkWidget *button; |
3754 | 1159 GtkWidget *sep; |
1160 GtkSizeGroup *button_sg; | |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
1161 |
4491 | 1162 struct mod_account *ma = mod_account_find(a); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1163 |
4491 | 1164 if (!ma) { |
1165 ma = g_new0(struct mod_account, 1); | |
1166 ma->account = a; | |
1167 mod_accounts = g_slist_append(mod_accounts, ma); | |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1168 |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1169 if (a) { |
2458
8208e2016d9b
[gaim-migrate @ 2471]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2445
diff
changeset
|
1170 int i; |
4491 | 1171 ma->options = a->options; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1172 if (gaim_find_prpl(a->protocol)) |
4491 | 1173 ma->protocol = a->protocol; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1174 else if (protocols) |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1175 ma->protocol = GAIM_PLUGIN_PROTOCOL_INFO( |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1176 ((GaimPlugin *)protocols->data))->protocol; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1177 else |
4491 | 1178 ma->protocol = -1; |
1179 g_snprintf(ma->iconfile, sizeof(ma->iconfile), "%s", a->iconfile); | |
4966 | 1180 g_snprintf(ma->username, sizeof(ma->username), "%s", a->username); |
1181 g_snprintf(ma->show, sizeof(ma->show), "%s", a->alias); | |
1182 g_snprintf(ma->password, sizeof(ma->password), "%s", a->password); | |
1183 | |
2458
8208e2016d9b
[gaim-migrate @ 2471]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2445
diff
changeset
|
1184 for (i = 0; i < 7; i++) |
4491 | 1185 g_snprintf(ma->proto_opt[i], sizeof(ma->proto_opt[i]), "%s", |
2458
8208e2016d9b
[gaim-migrate @ 2471]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2445
diff
changeset
|
1186 a->proto_opt[i]); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1187 } else { |
4491 | 1188 ma->options = OPT_ACCT_REM_PASS; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1189 if (gaim_find_prpl(GAIM_PROTO_DEFAULT)) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1190 ma->protocol = GAIM_PROTO_DEFAULT; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1191 else if (protocols) |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1192 ma->protocol = GAIM_PLUGIN_PROTOCOL_INFO( |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1193 ((GaimPlugin *)protocols->data))->protocol; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1194 else |
4491 | 1195 ma->protocol = -1; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1196 } |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1197 } else { |
4491 | 1198 gtk_widget_show(ma->mod); |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
1199 return; |
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
1200 } |
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
1201 |
4491 | 1202 ma->mod = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
1203 gtk_window_set_role(GTK_WINDOW(ma->mod), "account"); | |
1204 gtk_widget_realize(ma->mod); | |
4703 | 1205 gtk_window_set_title(GTK_WINDOW(ma->mod), _("Modify Account")); |
4635 | 1206 gtk_window_set_resizable(GTK_WINDOW(ma->mod), FALSE); /* nothing odd here :) */ |
4491 | 1207 g_signal_connect(GTK_OBJECT(ma->mod), "destroy", G_CALLBACK(delmod), ma); |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
1208 |
3754 | 1209 vbox = gtk_vbox_new(FALSE, 6); |
4635 | 1210 gtk_container_set_border_width(GTK_CONTAINER(vbox), 6); |
4491 | 1211 gtk_container_add(GTK_CONTAINER(ma->mod), vbox); |
3756
08742bf8a7be
[gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents:
3755
diff
changeset
|
1212 gtk_widget_show(vbox); |
3754 | 1213 |
4491 | 1214 ma->main = gtk_vbox_new(FALSE, 12); |
4635 | 1215 gtk_container_set_border_width(GTK_CONTAINER(ma->main), 6); |
4491 | 1216 gtk_box_pack_start(GTK_BOX(vbox), ma->main, FALSE, FALSE, 0); |
1217 gtk_widget_show(ma->main); | |
3754 | 1218 |
4491 | 1219 ma->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1220 |
4491 | 1221 generate_login_options(ma, ma->main); |
1222 generate_user_options(ma, ma->main); | |
4962 | 1223 disc = gaim_disclosure_new(_("Show more options"), _("Show fewer options")); |
1224 gtk_box_pack_start(GTK_BOX(ma->main), disc, FALSE, FALSE, 0); | |
1225 gtk_widget_show(disc); | |
4998 | 1226 ma->disc_box = dbox = gtk_vbox_new(FALSE, 12); |
4962 | 1227 gtk_container_set_border_width(GTK_CONTAINER(dbox), 6); |
1228 gtk_box_pack_start(GTK_BOX(ma->main), dbox, FALSE, FALSE, 0); | |
1229 gaim_disclosure_set_container(GAIM_DISCLOSURE(disc), dbox); | |
1230 generate_protocol_options(ma, dbox); | |
1231 generate_proxy_options(ma, dbox); | |
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
1232 |
3754 | 1233 hbox = gtk_hbox_new(FALSE, 6); |
1234 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
1235 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
960 | 1236 |
3754 | 1237 button_sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); |
1238 | |
1239 button = gtk_button_new_from_stock(GTK_STOCK_OK); | |
1240 gtk_size_group_add_widget(button_sg, button); | |
1241 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
4491 | 1242 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(ok_mod), ma); |
3754 | 1243 |
1244 button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | |
1245 gtk_size_group_add_widget(button_sg, button); | |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1246 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
4491 | 1247 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(cancel_mod), ma); |
960 | 1248 |
3756
08742bf8a7be
[gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents:
3755
diff
changeset
|
1249 sep = gtk_hseparator_new(); |
08742bf8a7be
[gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents:
3755
diff
changeset
|
1250 gtk_box_pack_end (GTK_BOX (vbox), sep, FALSE, FALSE, 0); |
08742bf8a7be
[gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents:
3755
diff
changeset
|
1251 gtk_widget_show(sep); |
08742bf8a7be
[gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents:
3755
diff
changeset
|
1252 |
08742bf8a7be
[gaim-migrate @ 3895]
Christian Hammond <chipx86@chipx86.com>
parents:
3755
diff
changeset
|
1253 gtk_widget_show_all(hbox); |
4491 | 1254 gtk_widget_show(ma->mod); |
960 | 1255 } |
1256 | |
1257 static void add_acct(GtkWidget *w, gpointer d) | |
1258 { | |
1259 show_acct_mod(NULL); | |
1260 } | |
1261 | |
3754 | 1262 static void mod_acct_func(GtkTreeModel *model, GtkTreePath *path, |
1263 GtkTreeIter *iter, gpointer data) | |
1264 { | |
4491 | 1265 struct gaim_account *a; |
3754 | 1266 |
4491 | 1267 gtk_tree_model_get(model, iter, COLUMN_DATA, &a, -1); |
3754 | 1268 |
4491 | 1269 if (a != NULL) |
1270 show_acct_mod(a); | |
3754 | 1271 } |
1272 | |
960 | 1273 static void mod_acct(GtkWidget *w, gpointer d) |
1274 { | |
3754 | 1275 GtkTreeSelection *selection; |
1276 | |
1277 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); | |
1278 | |
1279 gtk_tree_selection_selected_foreach(selection, mod_acct_func, NULL); | |
960 | 1280 } |
1281 | |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1282 struct pass_prompt { |
4491 | 1283 struct gaim_account *account; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1284 GtkWidget *win; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1285 GtkWidget *entry; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1286 }; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1287 static GSList *passes = NULL; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1288 |
4491 | 1289 static struct pass_prompt *find_pass_prompt(struct gaim_account *account) |
960 | 1290 { |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1291 GSList *p = passes; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1292 while (p) { |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1293 struct pass_prompt *r = p->data; |
4491 | 1294 if (r->account == account) |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1295 return r; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1296 p = p->next; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1297 } |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1298 return NULL; |
960 | 1299 } |
1300 | |
4483 | 1301 static void pass_callback(GtkDialog *d, gint resp, struct pass_prompt *p) |
960 | 1302 { |
4483 | 1303 if (resp == GTK_RESPONSE_YES) { |
1304 const char *txt = gtk_entry_get_text(GTK_ENTRY(p->entry)); | |
4491 | 1305 g_snprintf(p->account->password, sizeof(p->account->password), "%s", txt); |
1306 serv_login(p->account); | |
4483 | 1307 } |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1308 passes = g_slist_remove(passes, p); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1309 gtk_widget_destroy(p->win); |
4483 | 1310 g_free(p); |
960 | 1311 } |
1312 | |
4491 | 1313 static void do_pass_dlg(struct gaim_account *account) |
960 | 1314 { |
1315 /* we can safely assume that u is not NULL */ | |
4491 | 1316 struct pass_prompt *p = find_pass_prompt(account); |
960 | 1317 GtkWidget *label; |
4483 | 1318 GtkWidget *hbox, *vbox; |
1319 char *labeltext=NULL; | |
5024 | 1320 GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_AUTH, GTK_ICON_SIZE_DIALOG); |
960 | 1321 |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1322 if (p) { |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1323 gtk_widget_show(p->win); |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1324 return; |
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1325 } |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1326 |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1327 p = g_new0(struct pass_prompt, 1); |
4491 | 1328 p->account = account; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1329 passes = g_slist_append(passes, p); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1330 |
4778 | 1331 p->win = gtk_dialog_new_with_buttons("", NULL, 0, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, |
4483 | 1332 _("_Login"), GTK_RESPONSE_YES, NULL); |
1333 | |
1334 gtk_dialog_set_default_response (GTK_DIALOG(p->win), GTK_RESPONSE_YES); | |
1335 g_signal_connect(G_OBJECT(p->win), "response", G_CALLBACK(pass_callback), p); | |
960 | 1336 |
4483 | 1337 gtk_container_set_border_width (GTK_CONTAINER(p->win), 6); |
1338 gtk_window_set_resizable(GTK_WINDOW(p->win), FALSE); | |
1339 gtk_dialog_set_has_separator(GTK_DIALOG(p->win), FALSE); | |
1340 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(p->win)->vbox), 12); | |
1341 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(p->win)->vbox), 6); | |
1342 | |
1343 hbox = gtk_hbox_new(FALSE, 12); | |
1344 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(p->win)->vbox), hbox); | |
1345 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
960 | 1346 |
4483 | 1347 vbox = gtk_vbox_new(FALSE, 0); |
1348 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
960 | 1349 |
4491 | 1350 labeltext = g_strdup_printf(_("Please enter your password for %s.\n\n"), |
1351 account->username); | |
4483 | 1352 label = gtk_label_new(labeltext); |
1353 g_free(labeltext); | |
1354 | |
1355 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
1356 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1357 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
4491 | 1358 |
960 | 1359 hbox = gtk_hbox_new(FALSE, 5); |
4483 | 1360 gtk_container_add(GTK_CONTAINER(vbox), hbox); |
1361 label = gtk_label_new_with_mnemonic(_("_Password")); | |
1362 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
960 | 1363 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
1364 | |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1365 p->entry = gtk_entry_new(); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1366 gtk_entry_set_visibility(GTK_ENTRY(p->entry), FALSE); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1367 gtk_box_pack_start(GTK_BOX(hbox), p->entry, FALSE, FALSE, 5); |
4483 | 1368 gtk_label_set_mnemonic_widget(GTK_LABEL(label), p->entry); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1369 gtk_widget_grab_focus(p->entry); |
960 | 1370 |
4413 | 1371 gtk_widget_show_all(p->win); |
960 | 1372 } |
1373 | |
3754 | 1374 static void acct_signin(GtkCellRendererToggle *cell, gchar *path_str, |
1375 gpointer d) | |
960 | 1376 { |
3754 | 1377 GtkTreeModel *model = (GtkTreeModel *)d; |
1378 GtkTreeIter iter; | |
1379 | |
4491 | 1380 struct gaim_account *account = NULL; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1381 GaimPlugin *p = NULL; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1382 GaimPluginProtocolInfo *prpl_info = NULL; |
3754 | 1383 |
1384 gtk_tree_model_get_iter_from_string(model, &iter, path_str); | |
4491 | 1385 gtk_tree_model_get(model, &iter, COLUMN_DATA, &account, -1); |
3754 | 1386 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1387 p = gaim_find_prpl(account->protocol); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1388 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1389 if (p != NULL) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1390 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(p); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1391 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1392 if (!account->gc && p && prpl_info->login) { |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1393 GaimPlugin *p = gaim_find_prpl(account->protocol); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1394 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1395 if (p != NULL) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1396 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(p); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1397 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1398 if (p && !(prpl_info->options & OPT_PROTO_NO_PASSWORD) && |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1399 !(prpl_info->options & OPT_PROTO_PASSWORD_OPTIONAL) && |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1400 !account->password[0]) { |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1401 |
4491 | 1402 do_pass_dlg(account); |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1403 } |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1404 else { |
4491 | 1405 serv_login(account); |
960 | 1406 } |
4491 | 1407 } else if (account->gc) { |
1408 account->gc->wants_to_die = TRUE; | |
1409 signoff(account->gc); | |
3754 | 1410 } else { |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1411 if (account->protocol == GAIM_PROTO_TOC) |
3754 | 1412 do_error_dialog(_("TOC not found."), |
1413 _("You have attempted to login an IM account using the " | |
1414 "TOC protocol. Because this protocol is inferior to " | |
1415 "OSCAR, it is now compiled as a plugin by default. " | |
1416 "To login, edit this account to use OSCAR or load the " | |
1417 "TOC plugin."), GAIM_ERROR); | |
1418 else | |
1419 do_error_dialog(_("Protocol not found."), | |
1420 _("You cannot log this account in; you do not have " | |
1421 "the protocol it uses loaded, or the protocol does " | |
1422 "not have a login function."), GAIM_ERROR); | |
960 | 1423 } |
1424 } | |
3754 | 1425 |
1426 static void acct_autologin(GtkCellRendererToggle *cell, gchar *path_str, | |
1427 gpointer d) | |
2007
948a67a691a6
[gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1956
diff
changeset
|
1428 { |
3867 | 1429 GtkTreeModel *model = (GtkTreeModel *)d; |
1430 GtkTreeIter iter; | |
3754 | 1431 |
4491 | 1432 struct gaim_account *account = NULL; |
3754 | 1433 |
1434 gtk_tree_model_get_iter_from_string(model, &iter, path_str); | |
4491 | 1435 gtk_tree_model_get(model, &iter, COLUMN_DATA, &account, -1); |
3754 | 1436 |
4491 | 1437 account->options ^= OPT_ACCT_AUTO; |
3754 | 1438 |
1439 gtk_list_store_set(GTK_LIST_STORE(model), &iter, | |
4491 | 1440 COLUMN_AUTOLOGIN, (account->options & OPT_ACCT_AUTO), -1); |
3754 | 1441 |
1442 save_prefs(); | |
1443 } | |
1444 | |
4491 | 1445 static void do_del_acct(struct gaim_account *account) |
3754 | 1446 { |
1447 GtkTreeIter iter; | |
4785 | 1448 GaimBlistNode *gnode,*bnode; |
3754 | 1449 |
4491 | 1450 if (account->gc) { |
1451 account->gc->wants_to_die = TRUE; | |
1452 signoff(account->gc); | |
2007
948a67a691a6
[gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1956
diff
changeset
|
1453 } |
3754 | 1454 |
4491 | 1455 if (get_iter_from_data(GTK_TREE_VIEW(treeview), account, &iter)) { |
3754 | 1456 gtk_list_store_remove(GTK_LIST_STORE(model), &iter); |
1457 } | |
1458 | |
4349 | 1459 |
1460 /* remove the buddies for the account we just destroyed */ | |
4785 | 1461 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
1462 struct group *g = (struct group *)gnode; | |
1463 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) | |
1464 continue; | |
1465 for(bnode = gnode->child; bnode; bnode = bnode->next) { | |
5234 | 1466 if(GAIM_BLIST_NODE_IS_BUDDY(bnode)) { |
1467 struct buddy *b = (struct buddy *)bnode; | |
1468 if(b->account == account) | |
1469 gaim_blist_remove_buddy(b); | |
1470 } else if(GAIM_BLIST_NODE_IS_CHAT(bnode)) { | |
1471 struct chat *chat = (struct chat *)bnode; | |
1472 if(chat->account == account) | |
1473 gaim_blist_remove_chat(chat); | |
4349 | 1474 } |
1475 } | |
4785 | 1476 if(!gnode->child) { |
4687 | 1477 gaim_blist_remove_group(g); |
4349 | 1478 } |
1479 } | |
1480 | |
4491 | 1481 gaim_accounts = g_slist_remove(gaim_accounts, account); |
4349 | 1482 |
1483 gaim_blist_save(); | |
1484 | |
2007
948a67a691a6
[gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1956
diff
changeset
|
1485 save_prefs(); |
948a67a691a6
[gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1956
diff
changeset
|
1486 } |
948a67a691a6
[gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1956
diff
changeset
|
1487 |
3754 | 1488 static void del_acct_func(GtkTreeModel *model, GtkTreePath *path, |
1489 GtkTreeIter *iter, gpointer data) | |
1490 { | |
4491 | 1491 struct gaim_account *account; |
3754 | 1492 |
4491 | 1493 gtk_tree_model_get(model, iter, COLUMN_DATA, &account, -1); |
3754 | 1494 |
4491 | 1495 if (account != NULL) { |
3754 | 1496 char buf[8192]; |
1497 | |
1498 g_snprintf(buf, sizeof(buf), | |
4491 | 1499 _("Are you sure you want to delete %s?"), account->username); |
1500 do_ask_dialog(buf, NULL, account, _("Delete"), do_del_acct, _("Cancel"), NULL, NULL, FALSE); | |
3754 | 1501 } |
1502 } | |
1503 | |
960 | 1504 static void del_acct(GtkWidget *w, gpointer d) |
1505 { | |
3754 | 1506 GtkTreeSelection *selection; |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1507 |
3754 | 1508 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); |
1509 | |
1510 gtk_tree_selection_selected_foreach(selection, del_acct_func, NULL); | |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1511 } |
2007
948a67a691a6
[gaim-migrate @ 2017]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1956
diff
changeset
|
1512 |
960 | 1513 void account_editor(GtkWidget *w, GtkWidget *W) |
1514 { | |
1515 /* please kill me */ | |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1516 GtkWidget *vbox; |
960 | 1517 GtkWidget *hbox; |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1518 GtkWidget *sw; |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1519 GtkWidget *button; /* used for many things */ |
3754 | 1520 GtkWidget *sep; |
1521 GtkSizeGroup *sg; | |
960 | 1522 |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1523 if (acctedit) { |
3472 | 1524 gtk_window_present(GTK_WINDOW(acctedit)); |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1525 return; |
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1526 } |
3764 | 1527 |
960 | 1528 acctedit = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
4703 | 1529 gtk_window_set_title(GTK_WINDOW(acctedit), _("Account Editor")); |
4074 | 1530 gtk_window_set_role(GTK_WINDOW(acctedit), "accounteditor"); |
960 | 1531 gtk_widget_realize(acctedit); |
4635 | 1532 gtk_widget_set_size_request(acctedit, -1, 250); |
3755 | 1533 gtk_window_set_default_size(GTK_WINDOW(acctedit), 550, 250); |
4275 | 1534 g_signal_connect(GTK_OBJECT(acctedit), "delete_event", G_CALLBACK(on_delete_acctedit), W); |
960 | 1535 |
3754 | 1536 vbox = gtk_vbox_new(FALSE, 6); |
1537 gtk_container_set_border_width(GTK_CONTAINER(vbox), 6); | |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1538 gtk_container_add(GTK_CONTAINER(acctedit), vbox); |
960 | 1539 |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1540 sw = generate_list(); |
3754 | 1541 hbox = gtk_hbox_new(FALSE, 6); |
1542 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 6); | |
1543 | |
4550
972af41f277c
[gaim-migrate @ 4830]
Christian Hammond <chipx86@chipx86.com>
parents:
4493
diff
changeset
|
1544 gtk_box_pack_start(GTK_BOX(hbox), sw, TRUE, TRUE, 0); |
3754 | 1545 |
1546 #if 0 | |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1547 vbox2 = gtk_vbox_new(TRUE, 5); |
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1548 gtk_box_pack_start(GTK_BOX(hbox), vbox2, FALSE, FALSE, 0); |
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1549 |
3754 | 1550 button = gtk_button_new_from_stock(GTK_STOCK_REFRESH); |
1551 gtk_button_set_use_stock(GTK_BUTTON(button), FALSE); | |
1552 gtk_button_set_label(GTK_BUTTON(button), "Select All"); | |
1553 // button = picture_button2(acctedit, _("Select All"), tb_refresh_xpm, 2); | |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1554 gtk_box_pack_start(GTK_BOX(vbox2), button, TRUE, TRUE, 0); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1555 g_signal_connect_swapped(GTK_OBJECT(button), "clicked", |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1556 G_CALLBACK(gtk_clist_select_all), GTK_OBJECT(list)); |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1557 |
3754 | 1558 button = gtk_button_new_from_stock(GTK_STOCK_REDO); |
1559 gtk_button_set_use_stock(GTK_BUTTON(button), FALSE); | |
1560 // gtk_button_set_label(button, "Select Autos"); | |
1561 // button = picture_button2(acctedit, _("Select Autos"), tb_redo_xpm, 2); | |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1562 gtk_box_pack_start(GTK_BOX(vbox2), button, TRUE, TRUE, 0); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1563 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(sel_auto), NULL); |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1564 |
3754 | 1565 button = gtk_button_new_from_stock(GTK_STOCK_UNDO); |
1566 gtk_button_set_use_stock(GTK_BUTTON(button), FALSE); | |
1567 gtk_button_set_label(GTK_BUTTON(button), "Select None"); | |
1568 // button = picture_button2(acctedit, _("Select None"), tb_undo_xpm, 2); | |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1569 gtk_box_pack_start(GTK_BOX(vbox2), button, TRUE, TRUE, 0); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1570 g_signal_connect_swapped(GTK_OBJECT(button), "clicked", |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1571 G_CALLBACK(gtk_clist_unselect_all), GTK_OBJECT(list)); |
2008
6f049002d963
[gaim-migrate @ 2018]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2007
diff
changeset
|
1572 |
3754 | 1573 #endif |
960 | 1574 |
3754 | 1575 sep = gtk_hseparator_new(); |
1576 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); | |
1577 | |
1578 hbox = gtk_hbox_new(FALSE, 6); | |
1579 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1580 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
960 | 1581 |
3754 | 1582 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); |
1583 | |
3885 | 1584 button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); |
3754 | 1585 gtk_size_group_add_widget(sg, button); |
1586 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
4275 | 1587 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(on_close_acctedit), W); |
960 | 1588 |
3754 | 1589 button = gtk_button_new_from_stock(GTK_STOCK_DELETE); |
1590 gtk_size_group_add_widget(sg, button); | |
1591 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1592 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(del_acct), NULL); |
3754 | 1593 |
4114 | 1594 button = gaim_pixbuf_button_from_stock(_("_Modify"), GTK_STOCK_PREFERENCES, |
3754 | 1595 GAIM_BUTTON_HORIZONTAL); |
1596 gtk_size_group_add_widget(sg, button); | |
1597 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1598 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(mod_acct), NULL); |
960 | 1599 |
3754 | 1600 button = gtk_button_new_from_stock(GTK_STOCK_ADD); |
1601 gtk_size_group_add_widget(sg, button); | |
1602 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1603 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(add_acct), NULL); |
960 | 1604 |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1605 gtk_widget_show_all(acctedit); |
960 | 1606 } |
1607 | |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1608 struct signon_meter { |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1609 struct gaim_connection *gc; |
3060 | 1610 GtkWidget *button; |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1611 GtkWidget *progress; |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1612 GtkWidget *status; |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1613 }; |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1614 static GSList *meters = NULL; |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1615 |
4687 | 1616 GtkWidget* create_meter_pixmap (struct gaim_connection *gc) |
3060 | 1617 { |
4687 | 1618 GdkPixbuf *pb = create_prpl_icon(gc->account); |
1619 GdkPixbuf *scale = gdk_pixbuf_scale_simple(pb, 30,30,GDK_INTERP_BILINEAR); | |
1620 GtkWidget *image = | |
1621 gtk_image_new_from_pixbuf(scale); | |
1622 g_object_unref(G_OBJECT(pb)); | |
1623 g_object_unref(G_OBJECT(scale)); | |
1624 return image; | |
3060 | 1625 } |
1626 | |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1627 static struct signon_meter *find_signon_meter(struct gaim_connection *gc) |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1628 { |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1629 GSList *m = meters; |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1630 while (m) { |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1631 if (((struct signon_meter *)m->data)->gc == gc) |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1632 return m->data; |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1633 m = m->next; |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1634 } |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1635 return NULL; |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1636 } |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1637 |
3060 | 1638 void kill_meter(struct signon_meter *meter) { |
1639 gtk_widget_set_sensitive (meter->button, FALSE); | |
4275 | 1640 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(meter->progress), 1); |
3060 | 1641 gtk_statusbar_pop(GTK_STATUSBAR(meter->status), 1); |
4169 | 1642 gtk_statusbar_push(GTK_STATUSBAR(meter->status), 1, _("Done.")); |
3060 | 1643 meter_win->active_count--; |
1644 if (meter_win->active_count == 0) { | |
1645 gtk_widget_destroy(meter_win->window); | |
1646 g_free (meter_win); | |
1647 meter_win = NULL; | |
3554 | 1648 } |
3060 | 1649 } |
1650 | |
4890
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1651 void away_on_login(char *mesg) |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1652 { |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1653 GSList *awy = away_messages; |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1654 struct away_message *a, *message = NULL; |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1655 struct gaim_gtk_buddy_list *gtkblist; |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1656 |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1657 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1658 |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1659 if (!gtkblist->window) { |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1660 return; |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1661 } |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1662 |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1663 if (mesg == NULL) { |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1664 /* Use default message */ |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1665 do_away_message(NULL, default_away); |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1666 } else { |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1667 /* Use argument */ |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1668 while (awy) { |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1669 a = (struct away_message *)awy->data; |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1670 if (strcmp(a->name, mesg) == 0) { |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1671 message = a; |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1672 break; |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1673 } |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1674 awy = awy->next; |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1675 } |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1676 if (message == NULL) |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1677 message = default_away; |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1678 do_away_message(NULL, message); |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1679 } |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1680 return; |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1681 } |
89cb14edf8cf
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4856
diff
changeset
|
1682 |
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
1683 void account_online(struct gaim_connection *gc) |
960 | 1684 { |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1685 struct signon_meter *meter = find_signon_meter(gc); |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1686 GList *wins; |
3754 | 1687 GtkTreeIter iter; |
4785 | 1688 GaimBlistNode *gnode,*bnode; |
4349 | 1689 GList *add_buds=NULL; |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1690 GList *l; |
1002
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1691 |
4333 | 1692 /* Set the time the account came online */ |
1693 time(&gc->login_time); | |
1694 | |
1002
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1695 /* first we hide the login progress meter */ |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1696 if (meter) { |
3060 | 1697 kill_meter(meter); |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1698 meters = g_slist_remove(meters, meter); |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1699 g_free(meter); |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1700 } |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1701 |
1002
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1702 /* then we do the buddy list stuff */ |
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1703 if (mainwindow) |
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1704 gtk_widget_hide(mainwindow); |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1705 |
4687 | 1706 gaim_blist_show(); |
1002
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1707 |
3367 | 1708 update_privacy_connections(); |
1401
bf041349b11e
[gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1391
diff
changeset
|
1709 do_away_menu(); |
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1474
diff
changeset
|
1710 do_proto_menu(); |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1711 |
5234 | 1712 gaim_blist_add_account(gc->account); |
1713 | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1714 /* |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1715 * XXX This is a hack! Remove this and replace it with a better event |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1716 * notification system. |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1717 */ |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1718 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1719 struct gaim_window *win = (struct gaim_window *)wins->data; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1720 gaim_conversation_update(gaim_window_get_conversation_at(win, 0), |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1721 GAIM_CONV_ACCOUNT_ONLINE); |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1722 } |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1723 |
1002
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1724 gaim_setup(gc); |
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1725 |
4491 | 1726 gc->account->connecting = FALSE; |
3726 | 1727 connecting_count--; |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1728 gaim_debug(GAIM_DEBUG_MISC, "accounts", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1729 "Connecting count: %d\n", connecting_count); |
3570 | 1730 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1731 gaim_event_broadcast(event_signon, gc); |
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1499
diff
changeset
|
1732 system_log(log_signon, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); |
1002
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1733 |
1254
9da444224f0e
[gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1734 /* away option given? */ |
9da444224f0e
[gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1735 if (opt_away) { |
9da444224f0e
[gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1736 away_on_login(opt_away_arg); |
9da444224f0e
[gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1737 /* don't do it again */ |
9da444224f0e
[gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1738 opt_away = 0; |
1401
bf041349b11e
[gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1391
diff
changeset
|
1739 } else if (awaymessage) { |
bf041349b11e
[gaim-migrate @ 1411]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1391
diff
changeset
|
1740 serv_set_away(gc, GAIM_AWAY_CUSTOM, awaymessage->message); |
1254
9da444224f0e
[gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1741 } |
9da444224f0e
[gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1742 if (opt_away_arg != NULL) { |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2364
diff
changeset
|
1743 g_free(opt_away_arg); |
1254
9da444224f0e
[gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1744 opt_away_arg = NULL; |
9da444224f0e
[gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1745 } |
9da444224f0e
[gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1746 |
4349 | 1747 /* let the prpl know what buddies we pulled out of the local list */ |
4785 | 1748 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
1749 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) | |
1750 continue; | |
1751 for(bnode = gnode->child; bnode; bnode = bnode->next) { | |
5234 | 1752 if(GAIM_BLIST_NODE_IS_BUDDY(bnode)) { |
1753 struct buddy *b = (struct buddy *)bnode; | |
1754 if(b->account == gc->account) { | |
1755 add_buds = g_list_append(add_buds, b->name); | |
1756 } | |
4349 | 1757 } |
1758 } | |
1759 } | |
1760 | |
1761 if(add_buds) { | |
1762 serv_add_buddies(gc, add_buds); | |
1763 g_list_free(add_buds); | |
1764 } | |
1765 | |
1766 serv_set_permit_deny(gc); | |
1767 | |
1002
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1768 /* everything for the account editor */ |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1769 if (!acctedit) |
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1770 return; |
3754 | 1771 |
4491 | 1772 if (get_iter_from_data(GTK_TREE_VIEW(treeview), gc->account, &iter)) { |
3754 | 1773 gtk_list_store_set(model, &iter, |
1774 COLUMN_ONLINE, TRUE, | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
1775 COLUMN_PROTOCOL, gc->prpl->info->name, |
3754 | 1776 -1); |
1777 } | |
1002
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
1778 |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1779 /* Update the conversation windows that use this account. */ |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1780 for (l = gaim_get_conversations(); l != NULL; l = l->next) { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1781 struct gaim_conversation *conv = (struct gaim_conversation *)l->data; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1782 |
4491 | 1783 if (gaim_conversation_get_account(conv) == gc->account) { |
1784 gaim_conversation_update(conv, GAIM_CONV_UPDATE_ACCOUNT); | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1785 } |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1786 } |
960 | 1787 } |
1788 | |
1789 void account_offline(struct gaim_connection *gc) | |
1790 { | |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1791 struct signon_meter *meter = find_signon_meter(gc); |
3754 | 1792 GtkTreeIter iter; |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1793 GList *l; |
3754 | 1794 |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1795 if (meter) { |
3060 | 1796 kill_meter(meter); |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1797 meters = g_slist_remove(meters, meter); |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1798 g_free(meter); |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1799 } |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1800 |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1801 gaim_debug(GAIM_DEBUG_MISC, "accounts", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1802 "Disconnecting. user = %p, gc = %p (%p)\n", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1803 gc->account, gc->account->gc, gc); |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1804 |
4491 | 1805 gc->account->gc = NULL; /* wasn't that awkward? */ |
4388 | 1806 |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1807 if (!acctedit) |
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1808 return; |
3754 | 1809 |
4491 | 1810 if (get_iter_from_data(GTK_TREE_VIEW(treeview), gc->account, &iter)) { |
3754 | 1811 gtk_list_store_set(model, &iter, COLUMN_ONLINE, FALSE, -1); |
1812 } | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1813 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1814 /* Update the conversation windows that use this account. */ |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1815 for (l = gaim_get_conversations(); l != NULL; l = l->next) { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1816 struct gaim_conversation *conv = (struct gaim_conversation *)l->data; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1817 |
4491 | 1818 if (gaim_conversation_get_account(conv) == gc->account) { |
1819 gaim_conversation_update(conv, GAIM_CONV_UPDATE_ACCOUNT); | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1820 } |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
1821 } |
960 | 1822 } |
1823 | |
1824 void auto_login() | |
1825 { | |
4491 | 1826 GSList *accts = gaim_accounts; |
1827 struct gaim_account *a = NULL; | |
960 | 1828 |
4491 | 1829 while (accts) { |
1830 a = (struct gaim_account *)accts->data; | |
1831 if ((a->options & OPT_ACCT_AUTO) && (a->options & OPT_ACCT_REM_PASS)) { | |
980
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
977
diff
changeset
|
1832 serv_login(a); |
960 | 1833 } |
4491 | 1834 accts = accts->next; |
960 | 1835 } |
1836 } | |
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1837 |
3458 | 1838 /* |
1839 * d:)->-< | |
1840 * | |
1841 * d:O-\-< | |
1842 * | |
1843 * d:D-/-< | |
1844 * | |
1845 * d8D->-< DANCE! | |
1846 */ | |
1847 | |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1848 static void cancel_signon(GtkWidget *button, struct signon_meter *meter) |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1849 { |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1850 meter->gc->wants_to_die = TRUE; |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1851 signoff(meter->gc); |
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
1852 } |
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
1853 |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1854 static gint meter_destroy(GtkWidget *window, GdkEvent *evt, struct signon_meter *meter) |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1855 { |
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
1856 return TRUE; |
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1857 } |
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1858 |
3060 | 1859 static struct signon_meter *register_meter(struct gaim_connection *gc, GtkWidget *widget, GtkTable *table, gint *rows) |
1860 { | |
1861 GtkWidget *graphic; | |
3378 | 1862 GtkWidget *label; |
3060 | 1863 GtkWidget *nest_vbox; |
1864 GString *name_to_print; | |
1865 struct signon_meter *meter; | |
4491 | 1866 |
3060 | 1867 name_to_print = g_string_new(gc->username); |
4491 | 1868 |
3060 | 1869 meter = g_new0(struct signon_meter, 1); |
4491 | 1870 |
3060 | 1871 (*rows)++; |
1872 gtk_table_resize (table, *rows, 4); | |
4491 | 1873 |
4687 | 1874 graphic = create_meter_pixmap(gc); |
4491 | 1875 |
3060 | 1876 nest_vbox = gtk_vbox_new (FALSE, 0); |
4491 | 1877 |
4225 | 1878 g_string_prepend(name_to_print, _("Signon: ")); |
3378 | 1879 label = gtk_label_new (name_to_print->str); |
4225 | 1880 g_string_free(name_to_print, TRUE); |
3378 | 1881 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); |
4491 | 1882 |
3060 | 1883 meter->status = gtk_statusbar_new(); |
4639 | 1884 gtk_widget_set_size_request(meter->status, 250, -1); |
4491 | 1885 |
3060 | 1886 meter->progress = gtk_progress_bar_new (); |
4491 | 1887 |
5024 | 1888 meter->button = gaim_pixbuf_button_from_stock (_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1889 g_signal_connect (GTK_OBJECT (meter->button), "clicked", G_CALLBACK (cancel_signon), meter); |
4491 | 1890 |
3060 | 1891 gtk_table_attach (GTK_TABLE (table), graphic, 0, 1, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); |
1892 gtk_table_attach (GTK_TABLE (table), nest_vbox, 1, 2, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); | |
3378 | 1893 gtk_box_pack_start (GTK_BOX (nest_vbox), GTK_WIDGET (label), FALSE, FALSE, 0); |
3060 | 1894 gtk_box_pack_start (GTK_BOX (nest_vbox), GTK_WIDGET (meter->status), FALSE, FALSE, 0); |
1895 gtk_table_attach (GTK_TABLE (table), meter->progress, 2, 3, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); | |
1896 gtk_table_attach (GTK_TABLE (table), meter->button, 3, 4, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); | |
1897 | |
1898 gtk_widget_show_all (GTK_WIDGET (meter_win->window)); | |
4491 | 1899 |
3060 | 1900 meter_win->active_count++; |
4491 | 1901 |
3060 | 1902 return meter; |
1903 } | |
1904 | |
1905 static void loop_cancel () { | |
1906 GSList *m = meters; | |
1907 struct signon_meter *meter = NULL; | |
1908 | |
1909 while (m) { | |
1910 meter = (struct signon_meter *) (m->data); | |
1911 meter->gc->wants_to_die = TRUE; | |
1912 signoff((struct gaim_connection *) meter->gc); | |
1913 m = meters; | |
1914 } | |
1915 } | |
1916 | |
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1917 void set_login_progress(struct gaim_connection *gc, float howfar, char *message) |
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1172
diff
changeset
|
1918 { |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1919 struct signon_meter *meter = find_signon_meter(gc); |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1920 |
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1921 if (mainwindow) |
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1922 gtk_widget_hide(mainwindow); |
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1923 |
3060 | 1924 if (!meter_win) { |
1925 GtkWidget *cancel_button; | |
1926 GtkWidget *vbox; | |
4635 | 1927 |
3060 | 1928 meter_win = g_new0(struct meter_window, 1); |
1929 meter_win->rows=0; | |
4635 | 1930 |
3060 | 1931 meter_win->window = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
1932 GAIM_DIALOG(meter_win->window); | |
4635 | 1933 gtk_window_set_resizable(GTK_WINDOW(meter_win->window), FALSE); |
4074 | 1934 gtk_window_set_role(GTK_WINDOW(meter_win->window), "signon"); |
3060 | 1935 gtk_container_set_border_width(GTK_CONTAINER(meter_win->window), 5); |
4703 | 1936 gtk_window_set_title (GTK_WINDOW (meter_win->window), _("Signon")); |
3060 | 1937 gtk_widget_realize(meter_win->window); |
4635 | 1938 |
3060 | 1939 vbox = gtk_vbox_new (FALSE, 0); |
1940 gtk_container_add (GTK_CONTAINER (meter_win->window), GTK_WIDGET (vbox)); | |
1941 | |
1942 meter_win->table = (GtkTable *) gtk_table_new (1 , 4, FALSE); | |
1943 gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (meter_win->table), FALSE, FALSE, 0); | |
1944 gtk_container_set_border_width (GTK_CONTAINER (meter_win->table), 5); | |
1945 gtk_table_set_row_spacings (GTK_TABLE (meter_win->table), 5); | |
1946 gtk_table_set_col_spacings (GTK_TABLE (meter_win->table), 10); | |
1947 | |
5024 | 1948 cancel_button = gaim_pixbuf_button_from_stock (_("Cancel All"), GTK_STOCK_QUIT, GAIM_BUTTON_HORIZONTAL); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1949 g_signal_connect_swapped (GTK_OBJECT (cancel_button), "clicked", G_CALLBACK (loop_cancel), NULL); |
3060 | 1950 gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (cancel_button), FALSE, FALSE, 0); |
1951 | |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
1952 g_signal_connect (GTK_OBJECT (meter_win->window), "delete_event", G_CALLBACK (meter_destroy), NULL); |
4987 | 1953 } |
3060 | 1954 |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1955 if (!meter) { |
3060 | 1956 meter = register_meter(gc, GTK_WIDGET (meter_win->window), GTK_TABLE (meter_win->table), (gint *) &meter_win->rows); |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1957 meter->gc = gc; |
2403
8555e48c02df
[gaim-migrate @ 2416]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2402
diff
changeset
|
1958 meters = g_slist_append(meters, meter); |
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1959 } |
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1960 |
4275 | 1961 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(meter->progress), howfar / LOGIN_STEPS); |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1962 gtk_statusbar_pop(GTK_STATUSBAR(meter->status), 1); |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
1963 gtk_statusbar_push(GTK_STATUSBAR(meter->status), 1, message); |
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1964 } |
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1965 |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1966 struct kick_dlg { |
4491 | 1967 struct gaim_account *account; |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1968 GtkWidget *dlg; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1969 }; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1970 static GSList *kicks = NULL; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1971 |
4491 | 1972 static struct kick_dlg *find_kick_dlg(struct gaim_account *account) |
1817
b367beee6448
[gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1772
diff
changeset
|
1973 { |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1974 GSList *k = kicks; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1975 while (k) { |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1976 struct kick_dlg *d = k->data; |
4491 | 1977 if (d->account == account) |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1978 return d; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1979 k = k->next; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1980 } |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1981 return NULL; |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1982 } |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1983 |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1984 static void set_kick_null(GtkObject *obj, struct kick_dlg *k) |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1985 { |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1986 kicks = g_slist_remove(kicks, k); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
1987 g_free(k); |
1817
b367beee6448
[gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1772
diff
changeset
|
1988 } |
b367beee6448
[gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1772
diff
changeset
|
1989 |
2956 | 1990 /* |
1991 * Common code for hide_login_progress(), and hide_login_progress_info() | |
1992 */ | |
1993 static void hide_login_progress_common(struct gaim_connection *gc, | |
1994 char *details, | |
1995 char *title, | |
1996 char *prologue) | |
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
1997 { |
4617 | 1998 gchar *buf; |
4491 | 1999 struct kick_dlg *k = find_kick_dlg(gc->account); |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
2000 struct signon_meter *meter = find_signon_meter(gc); |
4617 | 2001 buf = g_strdup_printf(_("%s\n%s: %s"), full_date(), prologue, details); |
2442
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
2002 if (k) |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
2003 gtk_widget_destroy(k->dlg); |
895e2469cb3a
[gaim-migrate @ 2455]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2438
diff
changeset
|
2004 k = g_new0(struct kick_dlg, 1); |
4491 | 2005 k->account = gc->account; |
3427 | 2006 k->dlg = do_error_dialog(title, buf, GAIM_ERROR); |
2709
df0832a9ccec
[gaim-migrate @ 2722]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2707
diff
changeset
|
2007 kicks = g_slist_append(kicks, k); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4114
diff
changeset
|
2008 g_signal_connect(GTK_OBJECT(k->dlg), "destroy", G_CALLBACK(set_kick_null), k); |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
2009 if (meter) { |
3060 | 2010 kill_meter(meter); |
2402
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
2011 meters = g_slist_remove(meters, meter); |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
2012 g_free(meter); |
6e3dc0b3b9b1
[gaim-migrate @ 2415]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2397
diff
changeset
|
2013 } |
4617 | 2014 g_free(buf); |
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
2015 } |
1355
04874e92af24
[gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
2016 |
2956 | 2017 void hide_login_progress(struct gaim_connection *gc, char *why) |
2018 { | |
4617 | 2019 gchar *buf; |
2956 | 2020 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
2021 gaim_event_broadcast(event_error, gc, why); |
4617 | 2022 buf = g_strdup_printf(_("%s was unable to sign on"), gc->username); |
2956 | 2023 hide_login_progress_common(gc, why, _("Signon Error"), buf); |
4617 | 2024 g_free(buf); |
2956 | 2025 } |
2026 | |
2027 /* | |
2028 * Like hide_login_progress(), but for informational, not error/warning, | |
2029 * messages. | |
2030 * | |
2031 */ | |
2032 void hide_login_progress_notice(struct gaim_connection *gc, char *why) | |
2033 { | |
2034 hide_login_progress_common(gc, why, _("Notice"), gc->username); | |
2035 } | |
2036 | |
3074 | 2037 /* |
2038 * Like hide_login_progress(), but for non-signon error messages. | |
2039 * | |
2040 */ | |
2041 void hide_login_progress_error(struct gaim_connection *gc, char *why) | |
2042 { | |
2043 char buf[2048]; | |
4617 | 2044 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
2045 gaim_event_broadcast(event_error, gc, why); |
3074 | 2046 g_snprintf(buf, sizeof(buf), _("%s has been signed off"), gc->username); |
2047 hide_login_progress_common(gc, why, _("Connection Error"), buf); | |
2048 } | |
2049 | |
2559
e49ab50736bf
[gaim-migrate @ 2572]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2525
diff
changeset
|
2050 void signoff_all() |
2380
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2051 { |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2052 GSList *c = connections; |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2053 struct gaim_connection *g = NULL; |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2054 |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2055 while (c) { |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2056 g = (struct gaim_connection *)c->data; |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2057 g->wants_to_die = TRUE; |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2058 signoff(g); |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2059 c = connections; |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2060 } |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2061 } |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2062 |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2063 void signoff(struct gaim_connection *gc) |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2064 { |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2065 GList *wins; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2066 |
4687 | 2067 gaim_blist_remove_account(gc->account); |
3510 | 2068 |
2380
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2069 /* core stuff */ |
3510 | 2070 /* remove this here so plugins get a sensible count of connections */ |
2071 connections = g_slist_remove(connections, gc); | |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
2072 gaim_debug(GAIM_DEBUG_MISC, "accounts", "date: %s\n", full_date()); |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5068
diff
changeset
|
2073 gaim_event_broadcast(event_signoff, gc); |
2380
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2074 system_log(log_signoff, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); |
3510 | 2075 /* set this in case the plugin died before really connecting. |
2076 do it after calling the plugins so they can determine if | |
2077 this user was ever on-line or not */ | |
4491 | 2078 if (gc->account->connecting) { |
2079 gc->account->connecting = FALSE; | |
3726 | 2080 connecting_count--; |
3517 | 2081 } |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
2082 gaim_debug(GAIM_DEBUG_MISC, "accounts", "connecting_count: %d\n", |
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
2083 connecting_count); |
3510 | 2084 serv_close(gc); |
2380
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2085 |
3510 | 2086 /* more UI stuff */ |
2380
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2087 do_away_menu(); |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2088 do_proto_menu(); |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2089 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2090 /* |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2091 * XXX This is a hack! Remove this and replace it with a better event |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2092 * notification system. |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2093 */ |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2094 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2095 struct gaim_window *win = (struct gaim_window *)wins->data; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2096 gaim_conversation_update(gaim_window_get_conversation_at(win, 0), |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2097 GAIM_CONV_ACCOUNT_OFFLINE); |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2098 } |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
2099 |
3367 | 2100 update_privacy_connections(); |
2380
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2101 |
3510 | 2102 /* in, out, shake it all about */ |
2380
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2103 if (connections) |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2104 return; |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2105 |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2106 destroy_all_dialogs(); |
4687 | 2107 gaim_blist_destroy(); |
3472 | 2108 |
2380
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2109 show_login(); |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2110 } |
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
2111 |
4491 | 2112 struct gaim_account *gaim_account_new(const char *name, int proto, int opts) |
1355
04874e92af24
[gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
2113 { |
4491 | 2114 struct gaim_account *account = g_new0(struct gaim_account, 1); |
2115 g_snprintf(account->username, sizeof(account->username), "%s", name); | |
2116 g_snprintf(account->user_info, sizeof(account->user_info), "%s", DEFAULT_INFO); | |
2117 account->protocol = proto; | |
2118 account->options = opts; | |
2119 account->permit = NULL; | |
2120 account->deny = NULL; | |
2121 gaim_accounts = g_slist_append(gaim_accounts, account); | |
1355
04874e92af24
[gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
2122 |
3754 | 2123 if (treeview) { |
2124 GtkTreeIter iter; | |
2125 | |
2126 gtk_list_store_append(model, &iter); | |
2127 gtk_list_store_set(model, &iter, | |
4491 | 2128 COLUMN_SCREENNAME, account->username, |
2129 COLUMN_ONLINE, (account->gc ? TRUE : FALSE), | |
2130 COLUMN_AUTOLOGIN, (account->options & OPT_ACCT_AUTO), | |
2131 COLUMN_PROTOCOL, proto_name(account->protocol), | |
2132 COLUMN_DATA, account, | |
3754 | 2133 -1); |
1355
04874e92af24
[gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
2134 } |
04874e92af24
[gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
2135 |
4491 | 2136 return account; |
1355
04874e92af24
[gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
2137 } |