diff options
author | Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> | 2011-12-29 20:17:32 +0100 |
---|---|---|
committer | Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> | 2011-12-29 20:17:32 +0100 |
commit | c29956a9485df88167694e140f46fea5300825de (patch) | |
tree | 9f7a04865cb7746f98d7431d009c51ed843c29cb /about.c | |
parent | f01e1cea55aa8e9f6aad6bc8ece989cb6490cefb (diff) | |
download | xombrero-c29956a9485df88167694e140f46fea5300825de.tar.gz |
Add unlinking of downloaded files (FS#81)
Code from Cody Wright (writecode) ok marco@
Diffstat (limited to 'about.c')
-rw-r--r-- | about.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/about.c b/about.c index 3df1795..4e3f8b3 100644 --- a/about.c +++ b/about.c @@ -70,6 +70,7 @@ #define XT_XTP_DL_LIST (1) #define XT_XTP_DL_CANCEL (2) #define XT_XTP_DL_REMOVE (3) +#define XT_XTP_DL_UNLINK (4) /* XTP history actions */ #define XT_XTP_HL_LIST (1) @@ -498,6 +499,10 @@ xtp_handle_dl(struct tab *t, uint8_t cmd, int id) case XT_XTP_DL_CANCEL: webkit_download_cancel(d->download); break; + case XT_XTP_DL_UNLINK: + unlink(webkit_download_get_destination_uri(d->download) + + strlen("file://")); + /* FALLTHROUGH */ case XT_XTP_DL_REMOVE: webkit_download_cancel(d->download); /* just incase */ g_object_unref(d->download); @@ -1057,8 +1062,9 @@ xtp_page_dl_row(struct tab *t, char *html, struct download *dl) case WEBKIT_DOWNLOAD_STATUS_FINISHED: status_html = g_strdup_printf("Finished"); cmd_html = g_strdup_printf( - "<a href='%s%d/%d'>Remove</a>", - xtp_prefix, XT_XTP_DL_REMOVE, dl->id); + "<a href='%s%d/%d'>Remove</a> / <a href='%s%d/%d'>Unlink</a>", + xtp_prefix, XT_XTP_DL_REMOVE, dl->id, xtp_prefix, + XT_XTP_DL_UNLINK, dl->id); break; case WEBKIT_DOWNLOAD_STATUS_STARTED: /* gather size info */ @@ -1084,13 +1090,17 @@ xtp_page_dl_row(struct tab *t, char *html, struct download *dl) /* LLL */ case WEBKIT_DOWNLOAD_STATUS_CANCELLED: status_html = g_strdup_printf("Cancelled"); - cmd_html = g_strdup_printf("<a href='%s%d/%d'>Remove</a>", - xtp_prefix, XT_XTP_DL_REMOVE, dl->id); + cmd_html = g_strdup_printf( + "<a href='%s%d/%d'>Remove</a> / <a href='%s%d/%d'>Unlink</a>", + xtp_prefix, XT_XTP_DL_REMOVE, dl->id, xtp_prefix, + XT_XTP_DL_UNLINK, dl->id); break; case WEBKIT_DOWNLOAD_STATUS_ERROR: status_html = g_strdup_printf("Error!"); - cmd_html = g_strdup_printf("<a href='%s%d/%d'>Remove</a>", - xtp_prefix, XT_XTP_DL_REMOVE, dl->id); + cmd_html = g_strdup_printf( + "<a href='%s%d/%d'>Remove</a> / <a href='%s%d/%d'>Unlink</a>", + xtp_prefix, XT_XTP_DL_REMOVE, dl->id, xtp_prefix, + XT_XTP_DL_UNLINK, dl->id); break; case WEBKIT_DOWNLOAD_STATUS_CREATED: cmd_html = g_strdup_printf("<a href='%s%d/%d'>Cancel</a>", |