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