diff options
Diffstat (limited to 'mail/mail-config.c')
-rw-r--r-- | mail/mail-config.c | 105 |
1 files changed, 61 insertions, 44 deletions
diff --git a/mail/mail-config.c b/mail/mail-config.c index de98723925..67eee583a9 100644 --- a/mail/mail-config.c +++ b/mail/mail-config.c @@ -73,6 +73,7 @@ typedef struct { char *pgp_path; CamelPgpType pgp_type; + gboolean remember_pgp_passphrase; MailConfigHTTPMode http_mode; MailConfigForwardStyle default_forward_style; @@ -510,10 +511,13 @@ config_read (void) /* PGP/GPG */ config->pgp_path = bonobo_config_get_string (config->db, "/Mail/PGP/path", NULL); - + config->pgp_type = bonobo_config_get_long_with_default (config->db, "/Mail/PGP/type", CAMEL_PGP_TYPE_NONE, NULL); - + + config->remember_pgp_passphrase = bonobo_config_get_boolean_with_default ( + config->db, "/Mail/PGP/remember_passphrase", TRUE, NULL); + /* HTTP images */ config->http_mode = bonobo_config_get_long_with_default (config->db, "/Mail/Display/http_images", MAIL_CONFIG_HTTP_SOMETIMES, NULL); @@ -527,11 +531,11 @@ config_read (void) config->message_display_style = bonobo_config_get_long_with_default ( config->db, "/Mail/Format/message_display_style", MAIL_CONFIG_DISPLAY_NORMAL, NULL); - + /* Default charset */ config->default_charset = bonobo_config_get_string (config->db, "/Mail/Format/default_charset", NULL); - + if (!config->default_charset) { g_get_charset (&config->default_charset); if (!config->default_charset || @@ -540,7 +544,7 @@ config_read (void) else config->default_charset = g_strdup (config->default_charset); } - + /* Trash folders */ config->empty_trash_on_exit = bonobo_config_get_boolean_with_default ( config->db, "/Mail/Trash/empty_on_exit", FALSE, NULL); @@ -553,10 +557,10 @@ mail_config_write (void) gint len, i, default_num; /* Accounts */ - + if (!config) return; - + CORBA_exception_init (&ev); Bonobo_ConfigDatabase_removeDir (config->db, "/Mail/Accounts", &ev); CORBA_exception_init (&ev); @@ -567,11 +571,11 @@ mail_config_write (void) len = g_slist_length (config->accounts); bonobo_config_set_long (config->db, "/Mail/Accounts/num", len, NULL); - + default_num = mail_config_get_default_account_num (); bonobo_config_set_long (config->db, "/Mail/Accounts/default_account", default_num, NULL); - + for (i = 0; i < len; i++) { MailConfigAccount *account; gchar *path; @@ -582,22 +586,22 @@ mail_config_write (void) path = g_strdup_printf ("/Mail/Accounts/account_name_%d", i); bonobo_config_set_string (config->db, path, account->name, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/account_drafts_folder_name_%d", i); bonobo_config_set_string (config->db, path, account->drafts_folder_name, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/account_drafts_folder_uri_%d", i); bonobo_config_set_string (config->db, path, account->drafts_folder_uri, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/account_sent_folder_name_%d", i); bonobo_config_set_string (config->db, path, account->sent_folder_name, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/account_sent_folder_uri_%d", i); bonobo_config_set_string (config->db, path, account->sent_folder_uri, NULL); @@ -610,7 +614,7 @@ mail_config_write (void) else bonobo_config_set_string (config->db, path, "", NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/account_pgp_encrypt_to_self_%d", i); bonobo_config_set_boolean (config->db, path, account->pgp_encrypt_to_self, NULL); @@ -625,7 +629,7 @@ mail_config_write (void) bonobo_config_set_string (config->db, path, "", NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/account_smime_encrypt_to_self_%d", i); bonobo_config_set_boolean (config->db, path, account->smime_encrypt_to_self, @@ -637,17 +641,17 @@ mail_config_write (void) bonobo_config_set_string (config->db, path, account->id->name, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/identity_address_%d", i); bonobo_config_set_string (config->db, path, account->id->address, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/identity_organization_%d", i); bonobo_config_set_string (config->db, path, account->id->organization, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/identity_signature_%d", i); bonobo_config_set_string (config->db, path, account->id->signature, NULL); @@ -668,29 +672,29 @@ mail_config_write (void) account->source->url ? account->source->url : "", NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/source_keep_on_server_%d", i); bonobo_config_set_boolean (config->db, path, account->source->keep_on_server, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/source_auto_check_%d", i); bonobo_config_set_boolean (config->db, path, account->source->auto_check, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/source_auto_check_time_%d", i); bonobo_config_set_long (config->db, path, account->source->auto_check_time, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/source_enabled_%d", i); bonobo_config_set_boolean (config->db, path, account->source->enabled, NULL); g_free (path); - + path = g_strdup_printf ("/Mail/Accounts/source_save_passwd_%d", i); bonobo_config_set_boolean (config->db, path, account->source->save_passwd, NULL); @@ -712,7 +716,7 @@ mail_config_write (void) #ifdef ENABLE_NNTP /* News */ - + len = g_slist_length (config->news); bonobo_config_set_long (config->db, "/News/Sources/num", len, NULL); for (i = 0; i < len; i++) { @@ -725,7 +729,7 @@ mail_config_write (void) bonobo_config_set_string (config->db, path, n->url, NULL); g_free (path); } - + #endif CORBA_exception_init (&ev); @@ -762,7 +766,7 @@ mail_config_write_on_exit (void) /* Show Message Preview */ bonobo_config_set_boolean (config->db, "/Mail/Display/preview_pane", config->show_preview, NULL); - + /* Hide deleted automatically */ bonobo_config_set_boolean (config->db, "Mail/Display/hide_deleted", config->hide_deleted, NULL); @@ -770,7 +774,7 @@ mail_config_write_on_exit (void) /* Size of vpaned in mail view */ bonobo_config_set_long (config->db, "Mail/Display/paned_size", config->paned_size, NULL); - + /* Mark as seen timeout */ bonobo_config_set_long (config->db, "/Mail/Display/seen_timeout", config->seen_timeout, NULL); @@ -783,7 +787,7 @@ mail_config_write_on_exit (void) bonobo_config_set_boolean (config->db, "/Mail/Display/citation_highlight", config->citation_highlight, NULL); - + bonobo_config_set_long (config->db, "/Mail/Display/citation_color", config->citation_color, NULL); @@ -794,18 +798,21 @@ mail_config_write_on_exit (void) /* Only Bcc */ bonobo_config_set_boolean (config->db, "/Mail/Prompts/only_bcc", config->prompt_only_bcc, NULL); - + /* PGP/GPG */ bonobo_config_set_string (config->db, "/Mail/PGP/path", config->pgp_path, NULL); - + bonobo_config_set_long (config->db, "/Mail/PGP/type", config->pgp_type, NULL); + bonobo_config_set_boolean (config->db, "/Mail/Prompts/remember_passphrase", + config->remember_pgp_passphrase, NULL); + /* HTTP images */ bonobo_config_set_long (config->db, "/Mail/Display/http_images", config->http_mode, NULL); - + /* Forwarding */ bonobo_config_set_long (config->db, "/Mail/Format/default_forward_style", @@ -815,7 +822,7 @@ mail_config_write_on_exit (void) bonobo_config_set_long (config->db, "/Mail/Format/message_display_style", config->message_display_style, NULL); - + /* Default charset */ bonobo_config_set_string (config->db, "/Mail/Format/default_charset", config->default_charset, NULL); @@ -823,18 +830,17 @@ mail_config_write_on_exit (void) /* Trash folders */ bonobo_config_set_boolean (config->db, "/Mail/Trash/empty_on_exit", config->empty_trash_on_exit, NULL); - - + g_hash_table_foreach_remove (config->threaded_hash, hash_save_state, "Threads"); - + g_hash_table_foreach_remove (config->preview_hash, hash_save_state, "Preview"); - + CORBA_exception_init (&ev); Bonobo_ConfigDatabase_sync (config->db, &ev); CORBA_exception_free (&ev); - + /* Passwords */ /* fixme: still depends on gnome-config */ gnome_config_private_clean_section ("/Evolution/Passwords"); @@ -863,20 +869,19 @@ uri_to_key (const char *uri) { char *rval; int i = 0; - + if (!uri) return NULL; - + rval = g_strdup (uri); - - while (rval [i]) { - + + while (rval [i]) { if (rval [i] == '/' || rval [i] == ':') rval [i] = '_'; - + i++; } - + return rval; } @@ -1202,6 +1207,18 @@ mail_config_set_pgp_path (const char *pgp_path) config->pgp_path = g_strdup (pgp_path); } +gboolean +mail_config_get_remember_pgp_passphrase (void) +{ + return config->remember_pgp_passphrase; +} + +void +mail_config_set_remember_pgp_passphrase (gboolean value) +{ + config->remember_pgp_passphrase = value; +} + MailConfigHTTPMode mail_config_get_http_mode (void) { |