comparison pidgin/gtkblist.c @ 21845:45d1e229fadd

Dismissing the signed on elsewhere minidialog should clear all the errors; otherwise the minidialog comes back whenever you restart. (Other errors are already cleared when you close their minidialog.)
author Will Thompson <will.thompson@collabora.co.uk>
date Mon, 17 Dec 2007 12:09:19 +0000
parents 6a287408bc54
children 5814ae85e756
comparison
equal deleted inserted replaced
21838:a9347b5101a9 21845:45d1e229fadd
4641 { 4641 {
4642 elsewhere_foreach_account(mini_dialog, enable_account); 4642 elsewhere_foreach_account(mini_dialog, enable_account);
4643 } 4643 }
4644 4644
4645 static void 4645 static void
4646 clear_elsewhere_errors(PidginMiniDialog *mini_dialog,
4647 gpointer unused)
4648 {
4649 elsewhere_foreach_account(mini_dialog, purple_account_clear_current_error);
4650 }
4651
4652 static void
4646 ensure_signed_on_elsewhere_minidialog(PidginBuddyList *gtkblist) 4653 ensure_signed_on_elsewhere_minidialog(PidginBuddyList *gtkblist)
4647 { 4654 {
4648 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); 4655 PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist);
4649 PidginMiniDialog *mini_dialog; 4656 PidginMiniDialog *mini_dialog;
4650 4657
4654 mini_dialog = priv->signed_on_elsewhere = 4661 mini_dialog = priv->signed_on_elsewhere =
4655 pidgin_mini_dialog_new(_("Welcome back!"), NULL, PIDGIN_STOCK_DISCONNECT); 4662 pidgin_mini_dialog_new(_("Welcome back!"), NULL, PIDGIN_STOCK_DISCONNECT);
4656 4663
4657 pidgin_mini_dialog_add_button(mini_dialog, _("Re-enable"), 4664 pidgin_mini_dialog_add_button(mini_dialog, _("Re-enable"),
4658 reconnect_elsewhere_accounts, NULL); 4665 reconnect_elsewhere_accounts, NULL);
4666
4667 /* Make dismissing the dialog clear the errors. The "destroy" signal
4668 * does not appear to fire at quit, which is fortunate!
4669 */
4670 g_signal_connect(G_OBJECT(mini_dialog), "destroy",
4671 (GCallback) clear_elsewhere_errors, NULL);
4659 4672
4660 add_error_dialog(gtkblist, GTK_WIDGET(mini_dialog)); 4673 add_error_dialog(gtkblist, GTK_WIDGET(mini_dialog));
4661 4674
4662 /* Set priv->signed_on_elsewhere to NULL when the dialog is destroyed */ 4675 /* Set priv->signed_on_elsewhere to NULL when the dialog is destroyed */
4663 g_signal_connect(G_OBJECT(mini_dialog), "destroy", 4676 g_signal_connect(G_OBJECT(mini_dialog), "destroy",