From aea82dfd606493e4a65f1088e631fe394746d8f0 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Mon, 28 Apr 2003 16:00:47 +0000 Subject: Made toplevel container widgets set a border-width (including toplevel 2003-04-25 Jeffrey Stedfast * mail-config.glade: Made toplevel container widgets set a border-width (including toplevel widgets within frames), set the table/hbox/vbox spacings, set the spacing between an image and the description text in hboxes to 12pts (as suggested by the HIG), Changed Add/Delete buttons to the stock Add/Remove buttons, etc 2003-04-24 Jeffrey Stedfast * mail-config.c (mail_config_init): Cache the allowable mime-types. (mail_config_get_allowable_mime_types): New public function to get an array of allowable mime-types. * mail-format.c (mail_lookup_handler): Only allow a bonobo-component handler if the mime-type is something handled by evolution or the user has specifically chosen that type as available for viewing with a bonobo component in the gconf database. (mime_type_uses_evolution_component): New convenience function. (mime_type_can_use_component): Checks gconf to see if the user has allowed the mime-type to be viewed by a component. svn path=/trunk/; revision=20983 --- mail/ChangeLog | 24 + mail/evolution-mail.schemas | 17 + mail/mail-config.c | 62 +- mail/mail-config.glade | 4502 ++++++++++++++++++++++--------------------- mail/mail-config.h | 2 + mail/mail-format.c | 53 +- 6 files changed, 2412 insertions(+), 2248 deletions(-) diff --git a/mail/ChangeLog b/mail/ChangeLog index 1e08f6225f..86702d3b6c 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,27 @@ +2003-04-25 Jeffrey Stedfast + + * mail-config.glade: Made toplevel container widgets set a + border-width (including toplevel widgets within frames), set the + table/hbox/vbox spacings, set the spacing between an image and the + description text in hboxes to 12pts (as suggested by the HIG), + Changed Add/Delete buttons to the stock Add/Remove buttons, etc + +2003-04-24 Jeffrey Stedfast + + * mail-config.c (mail_config_init): Cache the allowable + mime-types. + (mail_config_get_allowable_mime_types): New public function to get + an array of allowable mime-types. + + * mail-format.c (mail_lookup_handler): Only allow a + bonobo-component handler if the mime-type is something handled by + evolution or the user has specifically chosen that type as + available for viewing with a bonobo component in the gconf + database. + (mime_type_uses_evolution_component): New convenience function. + (mime_type_can_use_component): Checks gconf to see if the user has + allowed the mime-type to be viewed by a component. + 2003-04-24 Radek Doulik * mail-display.c (html_button_press_event): as below diff --git a/mail/evolution-mail.schemas b/mail/evolution-mail.schemas index c62b3b92fc..b7d7abe1a4 100644 --- a/mail/evolution-mail.schemas +++ b/mail/evolution-mail.schemas @@ -148,6 +148,23 @@ + + /schemas/apps/evolution/mail/display/mime_types + /apps/evolution/mail/display/mime_types + evolution-mail + list + string + + + List of mime types to check for bonobo component viewers + + If there isn't a builtin viewer for a particular mime-type inside Evolution, + any mime-types appearing in this list which map to a bonobo-component viewer + in GNOME's mime-type database may be used for displaying content. + + + + /schemas/apps/evolution/mail/display/xmailer_mask /apps/evolution/mail/display/xmailer_mask diff --git a/mail/mail-config.c b/mail/mail-config.c index e66ede44f6..358a2c9aac 100644 --- a/mail/mail-config.c +++ b/mail/mail-config.c @@ -85,7 +85,11 @@ typedef struct { GSList *labels; guint label_notify_id; + guint font_notify_id; + + GPtrArray *mime_types; + guint mime_types_notify_id; } MailConfig; static MailConfig *config = NULL; @@ -394,6 +398,33 @@ config_cache_labels (void) config->labels = labels; } +static void +config_clear_mime_types (void) +{ + int i; + + for (i = 0; i < config->mime_types->len; i++) + g_free (config->mime_types->pdata[i]); + + g_ptr_array_set_size (config->mime_types, 0); +} + +static void +config_cache_mime_types (void) +{ + GSList *n, *nn; + + n = gconf_client_get_list (config->gconf, "/apps/evolution/mail/display/mime_types", GCONF_VALUE_STRING, NULL); + while (n != NULL) { + nn = n->next; + g_ptr_array_add (config->mime_types, n->data); + g_slist_free_1 (n); + n = nn; + } + + g_ptr_array_add (config->mime_types, NULL); +} + static void config_write_fonts (void) { @@ -450,21 +481,31 @@ gconf_labels_changed (GConfClient *client, guint cnxn_id, static void gconf_fonts_changed (GConfClient *client, guint cnxn_id, - GConfEntry *entry, gpointer user_data) + GConfEntry *entry, gpointer user_data) { config_write_fonts (); } +static void +gconf_mime_types_changed (GConfClient *client, guint cnxn_id, + GConfEntry *entry, gpointer user_data) +{ + config_clear_mime_types (); + config_cache_mime_types (); +} + /* Config struct routines */ void mail_config_init (void) { char *filename; + if (config) return; config = g_new0 (MailConfig, 1); config->gconf = gconf_client_get_default (); + config->mime_types = g_ptr_array_new (); mail_config_clear (); @@ -475,21 +516,27 @@ mail_config_init (void) filename = g_build_filename (g_get_home_dir (), "/evolution", MAIL_CONFIG_RC, NULL); gtk_rc_parse (filename); g_free (filename); - + gconf_client_add_dir (config->gconf, "/apps/evolution/mail/display/fonts", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); config->font_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/fonts", gconf_fonts_changed, NULL, NULL, NULL); - gconf_client_add_dir (config->gconf, "/apps/evolution/mail/labels", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); config->label_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/labels", gconf_labels_changed, NULL, NULL, NULL); - + + gconf_client_add_dir (config->gconf, "/apps/evolution/mail/mime_types", + GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + config->mime_types_notify_id = + gconf_client_notify_add (config->gconf, "/apps/evolution/mail/mime_types", + gconf_mime_types_changed, NULL, NULL, NULL); + config_cache_labels (); config_read_signatures (); + config_cache_mime_types (); config->accounts = e_account_list_new (config->gconf); } @@ -506,6 +553,7 @@ mail_config_clear (void) } config_clear_labels (); + config_clear_mime_types (); } void @@ -638,6 +686,12 @@ mail_config_get_label_color_by_index (int index) return NULL; } +const char ** +mail_config_get_allowable_mime_types (void) +{ + return (const char **) config->mime_types->pdata; +} + gboolean mail_config_find_account (EAccount *account) { diff --git a/mail/mail-config.glade b/mail/mail-config.glade index dce4679adb..06499178f8 100644 --- a/mail/mail-config.glade +++ b/mail/mail-config.glade @@ -161,6 +161,7 @@ Click "Apply" to save your settings. + 6 True True True @@ -170,80 +171,245 @@ Click "Apply" to save your settings. False - - 3 + + 6 True False 3 - - 3 + True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN + False + 3 - - 3 + True - False - 3 + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + + 6 True - Type the name by which you would like to refer to this account. + False + 3 + + + + True + Type the name by which you would like to refer to this account. For example: "Work" or "Personal" + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 3 + 3 + + + 0 + False + True + + + + + + 3 + True + False + 4 + + + + True + _Name: + True + False + GTK_JUSTIFY_RIGHT + False + False + 0.5 + 0.5 + 0 + 0 + management_name + + + 0 + False + False + + + + + + True + True + True + True + 0 + + True + * + False + + + 0 + True + True + + + + + 0 + False + True + + + + + + True + True + _Make this my default account + True + GTK_RELIEF_NORMAL + False + False + True + + + 0 + False + False + + + + + + + + True + Account Information False False GTK_JUSTIFY_LEFT False False - 0 + 0.5 0.5 - 3 - 3 + 0 + 0 - 0 - False - True + label_item + + + 0 + False + False + + + + + + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - - 3 + + 6 True + 2 + 2 False - 4 + 6 + 6 + + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 1 + 2 + + + - + True - _Name: + Email _address: True False - GTK_JUSTIFY_RIGHT + GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.5 0 0 - management_name + identity_address - 0 - False - False + 0 + 1 + 1 + 2 + fill + + + + + + + True + _Full name: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + identity_full_name + + + 0 + 1 + 0 + 1 + fill + - + True True True @@ -255,143 +421,331 @@ For example: "Work" or "Personal" False - 0 - True - True + 1 + 2 + 0 + 1 + - - 0 - False - True - - + True - True - _Make this my default account - True - GTK_RELIEF_NORMAL - False - False - True + Required Information + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 - 0 - False - False + label_item - - - - - True - Account Information - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item + 0 + False + True - - - 0 - False - False - - - - - - 3 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - 3 + True - 2 - 2 - False - 3 - 3 + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + + 6 True - True - True - True - 0 - - True - * - False - - - 1 - 2 - 1 - 2 - - + 3 + 2 + False + 6 + 6 + + + + True + Or_ganization: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + identity_organization + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + _Default signature: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 1 + 2 + + + + + + + True + Re_ply-To: + True + False + GTK_JUSTIFY_CENTER + False + False + 0 + 0.5 + 0 + 0 + identity_reply_to + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 0 + 1 + + + + + + + True + False + 5 + + + + True + True + 0 + + + + True + + + + True + Default + True + + + + + + + 0 + False + False + + + + + + True + True + Add new signature... + True + GTK_RELIEF_NORMAL + + + + 0 + False + False + GTK_PACK_END + + + + + 1 + 2 + 2 + 3 + fill + fill + + + - + True - Email _address: - True + Optional Information + False False GTK_JUSTIFY_LEFT False False - 0 + 0.5 0.5 0 0 - identity_address - 0 - 1 - 1 - 2 - fill - + label_item + + + 0 + False + True + + + + + 0 + True + True + + + + + False + True + + + + + + True + _Identity + True + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + + + tab + + + + + + 6 + True + False + 3 + + + + True + False + 3 + + + + True + 1 + 2 + False + 0 + 3 - + True - _Full name: + Server _Type: True False - GTK_JUSTIFY_LEFT + GTK_JUSTIFY_RIGHT False False - 0 + 1 0.5 0 0 - identity_full_name + source_type_omenu 0 @@ -404,838 +758,548 @@ For example: "Work" or "Personal" - + True True - True - True - 0 - - True - * - False - - - 1 - 2 - 0 - 1 - - - - - + 0 - - - True - Required Information - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 + + + True + + + + True + POP + True + + + + + + True + IMAPv4 + True + + + + + + True + Standard Unix mbox + True + + + + + + True + Qmail maildir + True + + + + + + True + None + True + + + + + + + 1 + 2 + 0 + 1 + + + + - label_item + 0 + False + False - - - 0 - False - True - - - - - - 3 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - 3 + True - 3 - 2 False - 3 - 3 + 3 - + True - Or_ganization: - True + Description: + False False - GTK_JUSTIFY_LEFT + GTK_JUSTIFY_CENTER False False - 0 + 0.5 0.5 0 0 - identity_organization - 0 - 1 - 1 - 2 - fill - + 0 + False + True - + True - _Default signature: - True + description + False False GTK_JUSTIFY_LEFT False False 0 - 0.5 - 0 - 0 - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - True - True - True - 0 - - True - * - False - - - 1 - 2 - 1 - 2 - - - - - - - True - Re_ply-To: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 + 0 0 0 - identity_reply_to - 0 - 1 - 0 - 1 - fill - + 0 + True + True + + + 0 + False + True + + - - - True - True - True - True - 0 - - True - * - False - - - 1 - 2 - 0 - 1 - - - + + + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + + 6 True + 5 + 2 False - 5 + 6 + 6 - + True - True - 0 - - - - True + _Host: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + source_host + + + 0 + 1 + 0 + 1 + fill + + + - - - True - Default - True - - - - + + + True + User_name: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + source_user - 0 - False - False + 0 + 1 + 1 + 2 + fill + - + True True - Add new signature... - True - GTK_RELIEF_NORMAL - + True + True + 0 + + True + * + False - 0 - False - False - GTK_PACK_END + 1 + 2 + 0 + 1 + - - - 1 - 2 - 2 - 3 - fill - fill - - - - - - - - True - Optional Information - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - - label_item - - - - - 0 - False - True - - - - - False - True - - - - - - True - _Identity - True - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - - - tab - - - - - - 3 - True - False - 0 - - - - 3 - True - 1 - 2 - False - 0 - 2 - - - - True - Server _Type: - True - False - GTK_JUSTIFY_RIGHT - False - False - 1 - 0.5 - 0 - 0 - source_type_omenu - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - True - 0 - - - - True - + True - POP - True + True + True + True + 0 + + True + * + False + + 1 + 2 + 1 + 2 + + - + True - IMAPv4 + _Path: True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + source_path + + 0 + 1 + 2 + 3 + fill + + - + True - Standard Unix mbox - True + 10 + Mailbox location + False + False + + + + True + True + True + True + 0 + + True + * + False + + + + 1 + 2 + 2 + 3 + + - + True - Qmail maildir - True + False + (SSL is not supported in this build of Evolution) + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + + 0 + 2 + 4 + 5 + fill + + - + True - None - True + False + 6 + + + + True + _Use secure connection (SSL): + True + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + source_use_ssl + + + 0 + False + False + + + + + + True + True + 0 + + + + True + + + + True + Always + True + + + + + + True + Whenever Possible + True + + + + + + True + Never + True + + + + + + + 0 + False + False + + + + 0 + 2 + 3 + 4 + fill + - - - 1 - 2 - 0 - 1 - - - - - - - 0 - False - False - - - - - - 3 - True - False - 3 - - - True - Description: - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 + + + True + Configuration + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + label_item + + 0 False - True + False - + True - description - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0 - 0 - 0 - - - 0 - True - True - - - - - 0 - False - True - - - - - - 3 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - 3 - True - 5 - 2 - False - 3 - 3 - - - - True - _Host: - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - source_host - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - User_name: - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - source_user - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - True - True - True - 0 - - True - * - False - - - 1 - 2 - 0 - 1 - - - - - - - True - True - True - True - 0 - - True - * - False - - - 1 - 2 - 1 - 2 - - - - - - - True - _Path: - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - source_path - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - 10 - Mailbox location - False - False - - - - True - True - True - True - 0 - - True - * - False - - - - - 1 - 2 - 2 - 3 - - - - - - - True - False - (SSL is not supported in this build of Evolution) - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - - - 0 - 2 - 4 - 5 - fill - - - + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + + 6 True False - 4 - - - - True - _Use secure connection (SSL): - True - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - source_use_ssl - - - 0 - False - False - - + 6 - + True - True - 0 + False + 3 - - + + True - - - - True - Always - True - - - - - - True - Whenever Possible - True - - - - - - True - Never - True - - + _Authentication type: + True + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + source_auth_omenu + + 0 + False + False + - - - 0 - False - False - - - - - 0 - 2 - 3 - 4 - fill - - - - - - - - True - Configuration - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - - label_item - - - - - 0 - False - False - - - - - 3 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - 3 - True - False - 3 - - - - True - False - 3 - - - - True - _Authentication type: - True - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - source_auth_omenu - - - 0 - False - False - - + + + True + True + 0 - - - True - True - 0 + + + True - - - True + + + True + Password + True + + - - - True - Password - True + + + True + Kerberos + True + + + + + 0 + False + False + + + + + + True + 1 + 0.5 + 1 + 1 - + True - Kerberos + True + _Check for supported types True + GTK_RELIEF_NORMAL + + 0 + False + False + GTK_PACK_END + + + 0 + True + True + + + + + + True + True + Re_member this password + True + GTK_RELIEF_NORMAL + False + False + True + 0 False @@ -1244,102 +1308,58 @@ For example: "Work" or "Personal" - + True - 1 + Note: you will not be prompted for a password until you connect for the first time + False + False + GTK_JUSTIFY_LEFT + False + False + 0.03 0.5 - 1 - 1 - - - - True - True - _Check for supported types - True - GTK_RELIEF_NORMAL - - + 0 + 0 0 False False - GTK_PACK_END - - 0 - True - True - - - - - - True - True - Re_member this password - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - False - False - - + True - Note: you will not be prompted for a password until you connect for the first time + Authentication False False GTK_JUSTIFY_LEFT False False - 0.03 + 0.5 0.5 0 0 - 0 - False - False + label_item - - - - - True - Authentication - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item + 0 + False + False 0 - False - False + True + True @@ -1369,154 +1389,144 @@ For example: "Work" or "Personal" - - 3 + + 6 True - 1 - 2 False - 4 - 8 + 3 - - 3 + True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN + 1 + 2 + False + 4 + 8 - - 3 + True - 1 - 2 - False - 4 - 8 + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + + 6 True + 1 + 2 False - 0 + 6 + 6 - + True - True - _Automatically check for new mail - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - False - False - - + False + 6 - - - True - _every - True - False - GTK_JUSTIFY_CENTER - False - False - 1 - 0.5 - 3 - 0 - extra_auto_check_min - - - 0 - False - False - - + + + True + True + _Automatically check for new mail every + True + GTK_RELIEF_NORMAL + False + False + True + + + 0 + False + False + + - - - True - True - 1 - 0 - True - GTK_UPDATE_ALWAYS - False - False - 10 1 1440 1 10 10 - - - 0 - False - True - - + + + True + True + 1 + 0 + True + GTK_UPDATE_ALWAYS + False + False + 10 1 1440 1 10 10 + + + 0 + False + False + + - - - True - minute(s) - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 + + + True + minute(s) + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + - 0 - False - False + 0 + 2 + 0 + 1 + + + + + True + Checking for New Mail + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + - 0 - 2 - 0 - 1 + label_item - - - - - True - Checking for New Mail - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item + 0 + 2 + 0 + 1 + fill - 0 - 2 - 0 - 1 - fill + 0 + False + True @@ -1546,236 +1556,312 @@ For example: "Work" or "Personal" - - 3 + + 6 True False - 0 + 3 - - 3 + True - 1 - 2 False - 0 - 2 + 3 - + True - Server _Type: - True - False - GTK_JUSTIFY_RIGHT - False - False - 1 - 0.5 - 0 - 0 - transport_type_omenu - - - 0 - 1 - 0 - 1 - fill - - - + 1 + 2 + False + 0 + 3 - - - True - True - 0 + + + True + Server _Type: + True + False + GTK_JUSTIFY_RIGHT + False + False + 1 + 0.5 + 0 + 0 + transport_type_omenu + + + 0 + 1 + 0 + 1 + fill + + + - - + + True + True + 0 - - + + True - SMTP - True - - - - - True - Sendmail - True + + + True + SMTP + True + + + + + + True + Sendmail + True + + + + 1 + 2 + 0 + 1 + + + - - 1 - 2 - 0 - 1 - - - - - - - 0 - False - False - - - - - - 3 - True - False - 3 - - - - True - Description: - False - False - GTK_JUSTIFY_RIGHT - False - False - 1 - 0 - 0 - 0 - 0 False - True + False - + True - description - False - False - GTK_JUSTIFY_CENTER - False - False - 7.45058e-09 - 0 - 0 - 0 + False + 3 + + + + True + Description: + False + False + GTK_JUSTIFY_RIGHT + False + False + 1 + 0 + 0 + 0 + + + 0 + False + True + + + + + + True + description + False + False + GTK_JUSTIFY_CENTER + False + False + 7.45058e-09 + 0 + 0 + 0 + + + 0 + True + True + + 0 - True - True + False + False - - - 0 - False - False - - - - - - 3 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - 3 + True - False - 3 + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + + 6 True - 1 - 2 False - 4 - 4 + 3 - + True - _Host: - True - False - GTK_JUSTIFY_RIGHT - False - False - 1 - 0.5 - 0 - 0 - transport_host + 1 + 2 + False + 4 + 4 + + + + True + _Host: + True + False + GTK_JUSTIFY_RIGHT + False + False + 1 + 0.5 + 0 + 0 + transport_host + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 0 + 1 + + + - 0 - 1 - 0 - 1 - fill - + 4 + False + True - - - True - True - True - True - 0 - - True - * - False + + + True + False + 6 + + + + True + _Use secure connection (SSL): + True + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + transport_use_ssl + + + 0 + False + False + + + + + + True + True + 0 + + + + True + + + + True + Always + True + + + + + + True + Whenever Possible + True + + + + + + True + Never + True + + + + + + + 0 + False + False + + - 1 - 2 - 0 - 1 - + 0 + False + False - - - 4 - False - True - - - - - - True - False - 4 - + True - _Use secure connection (SSL): - True + False + (SSL is not supported in this build of evolution) + False False GTK_JUSTIFY_CENTER False @@ -1784,7 +1870,6 @@ For example: "Work" or "Personal" 0.5 0 0 - transport_use_ssl 0 @@ -1794,40 +1879,15 @@ For example: "Work" or "Personal" - + True True - 0 - - - - True - - - - True - Always - True - - - - - - True - Whenever Possible - True - - - - - - True - Never - True - - - - + Ser_ver requires authentication + True + GTK_RELIEF_NORMAL + False + False + True 0 @@ -1836,21 +1896,15 @@ For example: "Work" or "Personal" - - 0 - False - False - - + True - False - (SSL is not supported in this build of evolution) + Server Configuration False False - GTK_JUSTIFY_CENTER + GTK_JUSTIFY_LEFT False False 0.5 @@ -1859,189 +1913,173 @@ For example: "Work" or "Personal" 0 - 0 - False - False - - - - - - True - True - Ser_ver requires authentication - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - False - False + label_item - - - - - True - Server Configuration - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item + 0 + False + True - - - 0 - False - True - - - - - - 3 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - 3 + True - False - 3 + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + + 6 True False 3 - + True - _Authentication Type: - True - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - transport_auth_omenu - - - 0 - False - False - - + False + 3 - - - True - True - 0 + + + True + _Authentication Type: + True + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + transport_auth_omenu + + + 0 + False + False + + - - + + True + True + 0 - - + + True - Password - True + + + + True + Password + True + + + + + + True + Kerberos + True + + + + + 0 + False + False + + + + + + True + 1 + 0.5 + 1 + 1 - + True - Kerberos + True + _Check for supported types True + GTK_RELIEF_NORMAL + + 0 + False + False + GTK_PACK_END + 0 False - False + True - + True - 1 - 0.5 - 1 - 1 + False + 3 - + True - True - _Check for supported types + User_name: True - GTK_RELIEF_NORMAL + False + GTK_JUSTIFY_RIGHT + False + False + 1 + 0.5 + 0 + 0 + transport_user - - - - 0 - False - False - GTK_PACK_END - - - - - 0 - False - True - - - - - - True - False - 3 - - - - True - User_name: - True - False - GTK_JUSTIFY_RIGHT - False - False - 1 - 0.5 - 0 - 0 - transport_user + + 0 + False + False + + + + + + True + True + True + True + 0 + + True + * + False + + + 0 + True + True + + 0 @@ -2051,74 +2089,55 @@ For example: "Work" or "Personal" - + True True - True - True - 0 - - True - * - False + Remember this _password + True + GTK_RELIEF_NORMAL + False + False + True 0 - True - True + False + False - - 0 - False - False - - + True - True - Remember this _password - True - GTK_RELIEF_NORMAL - False - False - True + Authentication + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 - 0 - False - False + label_item - - - - - True - Authentication - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item + 0 + False + True 0 False - True + False @@ -2148,270 +2167,282 @@ For example: "Work" or "Personal" - - 3 + + 6 True False 3 - - 3 + True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN + False + 3 - - 3 + True - 3 - 2 - False - 4 - 4 + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + + 6 True - Drafts _folder: - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - drafts_button + 3 + 2 + False + 6 + 6 + + + + True + Drafts _folder: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + drafts_button + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + Sent _messages folder: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + sent_button + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + mail_account_gui_folder_selector_button_new + 0 + 0 + Wed, 03 Apr 2002 23:03:41 GMT + + + 1 + 2 + 0 + 1 + fill + + + + + + True + mail_account_gui_folder_selector_button_new + 0 + 0 + Wed, 03 Apr 2002 23:03:59 GMT + + + 1 + 2 + 1 + 2 + fill + + + + + + True + True + Restore Defaults + True + GTK_RELIEF_NORMAL + + + 1 + 2 + 2 + 3 + fill + + + - - 0 - 1 - 0 - 1 - fill - - - + True - Sent _messages folder: - True + Sent and Draft Messages + False False GTK_JUSTIFY_LEFT False False - 0 + 0.5 0.5 0 0 - sent_button - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - mail_account_gui_folder_selector_button_new - 0 - 0 - Wed, 03 Apr 2002 23:03:41 GMT - - - 1 - 2 - 0 - 1 - fill - - - - - - True - mail_account_gui_folder_selector_button_new - 0 - 0 - Wed, 03 Apr 2002 23:03:59 GMT - - - 1 - 2 - 1 - 2 - fill - - - - - - True - True - Restore Defaults - True - GTK_RELIEF_NORMAL - 1 - 2 - 2 - 3 - fill - + label_item - - - - - True - Sent and Draft Messages - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item + 0 + False + True - - - 0 - False - True - - - - - - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - + True - False - 0 + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + True False 0 - - 3 + True - 2 - 2 False - 0 - 0 + 0 - + + 6 True - True - Always _carbon-copy (Cc) to: - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - 1 - 0 - 1 - fill - - - + 2 + 2 + False + 6 + 6 - - - True - True - Always _blind carbon-copy (Bcc) to: - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - 1 - 1 - 2 - fill - - - + + + True + True + Always _carbon-copy (Cc) to: + True + GTK_RELIEF_NORMAL + False + False + True + + + 0 + 1 + 0 + 1 + fill + + + - - - True - True - True - True - 0 - - True - * - False - - - 1 - 2 - 0 - 1 - - - + + + True + True + Always _blind carbon-copy (Bcc) to: + True + GTK_RELIEF_NORMAL + False + False + True + + + 0 + 1 + 1 + 2 + fill + + + - - - True - True - True - True - 0 - - True - * - False + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 0 + 1 + + + + + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 1 + 2 + + + - 1 - 2 - 1 - 2 - + 0 + True + True @@ -2422,38 +2453,38 @@ For example: "Work" or "Personal" + + + + + True + Composing Messages + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + - 0 - True - True + label_item - - - - - True - Composing Messages - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item + 0 + False + True 0 False - True + False @@ -2483,47 +2514,97 @@ For example: "Work" or "Personal" - + + 6 True False - 0 + 3 - - 3 + True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN + False + 3 - - 3 + True - False - 3 + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - - 3 + + 6 True False 3 - + + 3 + True + False + 6 + + + + True + PGP/GPG _Key ID: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + pgp_key + + + 0 + False + False + + + + + + True + True + True + True + 0 + + True + * + False + + + 0 + True + True + + + + + 0 + False + False + + + + + True - PGP/GPG _Key ID: + True + _Always sign outgoing messages when using this account True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - pgp_key + GTK_RELIEF_NORMAL + False + False + True 0 @@ -2533,309 +2614,271 @@ For example: "Work" or "Personal" - + True True - True - True - 0 - - True - * - False + Don't sign _meeting requests (for Outlook compatibility) + True + GTK_RELIEF_NORMAL + False + False + True + + + 0 + False + False + + + + + + True + True + Al_ways encrypt to myself when sending encrypted mail + True + GTK_RELIEF_NORMAL + True + False + True + + + 0 + False + False + + + + + + True + True + Always _trust keys in my keyring when encrypting + True + GTK_RELIEF_NORMAL + False + False + True 0 - True - True + False + False - - 0 - False - False - - - - - - True - True - _Always sign outgoing messages when using this account - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - False - False - - - - - - True - True - Don't sign _meeting requests (for Outlook compatibility) - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - False - False - - - - - - True - True - Al_ways encrypt to myself when sending encrypted mail - True - GTK_RELIEF_NORMAL - True - False - True - - - 0 - False - False - - + True - True - Always _trust keys in my keyring when encrypting - True - GTK_RELIEF_NORMAL - False - False - True + Pretty Good Privacy (PGP/GPG) + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 - 0 - False - False + label_item - - - - - True - Pretty Good Privacy (PGP/GPG) - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item + 0 + False + True - - - 0 - False - True - - - - - - 3 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - 3 + True - 3 - 3 - False - 3 - 3 - - - - True - True - A_lways encrypt to myself when sending encrypted mail - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - 2 - 2 - 3 - fill - - - + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + + 6 True - True - Alwa_ys sign outgoing messages when using this account - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - 2 - 1 - 2 - fill - - - + 3 + 3 + False + 3 + 3 - - - True - True - http://www.verisign.com/products/class1/index.html - Get Digital ID... - - - 2 - 3 - 1 - 2 - fill - - - + + + True + True + A_lways encrypt to myself when sending encrypted mail + True + GTK_RELIEF_NORMAL + False + False + True + + + 0 + 2 + 2 + 3 + fill + + + - - - True - True - Digital IDs... - True - GTK_RELIEF_NORMAL - - - 2 - 3 - 0 - 1 - fill - - - + + + True + True + Alwa_ys sign outgoing messages when using this account + True + GTK_RELIEF_NORMAL + False + False + True + + + 0 + 2 + 1 + 2 + fill + + + - - - 3 - True - False - 3 + + + True + True + http://www.verisign.com/products/class1/index.html + Get Digital ID... + + + 2 + 3 + 1 + 2 + fill + + + - + True - _Certificate ID: + True + Digital IDs... True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - smime_key + GTK_RELIEF_NORMAL - 0 - False - False + 2 + 3 + 0 + 1 + fill + - + + 3 True - True - True - True - 0 - - True - * - False + False + 3 + + + + True + _Certificate ID: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + smime_key + + + 0 + False + False + + + + + + True + True + True + True + 0 + + True + * + False + + + 0 + True + True + + - 0 - True - True + 0 + 2 + 0 + 1 + fill + fill + + + + + True + Secure MIME (S/MIME) + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + - 0 - 2 - 0 - 1 - fill - fill + label_item - - - - - True - Secure MIME (S/MIME) - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item + 0 + False + True 0 False - True + False @@ -2879,7 +2922,7 @@ For example: "Work" or "Personal" True False - 0 + 6 @@ -2929,15 +2972,15 @@ For example: "Work" or "Personal" True GTK_BUTTONBOX_START - 0 + 3 True True True - _Add - True + gtk-add + True GTK_RELIEF_NORMAL @@ -2960,8 +3003,8 @@ For example: "Work" or "Personal" False True True - _Delete - True + gtk-remove + True GTK_RELIEF_NORMAL @@ -2999,7 +3042,7 @@ For example: "Work" or "Personal" True GTK_BUTTONBOX_START - 0 + 3 @@ -3062,7 +3105,7 @@ For example: "Work" or "Personal" - 3 + 6 True False 3 @@ -3075,10 +3118,11 @@ For example: "Work" or "Personal" GTK_SHADOW_ETCHED_IN - + + 6 True False - 0 + 3 @@ -3100,13 +3144,12 @@ For example: "Work" or "Personal" - 4 True 2 2 False - 4 - 6 + 3 + 3 @@ -3244,7 +3287,7 @@ For example: "Work" or "Personal" - 3 + 6 True False 3 @@ -3494,52 +3537,39 @@ For example: "Work" or "Personal" - 3 + 6 True False 3 - + True - False - 0 - - - - True - True - Empty _trash folders on exit - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - False - False - - + True + Empty _trash folders on exit + True + GTK_RELIEF_NORMAL + False + False + True + + + 0 + False + False + + - - - True - True - _Confirm when expunging a folder - True - GTK_RELIEF_NORMAL - False - False - True - - - 0 - False - False - - + + + True + True + _Confirm when expunging a folder + True + GTK_RELIEF_NORMAL + False + False + True 0 @@ -3585,9 +3615,10 @@ For example: "Work" or "Personal" + 6 True False - 0 + 3 @@ -3765,7 +3796,7 @@ For example: "Work" or "Personal" - 3 + 6 True False 3 @@ -3779,6 +3810,7 @@ For example: "Work" or "Personal" + 6 True False 3 @@ -3947,259 +3979,272 @@ For example: "Work" or "Personal" - - 4 + + 6 True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN + False + 3 - - 4 + True - 6 - 3 - False - 3 - 3 + 0 + 0.5 + GTK_SHADOW_ETCHED_IN - + + 6 True - True - True - False - Pick a color - - - 1 - 2 - 0 - 1 - fill - - - + 6 + 3 + False + 3 + 3 - - - True - True - True - False - Pick a color - - - 1 - 2 - 1 - 2 - fill - - - + + + True + True + True + False + Pick a color + + + 1 + 2 + 0 + 1 + fill + + + - - - True - True - True - False - Pick a color - - - 1 - 2 - 2 - 3 - fill - - - + + + True + True + True + False + Pick a color + + + 1 + 2 + 1 + 2 + fill + + + + + + + True + True + True + False + Pick a color + + + 1 + 2 + 2 + 3 + fill + + + + + + + True + True + True + False + Pick a color + + + 1 + 2 + 3 + 4 + fill + + + - - - True - True - True - False - Pick a color - - - 1 - 2 - 3 - 4 - fill - - - + + + True + True + True + False + Pick a color + + + 1 + 2 + 4 + 5 + fill + + + - - - True - True - True - False - Pick a color - - - 1 - 2 - 4 - 5 - fill - - - + + + True + True + True + True + 0 + Important + True + * + False + + + 0 + 1 + 0 + 1 + fill + + + - - - True - True - True - True - 0 - Important - True - * - False - - - 0 - 1 - 0 - 1 - fill - - - + + + True + True + True + True + 0 + Work + True + * + False + + + 0 + 1 + 1 + 2 + fill + + + - - - True - True - True - True - 0 - Work - True - * - False - - - 0 - 1 - 1 - 2 - fill - - - + + + True + True + True + True + 0 + Personal + True + * + False + + + 0 + 1 + 2 + 3 + fill + + + - - - True - True - True - True - 0 - Personal - True - * - False - - - 0 - 1 - 2 - 3 - fill - - - + + + True + True + True + True + 0 + To Do + True + * + False + + + 0 + 1 + 3 + 4 + fill + + + - - - True - True - True - True - 0 - To Do - True - * - False - - - 0 - 1 - 3 - 4 - fill - - - + + + True + True + True + True + 0 + Later + True + * + False + + + 0 + 1 + 4 + 5 + fill + + + - - - True - True - True - True - 0 - Later - True - * - False + + + True + True + _Restore defaults + True + GTK_RELIEF_NORMAL + + + 2 + 3 + 5 + 6 + fill + + + - - 0 - 1 - 4 - 5 - fill - - - + True - True - _Restore defaults - True - GTK_RELIEF_NORMAL + Labels and Colors + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 - 2 - 3 - 5 - 6 - fill - + label_item - - - - - True - Labels and Colors - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item + 0 + False + False @@ -4251,17 +4296,16 @@ For example: "Work" or "Personal" - 3 + 6 True False 3 - 3 True False - 3 + 6 @@ -4344,14 +4388,13 @@ For example: "Work" or "Personal" - 3 + 6 True False 3 - 3 True 3 2 @@ -4677,10 +4720,11 @@ For example: "Work" or "Personal" GTK_SHADOW_ETCHED_IN - + + 6 True False - 0 + 3 @@ -4779,10 +4823,11 @@ For example: "Work" or "Personal" 3 - + + 6 True False - 3 + 6 @@ -4812,7 +4857,6 @@ For example: "Work" or "Personal" - 3 True False 3 @@ -4842,15 +4886,15 @@ For example: "Work" or "Personal" True GTK_BUTTONBOX_START - 0 + 3 True True True - _Add - True + gtk-add + True GTK_RELIEF_NORMAL @@ -4883,8 +4927,8 @@ For example: "Work" or "Personal" True True True - _Delete - True + gtk-remove + True GTK_RELIEF_NORMAL @@ -4977,17 +5021,17 @@ For example: "Work" or "Personal" - - 3 + + 6 True False - 3 + 6 - + True False - 0 + 12 @@ -5005,7 +5049,7 @@ For example: "Work" or "Personal" - + True This page allows you to configure spell checking behavior and language. The list of languages here reflects only the languages for which you have a dictionary installed. False @@ -5044,10 +5088,10 @@ For example: "Work" or "Personal" - + True False - 0 + 6 @@ -5152,10 +5196,11 @@ For example: "Work" or "Personal" GTK_SHADOW_ETCHED_IN - + + 6 True False - 0 + 3 @@ -5177,10 +5222,9 @@ For example: "Work" or "Personal" - 3 True False - 3 + 6 @@ -5455,7 +5499,7 @@ For example: "Work" or "Personal" True False - 8 + 6 @@ -5502,17 +5546,16 @@ For example: "Work" or "Personal" - 3 + 6 True False - 7 + 6 - - 3 + True False - 3 + 12 @@ -5560,14 +5603,13 @@ for display purposes only. - - 3 + True 2 2 False - 3 - 3 + 6 + 6 diff --git a/mail/mail-config.h b/mail/mail-config.h index b84f262273..3abc9588f8 100644 --- a/mail/mail-config.h +++ b/mail/mail-config.h @@ -107,6 +107,8 @@ GSList *mail_config_get_labels (void); const char *mail_config_get_label_color_by_name (const char *name); const char *mail_config_get_label_color_by_index (int index); +const char **mail_config_get_allowable_mime_types (void); + void mail_config_service_set_save_passwd (EAccountService *service, gboolean save_passwd); gboolean mail_config_find_account (EAccount *account); diff --git a/mail/mail-format.c b/mail/mail-format.c index f47ebccd4d..5840e16e70 100644 --- a/mail/mail-format.c +++ b/mail/mail-format.c @@ -371,6 +371,27 @@ component_supports (Bonobo_ServerInfo *component, const char *mime_type) return FALSE; } +static gboolean +mime_type_uses_evolution_component (const char *mime_type) +{ + return (!strcmp (mime_type, "text/x-vcard") || !strcmp (mime_type, "text/calendar")); +} + +static gboolean +mime_type_can_use_component (const char *mime_type) +{ + const char **mime_types; + int i; + + mime_types = mail_config_get_allowable_mime_types (); + for (i = 0; mime_types[i]; i++) { + if (!strcmp (mime_types[i], mime_type)) + return TRUE; + } + + return FALSE; +} + /** * mail_lookup_handler: * @mime_type: a MIME type @@ -423,23 +444,27 @@ mail_lookup_handler (const char *mime_type) goto reg; } - /* Try for the first matching component. (we don't use get_short_list_comps - * as that will return NULL if the oaf files don't have the short_list properties - * defined). */ - components = gnome_vfs_mime_get_all_components (mime_type); - for (iter = components; iter; iter = iter->next) { - if (component_supports (iter->data, mime_type)) { - handler->generic = FALSE; - handler->is_bonobo = TRUE; - handler->builtin = handle_via_bonobo; - handler->component = Bonobo_ServerInfo_duplicate (iter->data); - gnome_vfs_mime_component_list_free (components); - goto reg; + /* only allow using a bonobo component if it is an evo-component or the user has + * specified that we can use a bonobo-component by setting the gconf key */ + if (mime_type_uses_evolution_component (mime_type) || mime_type_can_use_component (mime_type)) { + /* Try for the first matching component. (we don't use get_short_list_comps + * as that will return NULL if the oaf files don't have the short_list properties + * defined). */ + components = gnome_vfs_mime_get_all_components (mime_type); + for (iter = components; iter; iter = iter->next) { + if (component_supports (iter->data, mime_type)) { + handler->generic = FALSE; + handler->is_bonobo = TRUE; + handler->builtin = handle_via_bonobo; + handler->component = Bonobo_ServerInfo_duplicate (iter->data); + gnome_vfs_mime_component_list_free (components); + goto reg; + } } + + gnome_vfs_mime_component_list_free (components); } - gnome_vfs_mime_component_list_free (components); - /* Try for a generic builtin match. */ p = strchr (mime_type, '/'); if (p == NULL) -- cgit