]> git.armaanb.net Git - chorizo.git/commitdiff
Download manager: Show the real file name
authorPeter Hofmann <scm@uninformativ.de>
Thu, 19 Jun 2014 09:46:21 +0000 (11:46 +0200)
committerPeter Hofmann <scm@uninformativ.de>
Thu, 19 Jun 2014 09:46:21 +0000 (11:46 +0200)
browser.c

index 33bd32efab83e96f32c5dc48e9930d4a8f85c8eb..07b9240e83176fabf8997e72e3f2e76907a185c5 100644 (file)
--- a/browser.c
+++ b/browser.c
@@ -475,12 +475,28 @@ downloadmanager_progress(GObject *obj, GParamSpec *pspec, gpointer data)
        WebKitDownload *download = WEBKIT_DOWNLOAD(obj);
        GtkToolItem *tb = GTK_TOOL_ITEM(data);
        gdouble p;
-       gchar *t;
+       const gchar *uri;
+       gchar *t, *filename, *base;
 
        p = webkit_download_get_progress(download) * 100;
-       t = g_strdup_printf("%s (%.0f%%)",
-                           webkit_download_get_suggested_filename(download),
-                                               p);
+
+       uri = webkit_download_get_destination_uri(download);
+       filename = g_filename_from_uri(uri, NULL, NULL);
+       if (filename == NULL)
+       {
+               /* This really should not happen because WebKit uses that URI to
+                * write to a file... */
+               fprintf(stderr, __NAME__": Could not construct file name from URI!\n");
+               t = g_strdup_printf("%s (%.0f%%)",
+                                   webkit_download_get_suggested_filename(download), p);
+       }
+       else
+       {
+               base = g_path_get_basename(filename);
+               t = g_strdup_printf("%s (%.0f%%)", base, p);
+               g_free(filename);
+               g_free(base);
+       }
        gtk_tool_button_set_label(GTK_TOOL_BUTTON(tb), t);
        g_free(t);
 }