#include "stock_pixmap.h"
#include "hooks.h"
#include "filtering.h"
-#include "pop.h"
+#include "partial_download.h"
static GList *messageview_list = NULL;
MsgInfo *msginfo);
static void partial_recv_show (NoticeView *noticeview,
MsgInfo *msginfo);
-static void partial_recv_dload_clicked (NoticeView *noticeview,
+static void partial_recv_dload_clicked (NoticeView *noticeview,
MsgInfo *msginfo);
-static void partial_recv_del_clicked (NoticeView *noticeview,
+static void partial_recv_del_clicked (NoticeView *noticeview,
+ MsgInfo *msginfo);
+static void partial_recv_unmark_clicked (NoticeView *noticeview,
MsgInfo *msginfo);
static void save_as_cb (gpointer data,
guint action,
/* 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,
static void return_receipt_show(NoticeView *noticeview, MsgInfo *msginfo)
{
- noticeview_set_text(noticeview, _("This message asks for a return receipt"));
+ noticeview_set_text(noticeview, _("This message asks for a return receipt."));
noticeview_set_button_text(noticeview, _("Send receipt"));
noticeview_set_button_press_callback(noticeview,
GTK_SIGNAL_FUNC(return_receipt_send_clicked),
void *button1_cb = NULL;
void *button2_cb = NULL;
- if (!pop3_msg_in_uidl_list(msginfo->account_server, msginfo->account_login,
- msginfo->partial_recv))
+ if (!partial_msg_in_uidl_list(msginfo))
return;
+
switch (msginfo->planned_download) {
- case 0: /* unknown yet */
+ case POP3_PARTIAL_DLOAD_UNKN:
text = g_strdup_printf(_("This message has been partially "
- "retrieved;\nit is %s large."),
+ "retrieved;\nit is %s."),
to_human_readable(
(off_t)(msginfo->total_size)));
button1 = _("Mark for download");
button1_cb = partial_recv_dload_clicked;
button2_cb = partial_recv_del_clicked;
break;
- case 1:
+ case POP3_PARTIAL_DLOAD_DLOAD:
text = g_strdup_printf(_("This message has been partially "
- "retrieved and is planned for "
- "download;\nit is %s large."),
+ "retrieved;\nit is %s and will be downloaded."),
to_human_readable(
(off_t)(msginfo->total_size)));
- button1 = _("Mark for deletion");
- button1_cb = partial_recv_del_clicked;
+ button1 = _("Unmark");
+ button1_cb = partial_recv_unmark_clicked;
+ button2 = _("Mark for deletion");
+ button2_cb = partial_recv_del_clicked;
break;
- case -1:
+ case POP3_PARTIAL_DLOAD_DELE:
text = g_strdup_printf(_("This message has been partially "
- "retrieved and is planned for "
- "deletion;\nit is %s large."),
+ "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_button_press_callback(noticeview,
GTK_SIGNAL_FUNC(button1_cb), (gpointer) msginfo);
- if (button2 && button2_cb) {
- noticeview_set_2ndbutton_text(noticeview, button2);
- noticeview_set_2ndbutton_press_callback(noticeview,
- GTK_SIGNAL_FUNC(button2_cb), (gpointer) msginfo);
- } else {
- noticeview_set_2ndbutton_text(noticeview, NULL);
- }
+ noticeview_set_2ndbutton_text(noticeview, button2);
+ noticeview_set_2ndbutton_press_callback(noticeview,
+ GTK_SIGNAL_FUNC(button2_cb), (gpointer) msginfo);
noticeview_show(noticeview);
}
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) == 0) {
- msginfo->planned_download = 1;
+ 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;
+ if (partial_mark_for_delete(msginfo) == 0) {
+ partial_recv_show(noticeview, msginfo);
}
+}
- 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) == 0) {
- msginfo->planned_download = -1;
+static void partial_recv_unmark_clicked(NoticeView *noticeview,
+ MsgInfo *msginfo)
+{
+ 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)
g_return_val_if_fail(ac_list->data != NULL, NULL);
optmenu = gtk_option_menu_new();
- menu = gtkut_account_menu_new(ac_list, select_account_cb, &account_id);
+ menu = gtkut_account_menu_new(ac_list,
+ G_CALLBACK(select_account_cb),
+ &account_id);
if (!menu)
return NULL;
gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu);
textview = messageview_get_current_textview(msgview);
g_return_val_if_fail(textview != NULL, NULL);
- edit = GTK_EDITABLE(textview->text);
+ edit = GTK_TEXT_VIEW(textview->text);
g_return_val_if_fail(edit != NULL, NULL);
body_pos = textview->body_pos;