diff options
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 13 | ||||
-rw-r--r-- | mail/mail-accounts.c | 22 | ||||
-rw-r--r-- | mail/mail-accounts.h | 1 | ||||
-rw-r--r-- | mail/mail-config.c | 33 | ||||
-rw-r--r-- | mail/mail-config.glade | 51 | ||||
-rw-r--r-- | mail/mail-config.h | 3 |
6 files changed, 118 insertions, 5 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 49090864c9..60a41502c2 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,16 @@ +2001-05-30 Dan Winship <danw@ximian.com> + + * mail-config.glade: Rename the "PGP" page back to "Other" and add + a "default charset" option menu. + + * mail-config.c (config_read, mail_config_write_on_exit, + mail_config_get_default_charset, mail_config_set_default_charset): + Handle "default charset". + + * mail-accounts.c (construct): Fill in the "default_charset" menu + with an e_charset_picker menu. + (charset_menu_deactivate): Update the default charset. + 2001-05-29 Jeffrey Stedfast <fejj@ximian.com> * mail-callbacks.c (list_add_addresses): Take another argument to diff --git a/mail/mail-accounts.c b/mail/mail-accounts.c index b98a426eb9..78317336cd 100644 --- a/mail/mail-accounts.c +++ b/mail/mail-accounts.c @@ -30,6 +30,7 @@ #include <libgnomeui/gnome-stock.h> #include <camel/camel-url.h> #include <camel/camel-pgp-context.h> +#include <gal/widgets/e-charset-picker.h> #include "mail-accounts.h" #include "mail-config.h" @@ -549,10 +550,22 @@ attach_forward_style_signal (GtkWidget *item, gpointer data) } static void +charset_menu_deactivate (GtkWidget *menu, gpointer data) +{ + char *charset; + + charset = e_charset_picker_get_charset (menu); + if (charset) { + mail_config_set_default_charset (charset); + g_free (charset); + } +} + +static void construct (MailAccountsDialog *dialog) { GladeXML *gui; - GtkWidget *notebook; + GtkWidget *notebook, *menu; int num; gui = glade_xml_new (EVOLUTION_GLADEDIR "/mail-config.glade", NULL); @@ -654,6 +667,7 @@ construct (MailAccountsDialog *dialog) gtk_container_foreach (GTK_CONTAINER (gtk_option_menu_get_menu (dialog->forward_style)), attach_forward_style_signal, &num); + /* Other page */ dialog->pgp_path = GNOME_FILE_ENTRY (glade_xml_get_widget (gui, "filePgpPath")); gtk_entry_set_text (GTK_ENTRY (gnome_file_entry_gtk_entry (dialog->pgp_path)), mail_config_get_pgp_path ()); @@ -661,6 +675,12 @@ construct (MailAccountsDialog *dialog) gtk_signal_connect (GTK_OBJECT (gnome_file_entry_gtk_entry (dialog->pgp_path)), "changed", GTK_SIGNAL_FUNC (pgp_path_changed), dialog); + dialog->charset = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuCharset")); + menu = e_charset_picker_new (mail_config_get_default_charset ()); + gtk_option_menu_set_menu (dialog->charset, menu); + gtk_signal_connect (GTK_OBJECT (menu), "deactivate", + GTK_SIGNAL_FUNC (charset_menu_deactivate), NULL); + /* now to fill in the clists */ dialog->accounts_row = -1; dialog->accounts = mail_config_get_accounts (); diff --git a/mail/mail-accounts.h b/mail/mail-accounts.h index 91de24e6d1..be7898ad8c 100644 --- a/mail/mail-accounts.h +++ b/mail/mail-accounts.h @@ -81,6 +81,7 @@ struct _MailAccountsDialog { /* Composer page */ GtkToggleButton *send_html; GtkOptionMenu *forward_style; + GtkOptionMenu *charset; /* PGP page */ GnomeFileEntry *pgp_path; diff --git a/mail/mail-config.c b/mail/mail-config.c index aba9a56220..af1667200f 100644 --- a/mail/mail-config.c +++ b/mail/mail-config.c @@ -68,6 +68,7 @@ typedef struct { MailConfigHTTPMode http_mode; MailConfigForwardStyle default_forward_style; MailConfigDisplayStyle message_display_style; + char *default_charset; } MailConfig; static const char GCONFPATH[] = "/apps/Evolution/Mail"; @@ -477,6 +478,19 @@ config_read (void) config->message_display_style = MAIL_CONFIG_DISPLAY_NORMAL; g_free (str); + /* Default charset */ + str = g_strdup_printf ("=%s/config/Mail=/Format/charset", evolution_dir); + config->default_charset = gnome_config_get_string (str); + g_free (str); + if (!config->default_charset) { + config->default_charset = g_get_charset (); + if (!config->default_charset || + !g_strcasecmp (config->default_charset, "US-ASCII")) + config->default_charset = g_strdup ("ISO-8859-1"); + else + config->default_charset = g_strdup (config->default_charset); + } + gnome_config_sync (); } @@ -671,6 +685,11 @@ mail_config_write_on_exit (void) gnome_config_set_int (str, config->message_display_style); g_free (str); + /* Default charset */ + str = g_strdup_printf ("=%s/config/Mail=/Format/default_charset", evolution_dir); + gnome_config_set_string (str, config->default_charset); + g_free (str); + /* Passwords */ gnome_config_private_clean_section ("/Evolution/Passwords"); sources = mail_config_get_sources (); @@ -927,6 +946,20 @@ mail_config_set_message_display_style (MailConfigDisplayStyle style) config->message_display_style = style; } +const char * +mail_config_get_default_charset (void) +{ + return config->default_charset; +} + +void +mail_config_set_default_charset (const char *charset) +{ + g_free (config->default_charset); + config->default_charset = g_strdup (charset); +} + + const MailConfigAccount * mail_config_get_default_account (void) { diff --git a/mail/mail-config.glade b/mail/mail-config.glade index f6fcfc9464..f4c5519882 100644 --- a/mail/mail-config.glade +++ b/mail/mail-config.glade @@ -2182,7 +2182,7 @@ Quoted <name>vbox64</name> <border_width>4</border_width> <homogeneous>False</homogeneous> - <spacing>4</spacing> + <spacing>8</spacing> <widget> <class>GtkHBox</class> @@ -2203,7 +2203,7 @@ Quoted <wrap>False</wrap> <xalign>0.5</xalign> <yalign>0.5</yalign> - <xpad>4</xpad> + <xpad>0</xpad> <ypad>0</ypad> <child> <padding>0</padding> @@ -2237,13 +2237,56 @@ Quoted </widget> </widget> </widget> + + <widget> + <class>GtkHBox</class> + <name>hbox56</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + </child> + + <widget> + <class>GtkLabel</class> + <name>lblCharset</name> + <label>Default character set: </label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + + <widget> + <class>GtkOptionMenu</class> + <name>omenuCharset</name> + <can_focus>True</can_focus> + <items>placeholder +</items> + <initial_choice>0</initial_choice> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + </widget> </widget> <widget> <class>GtkLabel</class> <child_name>Notebook:tab</child_name> - <name>pgp_config_label</name> - <label>PGP</label> + <name>other_config_label</name> + <label>Other</label> <justify>GTK_JUSTIFY_CENTER</justify> <wrap>False</wrap> <xalign>0.5</xalign> diff --git a/mail/mail-config.h b/mail/mail-config.h index d242d032d1..bb4fb8fbce 100644 --- a/mail/mail-config.h +++ b/mail/mail-config.h @@ -137,6 +137,9 @@ void mail_config_set_default_forward_style (MailConfigForwardS MailConfigDisplayStyle mail_config_get_message_display_style (void); void mail_config_set_message_display_style (MailConfigDisplayStyle style); +const char *mail_config_get_default_charset (void); +void mail_config_set_default_charset (const char *charset); + const MailConfigAccount *mail_config_get_default_account (void); const MailConfigAccount *mail_config_get_account_by_name (const char *account_name); const MailConfigAccount *mail_config_get_account_by_source_url (const char *url); |