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,
break;
case POP3_PARTIAL_DLOAD_DLOAD:
text = g_strdup_printf(_("This message has been partially "
- "retrieved and is planned for "
- "download;\nit is %s."),
+ "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 POP3_PARTIAL_DLOAD_DELE:
text = g_strdup_printf(_("This message has been partially "
- "retrieved and is planned for "
- "deletion;\nit is %s."),
+ "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;
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) == 0) {
+ msginfo->planned_download = POP3_PARTIAL_DLOAD_UNKN;
+ 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)));
fprintf(fpnew, "%s\t%ld\t%s\n",
uidl, recv_time, partial_recv);
} else {
+ gchar *stat = "0";
+ if (download == POP3_PARTIAL_DLOAD_DLOAD)
+ stat = filename;
+ if (download == POP3_PARTIAL_DLOAD_UNKN)
+ stat = "1";
fprintf(fpnew, "%s\t%ld\t%s\n",
- uidl, recv_time,
- download == POP3_PARTIAL_DLOAD_DLOAD
- ? filename : "0");
+ uidl, recv_time, stat);
}
}
fclose(fpnew);
buf[len]='\0';
if (start) {
start = FALSE;
- fprintf(fpnew, "SC-Marked-For-Download: %d\n",
- download);
- printf("buf '%s'\n", buf);
+ if (download != POP3_PARTIAL_DLOAD_UNKN)
+ fprintf(fpnew, "SC-Marked-For-Download: %d\n",
+ download);
+
if(strlen(buf) > strlen("SC-Marked-For-Download: x\n")
&& !strncmp(buf, "SC-Marked-For-Download:",
strlen("SC-Marked-For-Download:"))) {
}
int pop3_mark_for_download(const gchar *server, const gchar *login,
- const gchar *muidl, const gchar *filename)
+ const gchar *muidl, const gchar *filename)
{
return pop3_uidl_mark_mail(server, login, muidl, filename,
POP3_PARTIAL_DLOAD_DLOAD);
}
+int pop3_unmark(const gchar *server, const gchar *login,
+ const gchar *muidl, const gchar *filename)
+{
+ return pop3_uidl_mark_mail(server, login, muidl, filename,
+ POP3_PARTIAL_DLOAD_UNKN);
+}
+
gint pop3_write_uidl_list(Pop3Session *session)
{
gchar *path;