Mercurial > pidgin.yaz
comparison src/gtkconn.c @ 7625:1ffe44bb2573
[gaim-migrate @ 8249]
1) removed a duplicate copy of one function. it was quite literally duplicate: it looked like an example of paste gone arry, like some of my commit messages.
2)" This is an update to make the disconnect dialog work
better w/ the autoreconnect plugin and the accounts
dialog.
If any account on the list are reconnected (by anything
that uses the "signed-on" signal, which should cover all
bases), it will be removed from the list.
Of course, the single-multiple behavior (show list or just
message) still happens, and if it is there are no more
disconnected accounts, the dialog will be closed." --Daniel Atallah (datallah)
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Mon, 24 Nov 2003 14:27:01 +0000 |
parents | 83453431d722 |
children | 6afe28251c85 |
comparison
equal
deleted
inserted
replaced
7624:8df31c1aca4a | 7625:1ffe44bb2573 |
---|---|
339 label_text = g_value_get_string(&val); | 339 label_text = g_value_get_string(&val); |
340 gtk_label_set_markup(GTK_LABEL(disconnect_window->label), label_text); | 340 gtk_label_set_markup(GTK_LABEL(disconnect_window->label), label_text); |
341 g_value_unset(&val); | 341 g_value_unset(&val); |
342 } | 342 } |
343 | 343 |
344 static void disconnect_signed_on_cb(GaimConnection *gc, void *data) | |
345 { | |
346 if (disconnect_window) { | |
347 GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(disconnect_window->treeview)); | |
348 GtkTreeIter iter; | |
349 if (gtk_tree_model_get_iter_first(model, &iter)) { | |
350 GaimAccount *account = NULL; | |
351 do { | |
352 GValue val = { 0, }; | |
353 gtk_tree_model_get_value(model, &iter, 4, &val); | |
354 account = g_value_get_pointer(&val); | |
355 g_value_unset(&val); | |
356 if (account == gaim_connection_get_account(gc)) { | |
357 gtk_list_store_remove(GTK_LIST_STORE(model), &iter); | |
358 | |
359 if (!gtk_tree_model_get_iter_first(model, &iter)) | |
360 disconnect_window_hide(); | |
361 else { | |
362 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(disconnect_window->treeview)); | |
363 gtk_tree_selection_select_iter(sel, &iter); | |
364 if (!gtk_tree_model_iter_next(model, &iter)) | |
365 gtk_widget_hide_all(disconnect_window->sw); | |
366 } | |
367 break; | |
368 } | |
369 } while (gtk_tree_model_iter_next(model, &iter)); | |
370 } | |
371 } | |
372 } | |
344 | 373 |
345 static void | 374 static void |
346 gaim_gtk_connection_report_disconnect(GaimConnection *gc, const char *text) | 375 gaim_gtk_connection_report_disconnect(GaimConnection *gc, const char *text) |
347 { | 376 { |
348 char *label_text = NULL; | 377 char *label_text = NULL; |
421 | 450 |
422 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (disconnect_window->treeview)); | 451 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (disconnect_window->treeview)); |
423 gtk_widget_set_size_request(disconnect_window->treeview, -1, 96); | 452 gtk_widget_set_size_request(disconnect_window->treeview, -1, 96); |
424 g_signal_connect (G_OBJECT (sel), "changed", | 453 g_signal_connect (G_OBJECT (sel), "changed", |
425 G_CALLBACK (disconnect_tree_cb), list_store); | 454 G_CALLBACK (disconnect_tree_cb), list_store); |
455 | |
456 gaim_signal_connect(gaim_connections_get_handle(), "signed-on", | |
457 disconnect_window, GAIM_CALLBACK(disconnect_signed_on_cb), NULL); | |
458 | |
426 } else | 459 } else |
427 list_store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(disconnect_window->treeview))); | 460 list_store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(disconnect_window->treeview))); |
428 | 461 |
429 /* If this account is already in our list then remove it */ | 462 /* If this account is already in our list then remove it */ |
430 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(list_store), &iter)) { | 463 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(list_store), &iter)) { |