GtkToolButton *tb;
WebKitDownload *download;
};
+
gboolean
key_downloadmanager(GtkWidget *widget, GdkEvent *event, gpointer data)
{
webkit_download_cancel(payload->download);
}
+const char *
+download_get_path(struct DownloadItem *payload)
+{
+ const char *path = webkit_download_get_destination(payload->download);
+ // Offset by 7 to remove "file://"
+ return path += 7;
+}
+
void
-download_remove(GtkMenuItem *tb, gpointer data)
+download_hide(GtkMenuItem *tb, gpointer data)
{
struct DownloadItem *payload = data;
g_object_unref(payload->download);
gtk_widget_destroy(GTK_WIDGET(payload->tb));
}
+void
+download_delete(GtkMenuItem *tb, gpointer data)
+{
+ remove(download_get_path((struct DownloadItem *)data));
+ download_hide(tb, data);
+}
+
void
download_copy_url(GtkMenuItem *tb, gpointer data)
{
void
download_copy_path(GtkMenuItem *tb, gpointer data)
{
- struct DownloadItem *payload = data;
- const gchar *path = webkit_download_get_destination(payload->download);
+ const char *path = download_get_path((struct DownloadItem *)data);
gtk_clipboard_set_text(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD),
path + 7, strlen(path) - 7);
- //Offset by 7 to remove "file://"
}
void
gtk_widget_show(option);
gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
} else {
- option = gtk_menu_item_new_with_label("Remove download");
+ option =
+ gtk_menu_item_new_with_label("Hide download from list");
+ g_signal_connect(G_OBJECT(option), "activate",
+ G_CALLBACK(download_hide), data);
+ gtk_widget_show(option);
+ gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
+
+ option = gtk_menu_item_new_with_label("Delete downloaded file");
g_signal_connect(G_OBJECT(option), "activate",
- G_CALLBACK(download_remove), data);
+ G_CALLBACK(download_delete), data);
gtk_widget_show(option);
gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
gboolean
downloadmanager_delete(GtkWidget *obj, gpointer data)
{
- if (!quit_if_nothing_active())
- gtk_widget_hide(dm.win);
+ if (!quit_if_nothing_active()) gtk_widget_hide(dm.win);
return TRUE;
}