From 3ae8c5c93dacdbbe3a46c970d9095b587f98627d Mon Sep 17 00:00:00 2001 From: Sushma Rai Date: Tue, 24 Jan 2006 10:03:52 +0000 Subject: Making the warning and error dialogs non-modal. Fixes #328385. svn path=/trunk/; revision=31295 --- plugins/exchange-operations/ChangeLog | 8 ++++++++ .../exchange-operations/exchange-config-listener.c | 22 +++++++++++++++------- plugins/exchange-operations/exchange-operations.c | 17 ++++++++++------- 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/plugins/exchange-operations/ChangeLog b/plugins/exchange-operations/ChangeLog index 5b608f3978..f8eb7544af 100644 --- a/plugins/exchange-operations/ChangeLog +++ b/plugins/exchange-operations/ChangeLog @@ -1,3 +1,11 @@ +2006-01-24 Sushma Rai + + * exchange-config-listener.c (exchange_config_listener_authenticate): + Not using e_error_run(), to avoid modal error dialogs. Fixes #328385. + + * exchange-operations.c (exchange_operations_report_error): Similar. + Also displaying the current quota usage instead of the quota limit. + 2006-01-23 Sushma Rai * exchange-operations.c diff --git a/plugins/exchange-operations/exchange-config-listener.c b/plugins/exchange-operations/exchange-config-listener.c index 034531b2c4..0570ea6704 100644 --- a/plugins/exchange-operations/exchange-config-listener.c +++ b/plugins/exchange-operations/exchange-config-listener.c @@ -716,30 +716,38 @@ exchange_config_listener_authenticate (ExchangeConfigListener *ex_conf_listener, else if (result == EXCHANGE_ACCOUNT_QUOTA_RECIEVE_ERROR || result == EXCHANGE_ACCOUNT_QUOTA_SEND_ERROR || result == EXCHANGE_ACCOUNT_QUOTA_WARN) { - gchar *current_quota_usage; + gchar *current_quota_usage = NULL; + const char *error_code; + GtkWidget *widget; switch (result) { case EXCHANGE_ACCOUNT_QUOTA_RECIEVE_ERROR: current_quota_usage = g_strdup_printf ("%.2f", account->mbox_size); - e_error_run (NULL, "org-gnome-exchange-operations:account-quota-error", current_quota_usage); - g_free (current_quota_usage); + error_code = "org-gnome-exchange-operations:account-quota-error"; break; case EXCHANGE_ACCOUNT_QUOTA_SEND_ERROR: current_quota_usage = g_strdup_printf ("%.2f", account->mbox_size); - e_error_run (NULL, "org-gnome-exchange-operations:account-quota-send-error", current_quota_usage); - g_free (current_quota_usage); + error_code = "org-gnome-exchange-operations:account-quota-send-error"; break; case EXCHANGE_ACCOUNT_QUOTA_WARN: current_quota_usage = g_strdup_printf ("%.2f", account->mbox_size); - e_error_run (NULL, "org-gnome-exchange-operations:account-quota-warn", current_quota_usage); - g_free (current_quota_usage); + error_code = "org-gnome-exchange-operations:account-quota-warn"; break; default: break; } + + if (current_quota_usage) { + widget = e_error_new (NULL, error_code, current_quota_usage); + g_signal_connect ((GtkDialog *)widget, "response", + G_CALLBACK (gtk_widget_destroy), widget); + gtk_widget_show (widget); + g_free (current_quota_usage); + } + /* reset result, so that we check if the password * expiry warning period */ diff --git a/plugins/exchange-operations/exchange-operations.c b/plugins/exchange-operations/exchange-operations.c index 8407024904..166fba4b11 100644 --- a/plugins/exchange-operations/exchange-operations.c +++ b/plugins/exchange-operations/exchange-operations.c @@ -223,6 +223,7 @@ exchange_operations_report_error (ExchangeAccount *account, ExchangeAccountResul { gchar *error_string; gchar *quota_value; + GtkWidget *widget; g_return_if_fail (account != NULL); @@ -233,27 +234,29 @@ exchange_operations_report_error (ExchangeAccount *account, ExchangeAccountResul switch (result) { case EXCHANGE_ACCOUNT_MAILBOX_NA: - e_error_run (NULL, error_string, exchange_account_get_username (account), NULL); + widget = e_error_new (NULL, error_string, exchange_account_get_username (account), NULL); break; case EXCHANGE_ACCOUNT_NO_MAILBOX: - e_error_run (NULL, error_string, exchange_account_get_username (account), - account->exchange_server, NULL); + widget = e_error_new (NULL, error_string, exchange_account_get_username (account), + account->exchange_server, NULL); break; case EXCHANGE_ACCOUNT_RESOLVE_ERROR: case EXCHANGE_ACCOUNT_CONNECT_ERROR: case EXCHANGE_ACCOUNT_UNKNOWN_ERROR: - e_error_run (NULL, error_string, account->exchange_server, NULL); + widget = e_error_new (NULL, error_string, account->exchange_server, NULL); break; case EXCHANGE_ACCOUNT_QUOTA_RECIEVE_ERROR: case EXCHANGE_ACCOUNT_QUOTA_SEND_ERROR: case EXCHANGE_ACCOUNT_QUOTA_WARN: - quota_value = g_strdup_printf ("%d", exchange_account_get_quota_limit (account)); - e_error_run (NULL, error_string, quota_value, NULL); + quota_value = g_strdup_printf ("%.2f", account->mbox_size); + widget = e_error_new (NULL, error_string, quota_value, NULL); g_free (quota_value); break; default: - e_error_run (NULL, error_string, NULL); + widget = e_error_new (NULL, error_string, NULL); } + g_signal_connect ((GtkDialog *)widget, "response", G_CALLBACK (gtk_widget_destroy), widget); + gtk_widget_show (widget); g_free (error_string); } -- cgit v1.2.3