diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2001-09-26 04:16:14 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2001-09-26 04:16:14 +0800 |
commit | 70a6a65a5607ab0003c25bd64a4338baa47d1dd5 (patch) | |
tree | 83b463e1ddcc692335e5d82b082ace39de3b386c /mail | |
parent | 9c2f01c606823e1f6a0d77bbd0590ef8079f05d5 (diff) | |
download | gsoc2013-evolution-70a6a65a5607ab0003c25bd64a4338baa47d1dd5.tar.gz gsoc2013-evolution-70a6a65a5607ab0003c25bd64a4338baa47d1dd5.tar.zst gsoc2013-evolution-70a6a65a5607ab0003c25bd64a4338baa47d1dd5.zip |
Throw up a warning dialog if we suspect the config database is corrupt.
2001-09-25 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (owner_set_cb): Throw up a warning dialog if
we suspect the config database is corrupt.
* mail-config.c (config_read): If the account name is NULL, then
we have a corrupt config database most likely - so generate a fake
account name and set the corrupt but to TRUE.
(mail_config_is_corrupt): New function to find out if the config
is suspected of being corrupted.
svn path=/trunk/; revision=13116
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 18 | ||||
-rw-r--r-- | mail/component-factory.c | 18 | ||||
-rw-r--r-- | mail/mail-config.c | 25 | ||||
-rw-r--r-- | mail/mail-config.h | 1 |
4 files changed, 53 insertions, 9 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 12b080bb2f..37bbec983f 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,11 +1,23 @@ +2001-09-25 Jeffrey Stedfast <fejj@ximian.com> + + * component-factory.c (owner_set_cb): Throw up a warning dialog if + we suspect the config database is corrupt. + + * mail-config.c (config_read): If the account name is NULL, then + we have a corrupt config database most likely - so generate a fake + account name and set the corrupt but to TRUE. + (mail_config_is_corrupt): New function to find out if the config + is suspected of being corrupted. + 2001-09-25 Iain Holmes <iain@ximian.com> - * mail-config.c (impl_GNOME_Evolution_MailConfig_addAccount): Check - if the transport is NULL. + * mail-config.c (impl_GNOME_Evolution_MailConfig_addAccount): + Check if the transport is NULL. 2001-09-25 Iain Holmes <iain@ximian.com> - * mail-display.c (link_menu): Remove the Save Link as (FIXME) item. + * mail-display.c (link_menu): Remove the Save Link as (FIXME) + item. 2001-09-25 Jeffrey Stedfast <fejj@ximian.com> diff --git a/mail/component-factory.c b/mail/component-factory.c index 87f4fadbc2..cddf142891 100644 --- a/mail/component-factory.c +++ b/mail/component-factory.c @@ -636,6 +636,12 @@ shell_client_destroy (GtkObject *object) } static void +warning_clicked (GtkWidget *dialog, gpointer user_data) +{ + gtk_widget_destroy (dialog); +} + +static void owner_set_cb (EvolutionShellComponent *shell_component, EvolutionShellClient *shell_client, const char *evolution_homedir, @@ -679,10 +685,20 @@ owner_set_cb (EvolutionShellComponent *shell_component, } mail_session_enable_interaction (TRUE); - + vfolder_load_storage(corba_shell); mail_autoreceive_setup (); + + if (mail_config_is_corrupt ()) { + GtkWidget *dialog; + + dialog = gnome_warning_dialog (_("Some of your mail settings seem corrupt, " + "please check that everything is in order.")); + gtk_signal_connect (GTK_OBJECT (dialog), "clicked", warning_clicked, NULL); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_widget_show (dialog); + } } static void diff --git a/mail/mail-config.c b/mail/mail-config.c index 115e1d0d28..0eef9edf16 100644 --- a/mail/mail-config.c +++ b/mail/mail-config.c @@ -58,6 +58,8 @@ typedef struct { Bonobo_ConfigDatabase db; + gboolean corrupt; + gboolean show_preview; gboolean thread_list; gboolean hide_deleted; @@ -284,7 +286,7 @@ mail_config_clear (void) static void config_read (void) { - gint len, i, default_num; + int len, i, default_num; mail_config_clear (); @@ -296,12 +298,19 @@ config_read (void) MailConfigIdentity *id; MailConfigService *source; MailConfigService *transport; - gchar *path, *val; + char *path, *val; account = g_new0 (MailConfigAccount, 1); path = g_strdup_printf ("/Mail/Accounts/account_name_%d", i); - account->name = bonobo_config_get_string (config->db, path, NULL); + val = bonobo_config_get_string (config->db, path, NULL); g_free (path); + if (val && *val) { + account->name = val; + } else { + g_free (val); + account->name = g_strdup_printf (_("Account %d"), i + 1); + config->corrupt = TRUE; + } path = g_strdup_printf ("/Mail/Accounts/account_drafts_folder_name_%d", i); val = bonobo_config_get_string (config->db, path, NULL); @@ -593,7 +602,7 @@ void mail_config_write (void) { CORBA_Environment ev; - gint len, i, default_num; + int len, i, default_num; /* Accounts */ @@ -617,7 +626,7 @@ mail_config_write (void) for (i = 0; i < len; i++) { MailConfigAccount *account; - gchar *path; + char *path; account = g_slist_nth_data (config->accounts, i); @@ -903,6 +912,12 @@ mail_config_is_configured (void) return config->accounts != NULL; } +gboolean +mail_config_is_corrupt (void) +{ + return config->corrupt; +} + static char * uri_to_key (const char *uri) { diff --git a/mail/mail-config.h b/mail/mail-config.h index 10bce30d07..141c2bba22 100644 --- a/mail/mail-config.h +++ b/mail/mail-config.h @@ -106,6 +106,7 @@ void mail_config_write_on_exit (void); /* General Accessor functions */ gboolean mail_config_is_configured (void); +gboolean mail_config_is_corrupt (void); gboolean mail_config_get_filter_log (void); void mail_config_set_filter_log (gboolean value); |