aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog11
-rw-r--r--mail/local-config.glade51
-rw-r--r--mail/mail-format.c3
-rw-r--r--mail/mail-local.c24
4 files changed, 85 insertions, 4 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 99858f0531..cc564dc7f9 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,14 @@
+2001-10-11 <NotZed@Ximian.com>
+
+ * local-config.glade: Added a checkbox for body indexing.
+
+ * mail-local.c (mail_local_reconfigure_folder): Get index_body
+ widget.
+ (mail_local_folder_reconfigure): Add an 'index_body' argument &
+ implement. Dont do anything if nothing changed.
+
+ * openpgp-utils.c (openpgp_verify): Use e_iconv_open.
+
2001-10-11 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (do_forward_non_attached): Attach the message
diff --git a/mail/local-config.glade b/mail/local-config.glade
index 7a2dbc2862..291c25c1cc 100644
--- a/mail/local-config.glade
+++ b/mail/local-config.glade
@@ -86,7 +86,7 @@
<class>GtkTable</class>
<name>table1</name>
<border_width>2</border_width>
- <rows>2</rows>
+ <rows>3</rows>
<columns>2</columns>
<homogeneous>False</homogeneous>
<row_spacing>0</row_spacing>
@@ -194,6 +194,55 @@ mh
<yfill>False</yfill>
</child>
</widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label5</name>
+ <label>Indexing:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>1</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>check_index_body</name>
+ <can_focus>True</can_focus>
+ <label>Body contents</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
</widget>
</widget>
diff --git a/mail/mail-format.c b/mail/mail-format.c
index c86a603253..0e92ddebd1 100644
--- a/mail/mail-format.c
+++ b/mail/mail-format.c
@@ -35,6 +35,7 @@
#include <libgnomevfs/gnome-vfs-mime-info.h>
#include <libgnomevfs/gnome-vfs-mime-handlers.h>
#include <gal/widgets/e-unicode.h>
+#include <gal/util/e-iconv.h>
#include <camel/camel-mime-utils.h>
#include <camel/camel-pgp-mime.h>
@@ -995,7 +996,7 @@ write_headers (CamelMimeMessage *message, MailDisplay *md)
ct = camel_mime_part_get_content_type(CAMEL_MIME_PART(message));
charset = header_content_type_param(ct, "charset");
- charset = camel_charset_to_iconv(charset);
+ charset = e_iconv_charset_name(charset);
header = CAMEL_MIME_PART(message)->headers;
while (header) {
diff --git a/mail/mail-local.c b/mail/mail-local.c
index 85bedf43cc..7661d74c24 100644
--- a/mail/mail-local.c
+++ b/mail/mail-local.c
@@ -569,7 +569,7 @@ mail_local_folder_construct(MailLocalFolder *mlf, MailLocalStore *parent_store,
}
static gboolean
-mail_local_folder_reconfigure (MailLocalFolder *mlf, const char *new_format, CamelException *ex)
+mail_local_folder_reconfigure (MailLocalFolder *mlf, const char *new_format, int index_body, CamelException *ex)
{
CamelStore *fromstore = NULL;
CamelFolder *fromfolder = NULL;
@@ -578,6 +578,13 @@ mail_local_folder_reconfigure (MailLocalFolder *mlf, const char *new_format, Cam
char *store_uri;
GPtrArray *uids;
int real_folder_frozen = FALSE;
+ int format_change, index_changed;
+
+ format_change = strcmp(mlf->meta->format, new_format) != 0;
+ index_changed = mlf->meta->indexed != index_body;
+
+ if (format_change == FALSE && index_changed == FALSE)
+ return TRUE;
camel_operation_start(NULL, _("Reconfiguring folder"));
@@ -593,6 +600,14 @@ mail_local_folder_reconfigure (MailLocalFolder *mlf, const char *new_format, Cam
mlf_unset_folder(mlf);
}
+ /* only indexed change, just re-open with new flags */
+ if (!format_change) {
+ mlf->meta->indexed = index_body;
+ mlf_set_folder(mlf, CAMEL_STORE_FOLDER_CREATE, ex);
+ save_metainfo(mlf->meta);
+ goto cleanup;
+ }
+
store_uri = g_strdup_printf("%s:%s%s", mlf->meta->format,
((CamelService *)((CamelFolder *)mlf)->parent_store)->url->path, mlf->real_path);
fromstore = camel_session_get_store(session, store_uri, ex);
@@ -1101,9 +1116,11 @@ struct _reconfigure_msg {
FolderBrowser *fb;
char *newtype;
+ unsigned int index_body:1;
GtkWidget *frame;
GtkWidget *apply;
GtkWidget *cancel;
+ GtkWidget *check_index_body;
GtkOptionMenu *optionlist;
CamelFolder *folder_out;
};
@@ -1142,7 +1159,7 @@ reconfigure_folder_reconfigure (struct _mail_msg *mm)
return;
}
- mail_local_folder_reconfigure (MAIL_LOCAL_FOLDER (local_folder), m->newtype, &mm->ex);
+ mail_local_folder_reconfigure (MAIL_LOCAL_FOLDER (local_folder), m->newtype, m->index_body, &mm->ex);
m->folder_out = local_folder;
}
@@ -1200,6 +1217,7 @@ reconfigure_clicked (GnomeDialog *dialog, int button, struct _reconfigure_msg *m
menu = gtk_option_menu_get_menu(m->optionlist);
item = gtk_menu_get_active(GTK_MENU(menu));
m->newtype = g_strdup(gtk_object_get_data((GtkObject *)item, "type"));
+ m->index_body = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(m->check_index_body));
gtk_widget_set_sensitive (m->frame, FALSE);
gtk_widget_set_sensitive (m->apply, FALSE);
@@ -1259,6 +1277,7 @@ mail_local_reconfigure_folder (FolderBrowser *fb)
m->apply = glade_xml_get_widget (gui, "apply_format");
m->cancel = glade_xml_get_widget (gui, "cancel_format");
m->optionlist = (GtkOptionMenu *)glade_xml_get_widget (gui, "option_format");
+ m->check_index_body = glade_xml_get_widget (gui, "check_index_body");
m->newtype = NULL;
m->fb = fb;
m->folder_out = NULL;
@@ -1293,6 +1312,7 @@ mail_local_reconfigure_folder (FolderBrowser *fb)
gtk_option_menu_remove_menu (GTK_OPTION_MENU(m->optionlist));
gtk_option_menu_set_menu (GTK_OPTION_MENU(m->optionlist), menu);
gtk_option_menu_set_history(GTK_OPTION_MENU(m->optionlist), history);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(m->check_index_body), MAIL_LOCAL_FOLDER (fb->folder)->meta->indexed);
gtk_label_set_text ((GtkLabel *)glade_xml_get_widget (gui, "label_format"),
MAIL_LOCAL_FOLDER (fb->folder)->meta->format);