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