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