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