diff options
-rw-r--r-- | browser.c | 24 |
1 files changed, 20 insertions, 4 deletions
@@ -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); } |