aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustavo Noronha Silva <gns@src.gnome.org>2009-03-26 23:29:32 +0800
committerGustavo Noronha Silva <gns@src.gnome.org>2009-03-26 23:29:32 +0800
commita551a219577761befd9450f487394013bad857d2 (patch)
tree426544de183f7f23838b8a094c07ca57d25a24ff
parentbd770032b47bdabac773b1158dde0dd9f76d2b20 (diff)
downloadgsoc2013-epiphany-a551a219577761befd9450f487394013bad857d2.tar.gz
gsoc2013-epiphany-a551a219577761befd9450f487394013bad857d2.tar.zst
gsoc2013-epiphany-a551a219577761befd9450f487394013bad857d2.zip
Remove downloading files when cancelling the download.
svn path=/trunk/; revision=8940
-rw-r--r--embed/downloader-view.c1
-rw-r--r--embed/webkit/webkit-embed.c4
-rw-r--r--lib/ephy-file-helpers.c28
-rw-r--r--lib/ephy-file-helpers.h1
4 files changed, 33 insertions, 1 deletions
diff --git a/embed/downloader-view.c b/embed/downloader-view.c
index f8fe7f94e..b15459204 100644
--- a/embed/downloader-view.c
+++ b/embed/downloader-view.c
@@ -996,6 +996,7 @@ download_dialog_stop (DownloaderView *dv)
{
if (!l->data) continue;
webkit_download_cancel ((WebKitDownload*) l->data);
+ ephy_file_delete_uri (webkit_download_get_destination_uri ((WebKitDownload*) l->data));
g_object_unref (l->data);
}
diff --git a/embed/webkit/webkit-embed.c b/embed/webkit/webkit-embed.c
index cd1d1b11a..1886a20c5 100644
--- a/embed/webkit/webkit-embed.c
+++ b/embed/webkit/webkit-embed.c
@@ -425,8 +425,10 @@ download_requested_dialog_response_cb (GtkDialog *dialog,
dview = EPHY_DOWNLOADER_VIEW (ephy_embed_shell_get_downloader_view (embed_shell));
downloader_view_add_download (dview, download);
}
- else
+ else {
webkit_download_cancel (download);
+ ephy_file_delete_uri (webkit_download_get_destination_uri (download));
+ }
gtk_widget_destroy (GTK_WIDGET (dialog));
}
diff --git a/lib/ephy-file-helpers.c b/lib/ephy-file-helpers.c
index cc588985b..7f38978dd 100644
--- a/lib/ephy-file-helpers.c
+++ b/lib/ephy-file-helpers.c
@@ -754,3 +754,31 @@ ephy_file_delete_directory (const char *path)
}
g_object_unref (file);
}
+
+/**
+ * ephy_file_delete_uri
+ * @uri: URI of the file to be deleted
+ *
+ * Remove the given URI.
+ *
+ */
+void
+ephy_file_delete_uri (const char *uri)
+{
+ GFile *file;
+ gboolean ret;
+
+ file = g_file_new_for_uri (uri);
+
+ ret = g_file_delete (file, NULL, NULL);
+
+ if (ret == TRUE)
+ {
+ LOG ("Deleted file at URI '%s'", uri);
+ }
+ else
+ {
+ LOG ("Couldn't file at URI '%s'", uri);
+ }
+ g_object_unref (file);
+}
diff --git a/lib/ephy-file-helpers.h b/lib/ephy-file-helpers.h
index 77aa5e055..1127b0691 100644
--- a/lib/ephy-file-helpers.h
+++ b/lib/ephy-file-helpers.h
@@ -103,6 +103,7 @@ gboolean ephy_file_browse_to (GFile *file,
void ephy_file_delete_directory (const char *path);
+void ephy_file_delete_uri (const char *uri);
G_END_DECLS
#endif /* EPHY_FILE_HELPERS_H */