#include "prefs_account.h"
#include "gtkutils.h"
#include "utils.h"
-#include "rfc2015.h"
#include "send_message.h"
#include "stock_pixmap.h"
#include "hooks.h"
#include "filtering.h"
-#include "pop.h"
+#include "partial_download.h"
static GList *messageview_list = NULL;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), _("Sylpheed - Message View"));
- gtk_window_set_wmclass(GTK_WINDOW(window), "message_view", "Sylpheed");
- gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE);
+ gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
gtk_widget_set_size_request(window, prefs_common.msgwin_width,
prefs_common.msgwin_height);
"Return path: %s\n"
"It is advised to not to send the return "
"receipt."), to, buf);
- val = alertpanel(_("Warning"), message, _("Send"),
- _("+Don't Send"), NULL);
+ val = alertpanel_with_type(_("Warning"), message, _("Send"),
+ _("+Don't Send"), NULL, NULL, ALERT_WARNING);
g_free(message);
if (val != G_ALERTDEFAULT)
return -1;
/* Message ID */
generate_msgid(account->address, buf, sizeof buf);
- fprintf(fp, "Message-Id: <%s>\n", buf);
+ fprintf(fp, "Message-ID: <%s>\n", buf);
if (fclose(fp) == EOF) {
FILE_OP_ERROR(tmp, "fclose");
textview_set_all_headers(messageview->mimeview->textview, all_headers);
mimeview_show_message(messageview->mimeview, mimeinfo, file);
+ messageview_set_position(messageview, 0);
if (messageview->msginfo->partial_recv)
partial_recv_show(messageview->noticeview,
Xstrdup_a(filename, msginfo->subject, return);
subst_for_filename(filename);
}
- dest = filesel_select_file(_("Save as"), filename);
+ dest = filesel_select_file_save(_("Save as"), filename);
if (!dest) return;
if (is_file_exist(dest)) {
AlertValue aval;
void *button1_cb = NULL;
void *button2_cb = NULL;
- if (!pop3_msg_in_uidl_list(msginfo->account_server, msginfo->account_login,
- msginfo->partial_recv))
- return;
- switch (msginfo->planned_download) {
- case POP3_PARTIAL_DLOAD_UNKN:
- text = g_strdup_printf(_("This message has been partially "
- "retrieved;\nit is %s."),
- to_human_readable(
- (off_t)(msginfo->total_size)));
- button1 = _("Mark for download");
- button2 = _("Mark for deletion");
- button1_cb = partial_recv_dload_clicked;
- button2_cb = partial_recv_del_clicked;
- break;
- case POP3_PARTIAL_DLOAD_DLOAD:
- text = g_strdup_printf(_("This message has been partially "
- "retrieved;\nit is %s and will be downloaded."),
- to_human_readable(
- (off_t)(msginfo->total_size)));
- button1 = _("Unmark");
- button1_cb = partial_recv_unmark_clicked;
- button2 = _("Mark for deletion");
- button2_cb = partial_recv_del_clicked;
- break;
- case POP3_PARTIAL_DLOAD_DELE:
+ if (!partial_msg_in_uidl_list(msginfo)) {
text = g_strdup_printf(_("This message has been partially "
- "retrieved;\nit is %s and will be deleted."),
- to_human_readable(
- (off_t)(msginfo->total_size)));
- button1 = _("Mark for download");
- button1_cb = partial_recv_dload_clicked;
- button2 = _("Unmark");
- button2_cb = partial_recv_unmark_clicked;
- break;
- default:
- return;
+ "retrieved,\nand has been deleted from the "
+ "server."));
+ } else {
+ switch (msginfo->planned_download) {
+ case POP3_PARTIAL_DLOAD_UNKN:
+ text = g_strdup_printf(_("This message has been "
+ "partially retrieved;\nit is %s."),
+ to_human_readable(
+ (off_t)(msginfo->total_size)));
+ button1 = _("Mark for download");
+ button2 = _("Mark for deletion");
+ button1_cb = partial_recv_dload_clicked;
+ button2_cb = partial_recv_del_clicked;
+ break;
+ case POP3_PARTIAL_DLOAD_DLOAD:
+ text = g_strdup_printf(_("This message has been "
+ "partially retrieved;\nit is %s and "
+ "will be downloaded."),
+ to_human_readable(
+ (off_t)(msginfo->total_size)));
+ button1 = _("Unmark");
+ button1_cb = partial_recv_unmark_clicked;
+ button2 = _("Mark for deletion");
+ button2_cb = partial_recv_del_clicked;
+ break;
+ case POP3_PARTIAL_DLOAD_DELE:
+ text = g_strdup_printf(_("This message has been "
+ "partially retrieved;\nit is %s and "
+ "will be deleted."),
+ to_human_readable(
+ (off_t)(msginfo->total_size)));
+ button1 = _("Mark for download");
+ button1_cb = partial_recv_dload_clicked;
+ button2 = _("Unmark");
+ button2_cb = partial_recv_unmark_clicked;
+ break;
+ default:
+ return;
+ }
}
noticeview_set_text(noticeview, text);
static void partial_recv_dload_clicked(NoticeView *noticeview,
MsgInfo *msginfo)
{
- MsgInfo *tmpmsginfo;
- gchar *file;
-
- file = procmsg_get_message_file_path(msginfo);
- if (!file) {
- g_warning("can't get message file path.\n");
- return;
- }
-
- tmpmsginfo = procheader_parse_file(file, msginfo->flags, TRUE, TRUE);
- tmpmsginfo->folder = msginfo->folder;
- tmpmsginfo->msgnum = msginfo->msgnum;
-
- if (pop3_mark_for_download(tmpmsginfo->account_server,
- tmpmsginfo->account_login,
- tmpmsginfo->partial_recv, file,
- folder_item_get_identifier(msginfo->folder),
- msginfo->msgnum) == 0) {
- msginfo->planned_download = POP3_PARTIAL_DLOAD_DLOAD;
+ if (partial_mark_for_download(msginfo) == 0) {
partial_recv_show(noticeview, msginfo);
}
-
- procmsg_msginfo_free(tmpmsginfo);
- g_free(file);
}
static void partial_recv_del_clicked(NoticeView *noticeview,
MsgInfo *msginfo)
{
- MsgInfo *tmpmsginfo;
- gchar *file;
-
- file = procmsg_get_message_file_path(msginfo);
- if (!file) {
- g_warning("can't get message file path.\n");
- return;
- }
-
- tmpmsginfo = procheader_parse_file(file, msginfo->flags, TRUE, TRUE);
- tmpmsginfo->folder = msginfo->folder;
- tmpmsginfo->msgnum = msginfo->msgnum;
-
- if (pop3_mark_for_delete(tmpmsginfo->account_server,
- tmpmsginfo->account_login,
- tmpmsginfo->partial_recv, file,
- folder_item_get_identifier(msginfo->folder),
- msginfo->msgnum) == 0) {
- msginfo->planned_download = POP3_PARTIAL_DLOAD_DELE;
+ if (partial_mark_for_delete(msginfo) == 0) {
partial_recv_show(noticeview, msginfo);
}
-
- procmsg_msginfo_free(tmpmsginfo);
- g_free(file);
}
static void partial_recv_unmark_clicked(NoticeView *noticeview,
MsgInfo *msginfo)
{
- MsgInfo *tmpmsginfo;
- gchar *file;
-
- file = procmsg_get_message_file_path(msginfo);
- if (!file) {
- g_warning("can't get message file path.\n");
- return;
- }
-
- tmpmsginfo = procheader_parse_file(file, msginfo->flags, TRUE, TRUE);
- tmpmsginfo->folder = msginfo->folder;
- tmpmsginfo->msgnum = msginfo->msgnum;
-
- if (pop3_unmark(tmpmsginfo->account_server,
- tmpmsginfo->account_login,
- tmpmsginfo->partial_recv, file,
- folder_item_get_identifier(msginfo->folder),
- msginfo->msgnum) == 0) {
- msginfo->planned_download = POP3_PARTIAL_DLOAD_UNKN;
+ if (partial_unmark(msginfo) == 0) {
partial_recv_show(noticeview, msginfo);
}
-
- procmsg_msginfo_free(tmpmsginfo);
- g_free(file);
}
static void select_account_cb(GtkWidget *w, gpointer data)
{
- *(gint*)data = GPOINTER_TO_INT(gtk_object_get_user_data(GTK_OBJECT(w)));
+ *(gint*)data = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w), MENU_VAL_ID));
}
static PrefsAccount *select_account_from_list(GList *ac_list)