Mercurial > pidgin.yaz
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", |