aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2013-05-14 09:20:58 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2013-05-14 09:20:58 +0000
commit87d3ae9de4acc190cff396a41269c68ecba4203e (patch)
treea6f7dd83235c37d4eb620e44f398b5fefbd84118
parent3b87da252f54406f6ded41f0b45f6f6d7dacc15b (diff)
refactored MessageView/MimeView/
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@3254 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog17
-rw-r--r--src/messageview.c11
-rw-r--r--src/messageview.h3
-rw-r--r--src/mimeview.c64
-rw-r--r--src/mimeview.h8
5 files changed, 59 insertions, 44 deletions
diff --git a/ChangeLog b/ChangeLog
index 04096ce7..b04d2850 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2013-05-14
+
+ * src/messageview.[ch]
+ src/mimeview.[ch]: refactored: moved MimeInfo and file path member
+ from MimeInfo to MessageView so that it can be used from TextView.
+
+2013-05-14
+
+ * libsylph/prefs_common.[ch]
+ src/prefs_common_dialog.c
+ src/textview.c: added an option to prefer HTML part in
+ multipart/alternative.
+
+2013-05-14
+
+ * libsylph/html.[ch]: supported <blockquote> tag.
+
2013-04-05
* libsylph/procmsg.c: procmsg_print_message(): print all texts in
diff --git a/src/messageview.c b/src/messageview.c
index 8112dbf0..0ccff0de 100644
--- a/src/messageview.c
+++ b/src/messageview.c
@@ -597,6 +597,10 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo,
if (!messageview->msginfo)
messageview->msginfo = procmsg_msginfo_copy(msginfo);
}
+ procmime_mimeinfo_free_all(messageview->mimeinfo);
+ messageview->mimeinfo = mimeinfo;
+ g_free(messageview->file);
+ messageview->file = file;
if (messageview->window && msginfo->subject) {
gchar *title;
@@ -619,7 +623,6 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo,
} else {
messageview_change_view_type(messageview, MVIEW_TEXT);
textview_show_message(messageview->textview, mimeinfo, file);
- procmime_mimeinfo_free_all(mimeinfo);
}
if (messageview->new_window)
@@ -628,8 +631,6 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo,
syl_plugin_signal_emit("messageview-show", messageview, msginfo,
all_headers);
- g_free(file);
-
return 0;
}
@@ -780,6 +781,10 @@ static void messageview_set_encoding_menu(MessageView *messageview)
void messageview_clear(MessageView *messageview)
{
messageview_set_tool_menu(messageview, NULL);
+ g_free(messageview->file);
+ messageview->file = NULL;
+ procmime_mimeinfo_free_all(messageview->mimeinfo);
+ messageview->mimeinfo = NULL;
procmsg_msginfo_free(messageview->msginfo);
messageview->msginfo = NULL;
messageview_change_view_type(messageview, MVIEW_TEXT);
diff --git a/src/messageview.h b/src/messageview.h
index ef6abd12..eee37c41 100644
--- a/src/messageview.h
+++ b/src/messageview.h
@@ -74,6 +74,9 @@ struct _MessageView
gboolean visible;
gint current_page;
+
+ MimeInfo *mimeinfo;
+ gchar *file;
};
MessageView *messageview_create (void);
diff --git a/src/mimeview.c b/src/mimeview.c
index 2e53932c..d58788a4 100644
--- a/src/mimeview.c
+++ b/src/mimeview.c
@@ -300,7 +300,7 @@ static gboolean mimeview_is_signed(MimeView *mimeview)
debug_print("mimeview_is_signed: open\n" );
- if (!mimeview->file) return FALSE;
+ if (!mimeview->messageview->file) return FALSE;
debug_print("mimeview_is_signed: file\n" );
@@ -351,10 +351,6 @@ void mimeview_show_message(MimeView *mimeview, MimeInfo *mimeinfo,
g_return_if_fail(file != NULL);
g_return_if_fail(mimeinfo != NULL);
- mimeview->mimeinfo = mimeinfo;
-
- mimeview->file = g_strdup(file);
-
#if USE_GPGME
if (rfc2015_is_available() && prefs_common.auto_check_signatures) {
FILE *fp;
@@ -410,8 +406,6 @@ void mimeview_show_message(MimeView *mimeview, MimeInfo *mimeinfo,
void mimeview_clear(MimeView *mimeview)
{
- procmime_mimeinfo_free_all(mimeview->mimeinfo);
- mimeview->mimeinfo = NULL;
mimeview->has_attach_file = FALSE;
gtk_tree_store_clear(mimeview->store);
@@ -421,9 +415,6 @@ void mimeview_clear(MimeView *mimeview)
gtk_tree_path_free(mimeview->opened);
mimeview->opened = NULL;
- g_free(mimeview->file);
- mimeview->file = NULL;
-
g_free(mimeview->drag_file);
mimeview->drag_file = NULL;
}
@@ -432,9 +423,7 @@ void mimeview_destroy(MimeView *mimeview)
{
textview_destroy(mimeview->textview);
imageview_destroy(mimeview->imageview);
- procmime_mimeinfo_free_all(mimeview->mimeinfo);
g_object_unref(mimeview->popupfactory);
- g_free(mimeview->file);
g_free(mimeview->drag_file);
g_free(mimeview);
}
@@ -557,7 +546,7 @@ static void mimeview_show_message_part(MimeView *mimeview, MimeInfo *partinfo)
if (!partinfo) return;
- fname = mimeview->file;
+ fname = mimeview->messageview->file;
if (!fname) return;
if ((fp = g_fopen(fname, "rb")) == NULL) {
@@ -566,7 +555,7 @@ static void mimeview_show_message_part(MimeView *mimeview, MimeInfo *partinfo)
}
if (fseek(fp, partinfo->fpos, SEEK_SET) < 0) {
- FILE_OP_ERROR(mimeview->file, "fseek");
+ FILE_OP_ERROR(fname, "fseek");
fclose(fp);
return;
}
@@ -585,7 +574,7 @@ static void mimeview_show_image_part(MimeView *mimeview, MimeInfo *partinfo)
filename = procmime_get_tmp_file_name(partinfo);
- if (procmime_get_part(filename, mimeview->file, partinfo) < 0)
+ if (procmime_get_part(filename, mimeview->messageview->file, partinfo) < 0)
alertpanel_error
(_("Can't get the part of multipart message."));
else {
@@ -1003,7 +992,7 @@ static void mimeview_drag_begin(GtkWidget *widget, GdkDragContext *drag_context,
MimeInfo *partinfo;
if (!mimeview->opened) return;
- if (!mimeview->file) return;
+ if (!mimeview->messageview->file) return;
partinfo = mimeview_get_selected_part(mimeview);
if (!partinfo) return;
@@ -1022,7 +1011,7 @@ static void mimeview_drag_begin(GtkWidget *widget, GdkDragContext *drag_context,
filename = g_strconcat(get_mime_tmp_dir(), G_DIR_SEPARATOR_S,
bname, NULL);
- if (procmime_get_part(filename, mimeview->file, partinfo) < 0) {
+ if (procmime_get_part(filename, mimeview->messageview->file, partinfo) < 0) {
g_warning(_("Can't save the part of multipart message."));
} else
mimeview->drag_file = encode_uri(filename);
@@ -1071,7 +1060,7 @@ void mimeview_save_as(MimeView *mimeview)
MimeInfo *partinfo;
if (!mimeview->opened) return;
- if (!mimeview->file) return;
+ if (!mimeview->messageview->file) return;
partinfo = mimeview_get_selected_part(mimeview);
g_return_if_fail(partinfo != NULL);
@@ -1086,7 +1075,7 @@ void mimeview_save_all(MimeView *mimeview)
dir = filesel_select_dir(NULL);
if (!dir) return;
- if (procmime_get_all_parts(dir, mimeview->file, mimeview->mimeinfo) < 0)
+ if (procmime_get_all_parts(dir, mimeview->messageview->file, mimeview->messageview->mimeinfo) < 0)
alertpanel_error(_("Can't save the attachments."));
g_free(dir);
@@ -1097,7 +1086,7 @@ void mimeview_print(MimeView *mimeview)
MimeInfo *partinfo;
if (!mimeview->opened) return;
- if (!mimeview->file) return;
+ if (!mimeview->messageview->file) return;
partinfo = mimeview_get_selected_part(mimeview);
g_return_if_fail(partinfo != NULL);
@@ -1109,7 +1098,7 @@ void mimeview_print_part(MimeView *mimeview, MimeInfo *partinfo)
{
g_return_if_fail(partinfo != NULL);
- if (!mimeview->file) return;
+ if (!mimeview->messageview->file) return;
if (partinfo->mime_type == MIME_MESSAGE_RFC822) {
gchar *filename;
@@ -1117,7 +1106,7 @@ void mimeview_print_part(MimeView *mimeview, MimeInfo *partinfo)
MsgFlags flags = {0, 0};
filename = procmime_get_tmp_file_name(partinfo);
- if (procmime_get_part(filename, mimeview->file, partinfo) < 0) {
+ if (procmime_get_part(filename, mimeview->messageview->file, partinfo) < 0) {
alertpanel_error
(_("Can't save the part of multipart message."));
g_free(filename);
@@ -1143,11 +1132,11 @@ void mimeview_launch_part(MimeView *mimeview, MimeInfo *partinfo)
g_return_if_fail(partinfo != NULL);
- if (!mimeview->file) return;
+ if (!mimeview->messageview->file) return;
filename = procmime_get_tmp_file_name(partinfo);
- if (procmime_get_part(filename, mimeview->file, partinfo) < 0)
+ if (procmime_get_part(filename, mimeview->messageview->file, partinfo) < 0)
alertpanel_error
(_("Can't save the part of multipart message."));
else
@@ -1163,11 +1152,11 @@ void mimeview_open_part_with(MimeView *mimeview, MimeInfo *partinfo)
g_return_if_fail(partinfo != NULL);
- if (!mimeview->file) return;
+ if (!mimeview->messageview->file) return;
filename = procmime_get_tmp_file_name(partinfo);
- if (procmime_get_part(filename, mimeview->file, partinfo) < 0) {
+ if (procmime_get_part(filename, mimeview->messageview->file, partinfo) < 0) {
alertpanel_error
(_("Can't save the part of multipart message."));
g_free(filename);
@@ -1202,7 +1191,7 @@ void mimeview_save_part_as(MimeView *mimeview, MimeInfo *partinfo)
g_return_if_fail(partinfo != NULL);
- if (!mimeview->file) return;
+ if (!mimeview->messageview->file) return;
if (partinfo->filename) {
filename = filesel_save_as(partinfo->filename);
@@ -1216,9 +1205,10 @@ void mimeview_save_part_as(MimeView *mimeview, MimeInfo *partinfo)
} else
filename = filesel_save_as(NULL);
- if (!filename) return;
+ if (!filename)
+ return;
- if (procmime_get_part(filename, mimeview->file, partinfo) < 0)
+ if (procmime_get_part(filename, mimeview->messageview->file, partinfo) < 0)
alertpanel_error
(_("Can't save the part of multipart message."));
@@ -1230,7 +1220,7 @@ static void mimeview_launch(MimeView *mimeview)
MimeInfo *partinfo;
if (!mimeview->opened) return;
- if (!mimeview->file) return;
+ if (!mimeview->messageview->file) return;
partinfo = mimeview_get_selected_part(mimeview);
g_return_if_fail(partinfo != NULL);
@@ -1243,7 +1233,7 @@ static void mimeview_open_with(MimeView *mimeview)
MimeInfo *partinfo;
if (!mimeview->opened) return;
- if (!mimeview->file) return;
+ if (!mimeview->messageview->file) return;
partinfo = mimeview_get_selected_part(mimeview);
g_return_if_fail(partinfo != NULL);
@@ -1336,7 +1326,7 @@ static void mimeview_reply(MimeView *mimeview, guint action)
ComposeMode mode = action;
if (!mimeview->opened) return;
- if (!mimeview->file) return;
+ if (!mimeview->messageview->file) return;
partinfo = mimeview_get_selected_part(mimeview);
g_return_if_fail(partinfo != NULL);
@@ -1345,7 +1335,7 @@ static void mimeview_reply(MimeView *mimeview, guint action)
return;
filename = procmime_get_tmp_file_name(partinfo);
- if (procmime_get_part(filename, mimeview->file, partinfo) < 0) {
+ if (procmime_get_part(filename, mimeview->messageview->file, partinfo) < 0) {
alertpanel_error
(_("Can't save the part of multipart message."));
g_free(filename);
@@ -1419,13 +1409,13 @@ static void mimeview_check_signature(MimeView *mimeview)
mimeinfo = mimeview_get_selected_part(mimeview);
g_return_if_fail(mimeinfo != NULL);
- g_return_if_fail(mimeview->file != NULL);
+ g_return_if_fail(mimeview->messageview->file != NULL);
while (mimeinfo->parent)
mimeinfo = mimeinfo->parent;
- if ((fp = g_fopen(mimeview->file, "rb")) == NULL) {
- FILE_OP_ERROR(mimeview->file, "fopen");
+ if ((fp = g_fopen(mimeview->messageview->file, "rb")) == NULL) {
+ FILE_OP_ERROR(mimeview->messageview->file, "fopen");
return;
}
@@ -1436,6 +1426,6 @@ static void mimeview_check_signature(MimeView *mimeview)
mimeview_update_signature_info(mimeview);
textview_show_message(mimeview->messageview->textview, mimeinfo,
- mimeview->file);
+ mimeview->messageview->file);
}
#endif /* USE_GPGME */
diff --git a/src/mimeview.h b/src/mimeview.h
index 65f07cd2..3d5ff204 100644
--- a/src/mimeview.h
+++ b/src/mimeview.h
@@ -1,6 +1,6 @@
/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2012 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2013 Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -66,9 +66,9 @@ struct _MimeView
MessageView *messageview;
- MimeInfo *mimeinfo;
-
- gchar *file;
+ /* deprecated: use MessageView */
+ MimeInfo *mimeinfo__;
+ gchar *file__;
gchar *drag_file;