]> git.armaanb.net Git - chorizo.git/blobdiff - src/downloads.c
Reformat with clang-format
[chorizo.git] / src / downloads.c
index 40994e12b5ab7eed1d35c93a7d11fec378d1daa3..6e92a2b27840472d9727c3e3d2413d50399fdf18 100644 (file)
@@ -7,261 +7,247 @@ void download_click(GtkToolButton *, gpointer);
 void download_cancel(GtkMenuItem *, gpointer);
 gboolean downloadmanager_delete(GtkWidget *, gpointer);
 
-struct DownloadManager
-{
-       GtkWidget *scroll;
-       GtkWidget *toolbar;
-       GtkWidget *win;
+struct DownloadManager {
+    GtkWidget *scroll;
+    GtkWidget *toolbar;
+    GtkWidget *win;
 } dm;
 
 gint downloads = 0;
 
-struct DownloadItem
-{
-       GtkToolButton *tb;
-       WebKitDownload *download;
+struct DownloadItem {
+    GtkToolButton *tb;
+    WebKitDownload *download;
 };
 
 gboolean
-key_downloadmanager(GtkWidget *widget, GdkEvent *event, gpointer data)
-{
-       if (event->type == GDK_KEY_PRESS) {
-               if (((GdkEventKey *)event)->state & GDK_CONTROL_MASK) {
-                       int key = ((GdkEventKey *)event)->keyval;
-                       if ((def_key("close_tab", GDK_KEY_q) == key) ||
-                                       (def_key("download_manager", GDK_KEY_y) == key)) {
-                               downloadmanager_delete(dm.win, NULL);
-                               return TRUE;
-                       }
-               }
-       }
-
-       return FALSE;
+key_downloadmanager(GtkWidget *widget, GdkEvent *event, gpointer data) {
+    if (event->type == GDK_KEY_PRESS) {
+        if (((GdkEventKey *)event)->state & GDK_CONTROL_MASK) {
+            int key = ((GdkEventKey *)event)->keyval;
+            if ((def_key("close_tab", GDK_KEY_q) == key) ||
+                (def_key("download_manager", GDK_KEY_y) == key)) {
+                downloadmanager_delete(dm.win, NULL);
+                return TRUE;
+            }
+        }
+    }
+
+    return FALSE;
 }
 
 void
-changed_download_progress(GObject *obj, GParamSpec *pspec, gpointer data)
-{
-       WebKitDownload *download = WEBKIT_DOWNLOAD(obj);
-       WebKitURIResponse *resp;
-       GtkToolItem *tb = GTK_TOOL_ITEM(data);
-       gdouble p, size_mb;
-       const gchar *uri;
-       gchar *t, *filename, *base;
-
-       p = webkit_download_get_estimated_progress(download);
-       p = p > 1 ? 1 : p;
-       p = p < 0 ? 0 : p;
-       p *= 100;
-       resp = webkit_download_get_response(download);
-       size_mb = webkit_uri_response_get_content_length(resp) / 1e6;
-
-       uri = webkit_download_get_destination(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%% of %.1f MB)",
-                                                                                               webkit_uri_response_get_uri(resp), p, size_mb);
-       } else {
-               base = g_path_get_basename(filename);
-               t = g_strdup_printf("%s (%.0f%% of %.1f MB)", base, p, size_mb);
-               g_free(filename);
-               g_free(base);
-       }
-       gtk_tool_button_set_label(GTK_TOOL_BUTTON(tb), t);
-       g_free(t);
+changed_download_progress(GObject *obj, GParamSpec *pspec, gpointer data) {
+    WebKitDownload *download = WEBKIT_DOWNLOAD(obj);
+    WebKitURIResponse *resp;
+    GtkToolItem *tb = GTK_TOOL_ITEM(data);
+    gdouble p, size_mb;
+    const gchar *uri;
+    gchar *t, *filename, *base;
+
+    p = webkit_download_get_estimated_progress(download);
+    p = p > 1 ? 1 : p;
+    p = p < 0 ? 0 : p;
+    p *= 100;
+    resp = webkit_download_get_response(download);
+    size_mb = webkit_uri_response_get_content_length(resp) / 1e6;
+
+    uri = webkit_download_get_destination(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%% of %.1f MB)",
+                            webkit_uri_response_get_uri(resp), p, size_mb);
+    } else {
+        base = g_path_get_basename(filename);
+        t = g_strdup_printf("%s (%.0f%% of %.1f MB)", base, p, size_mb);
+        g_free(filename);
+        g_free(base);
+    }
+    gtk_tool_button_set_label(GTK_TOOL_BUTTON(tb), t);
+    g_free(t);
 }
+
 void
-download_finished(WebKitDownload *download, gpointer data)
-{
-       if (strcmp(gtk_tool_button_get_icon_name(GTK_TOOL_BUTTON(data)),
-                                                "dialog-error") != 0)
-               gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(data), "emblem-downloads");
-       downloads--;
+download_finished(WebKitDownload *download, gpointer data) {
+    if (strcmp(gtk_tool_button_get_icon_name(GTK_TOOL_BUTTON(data)),
+               "dialog-error") != 0)
+        gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(data),
+                                      "emblem-downloads");
+    downloads--;
 }
 
 void
 download_start(WebKitWebView *web_view, WebKitDownload *download,
-                                                        gpointer data)
-{
-       g_signal_connect(G_OBJECT(download), "decide-destination",
-                                                                        G_CALLBACK(download_handle), data);
+               gpointer data) {
+    g_signal_connect(G_OBJECT(download), "decide-destination",
+                     G_CALLBACK(download_handle), data);
 }
 
 gboolean
 download_handle(WebKitDownload *download, gchar *suggested_filename,
-                                                               gpointer data)
-{
-       gchar *sug_clean, *path, *path2 = NULL, *uri;
-       GtkToolItem *tb;
-       int suffix = 1;
-       size_t i;
-
-       sug_clean = g_strdup(suggested_filename);
-       for (i = 0; i < strlen(sug_clean); i++)
-               if (sug_clean[i] == G_DIR_SEPARATOR)
-                       sug_clean[i] = '_';
-
-       path = g_build_filename((char *)data, sug_clean, NULL);
-       path2 = g_strdup(path);
-       while (g_file_test(path2, G_FILE_TEST_EXISTS) && suffix < 1000) {
-               g_free(path2);
-
-               path2 = g_strdup_printf("%s.%d", path, suffix);
-               suffix++;
-       }
-
-       if (suffix == 1000) {
-               fprintf(stderr, __NAME__": Suffix reached limit for download.\n");
-               webkit_download_cancel(download);
-       } else {
-               uri = g_filename_to_uri(path2, NULL, NULL);
-               webkit_download_set_destination(download, uri);
-               g_free(uri);
-
-               tb = gtk_tool_button_new(NULL, NULL);
-               gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(tb), "network-receive");
-               gtk_tool_button_set_label(GTK_TOOL_BUTTON(tb), sug_clean);
-               gtk_toolbar_insert(GTK_TOOLBAR(dm.toolbar), tb, 0);
-               gtk_widget_show_all(dm.win);
-
-               g_signal_connect(G_OBJECT(download), "notify::estimated-progress",
-                                                                                G_CALLBACK(changed_download_progress), tb);
-
-               downloads++;
-               g_signal_connect(G_OBJECT(download), "finished",
-                                                                                G_CALLBACK(download_finished), tb);
-
-               g_object_ref(download);
-
-               struct DownloadItem *payload = malloc(sizeof(*payload));
-                                                                                                               payload->tb = (GtkToolButton *)tb;
-                                                                                                               payload->download = download;
-                                                                                                               g_signal_connect(G_OBJECT(tb), "clicked",
-                                                                                                                                                                                G_CALLBACK(download_click),
-                                                                                                                                                                                payload);
-               g_signal_connect(G_OBJECT(tb), "failed", G_CALLBACK(download_cancel),
-                                                                                payload);
-               g_signal_connect(G_OBJECT(tb), "destroy_event", G_CALLBACK(g_free),
-                                                                                payload);
-       }
-
-       g_free(sug_clean);
-       g_free(path);
-       g_free(path2);
-
-       /* Propagate -- to whom it may concern. */
-       return FALSE;
+                gpointer data) {
+    gchar *sug_clean, *path, *path2 = NULL, *uri;
+    GtkToolItem *tb;
+    int suffix = 1;
+    size_t i;
+
+    sug_clean = g_strdup(suggested_filename);
+    for (i = 0; i < strlen(sug_clean); i++)
+        if (sug_clean[i] == G_DIR_SEPARATOR)
+            sug_clean[i] = '_';
+
+    path = g_build_filename((char *)data, sug_clean, NULL);
+    path2 = g_strdup(path);
+    while (g_file_test(path2, G_FILE_TEST_EXISTS) && suffix < 1000) {
+        g_free(path2);
+
+        path2 = g_strdup_printf("%s.%d", path, suffix);
+        suffix++;
+    }
+
+    if (suffix == 1000) {
+        fprintf(stderr, __NAME__ ": Suffix reached limit for download.\n");
+        webkit_download_cancel(download);
+    } else {
+        uri = g_filename_to_uri(path2, NULL, NULL);
+        webkit_download_set_destination(download, uri);
+        g_free(uri);
+
+        tb = gtk_tool_button_new(NULL, NULL);
+        gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(tb), "network-receive");
+        gtk_tool_button_set_label(GTK_TOOL_BUTTON(tb), sug_clean);
+        gtk_toolbar_insert(GTK_TOOLBAR(dm.toolbar), tb, 0);
+        gtk_widget_show_all(dm.win);
+
+        g_signal_connect(G_OBJECT(download), "notify::estimated-progress",
+                         G_CALLBACK(changed_download_progress), tb);
+
+        downloads++;
+        g_signal_connect(G_OBJECT(download), "finished",
+                         G_CALLBACK(download_finished), tb);
+
+        g_object_ref(download);
+
+        struct DownloadItem *payload = malloc(sizeof(*payload));
+        payload->tb = (GtkToolButton *)tb;
+        payload->download = download;
+        g_signal_connect(G_OBJECT(tb), "clicked", G_CALLBACK(download_click),
+                         payload);
+        g_signal_connect(G_OBJECT(tb), "failed", G_CALLBACK(download_cancel),
+                         payload);
+        g_signal_connect(G_OBJECT(tb), "destroy_event", G_CALLBACK(g_free),
+                         payload);
+    }
+
+    g_free(sug_clean);
+    g_free(path);
+    g_free(path2);
+
+    // Propagate -- to whom it may concern.
+    return FALSE;
 }
 
 void
-download_cancel(GtkMenuItem *tb, gpointer data)
-{
-       struct DownloadItem *payload = data;
-       gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(payload->tb), "dialog-error");
-       webkit_download_cancel(payload->download);
+download_cancel(GtkMenuItem *tb, gpointer data) {
+    struct DownloadItem *payload = data;
+    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(payload->tb), "dialog-error");
+    webkit_download_cancel(payload->download);
 }
 
 void
-download_remove(GtkMenuItem *tb, gpointer data)
-{
-       struct DownloadItem *payload = data;
-       g_object_unref(payload->download);
-       gtk_widget_destroy(GTK_WIDGET(payload->tb));
+download_remove(GtkMenuItem *tb, gpointer data) {
+    struct DownloadItem *payload = data;
+    g_object_unref(payload->download);
+    gtk_widget_destroy(GTK_WIDGET(payload->tb));
 }
 
 void
-download_copy_url(GtkMenuItem *tb, gpointer data)
-{
-       struct DownloadItem *payload = data;
-       WebKitURIRequest *req = webkit_download_get_request(payload->download);
-       const gchar *uri = webkit_uri_request_get_uri(req);
-       gtk_clipboard_set_text(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), uri,
-                                                                                                strlen(uri));
+download_copy_url(GtkMenuItem *tb, gpointer data) {
+    struct DownloadItem *payload = data;
+    WebKitURIRequest *req = webkit_download_get_request(payload->download);
+    const gchar *uri = webkit_uri_request_get_uri(req);
+    gtk_clipboard_set_text(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), uri,
+                           strlen(uri));
 }
 
 void
-download_copy_path(GtkMenuItem *tb, gpointer data)
-{
-       struct DownloadItem *payload = data;
-       const gchar *path = webkit_download_get_destination(payload->download);
-       gtk_clipboard_set_text(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), path + 7,
-                                                                                                strlen(path) - 7); // Offset by 7 to remove "file://"
+download_copy_path(GtkMenuItem *tb, gpointer data) {
+    struct DownloadItem *payload = data;
+    const gchar *path = webkit_download_get_destination(payload->download);
+    gtk_clipboard_set_text(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), path + 7,
+                           strlen(path) - 7); // Offset by 7 to remove "file://"
 }
 
 void
-download_click(GtkToolButton *tb, gpointer data)
-{
-  GtkWidget *pmenu = gtk_menu_new();
-       GtkWidget *option;
-
-       if (strcmp(gtk_tool_button_get_icon_name(GTK_TOOL_BUTTON(tb)),
-                                                "network-receive") == 0) {
-               option = gtk_menu_item_new_with_label("Cancel download");
-               g_signal_connect(G_OBJECT(option), "activate",
-                                                                                G_CALLBACK(download_cancel), data);
-       } else {
-               option = gtk_menu_item_new_with_label("Remove download");
-               g_signal_connect(G_OBJECT(option), "activate",
-                                                                                G_CALLBACK(download_remove), data);
-       }
-       gtk_widget_show(option);
-       gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
-
-       option = gtk_menu_item_new_with_label("Copy download URL");
-       gtk_widget_show(option);
-       gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
-       g_signal_connect(G_OBJECT(option), "activate",
-                                                                        G_CALLBACK(download_copy_url), data);
-
-       option = gtk_menu_item_new_with_label("Copy local path");
-       gtk_widget_show(option);
-       gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
-       g_signal_connect(G_OBJECT(option), "activate",
-                                                                        G_CALLBACK(download_copy_path), data);
-
-       gtk_menu_popup_at_pointer(GTK_MENU(pmenu), NULL);
+download_click(GtkToolButton *tb, gpointer data) {
+    GtkWidget *pmenu = gtk_menu_new();
+    GtkWidget *option;
+
+    if (strcmp(gtk_tool_button_get_icon_name(GTK_TOOL_BUTTON(tb)),
+               "network-receive") == 0) {
+        option = gtk_menu_item_new_with_label("Cancel download");
+        g_signal_connect(G_OBJECT(option), "activate",
+                         G_CALLBACK(download_cancel), data);
+    } else {
+        option = gtk_menu_item_new_with_label("Remove download");
+        g_signal_connect(G_OBJECT(option), "activate",
+                         G_CALLBACK(download_remove), data);
+    }
+    gtk_widget_show(option);
+    gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
+
+    option = gtk_menu_item_new_with_label("Copy download URL");
+    gtk_widget_show(option);
+    gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
+    g_signal_connect(G_OBJECT(option), "activate",
+                     G_CALLBACK(download_copy_url), data);
+
+    option = gtk_menu_item_new_with_label("Copy local path");
+    gtk_widget_show(option);
+    gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
+    g_signal_connect(G_OBJECT(option), "activate",
+                     G_CALLBACK(download_copy_path), data);
+
+    gtk_menu_popup_at_pointer(GTK_MENU(pmenu), NULL);
 }
 
 gboolean
-downloadmanager_delete(GtkWidget *obj, gpointer data)
-{
-       if (!quit_if_nothing_active())
-               gtk_widget_hide(dm.win);
+downloadmanager_delete(GtkWidget *obj, gpointer data) {
+    if (!quit_if_nothing_active())
+        gtk_widget_hide(dm.win);
 
-       return TRUE;
+    return TRUE;
 }
 
 void
-downloadmanager_setup(void)
-{
-       dm.win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-       gtk_window_set_type_hint(GTK_WINDOW(dm.win), GDK_WINDOW_TYPE_HINT_DIALOG);
-       gtk_window_set_default_size(GTK_WINDOW(dm.win), 500, 250);
-       gtk_window_set_title(GTK_WINDOW(dm.win), __NAME__" - Download Manager");
-       g_signal_connect(G_OBJECT(dm.win), "delete-event",
-                                                                        G_CALLBACK(downloadmanager_delete), NULL);
-       g_signal_connect(G_OBJECT(dm.win), "key-press-event",
-                                                                        G_CALLBACK(key_downloadmanager), NULL);
-
-       dm.toolbar = gtk_toolbar_new();
-       gtk_orientable_set_orientation(GTK_ORIENTABLE(dm.toolbar),
-                                                                                                                                GTK_ORIENTATION_VERTICAL);
-       gtk_toolbar_set_style(GTK_TOOLBAR(dm.toolbar), GTK_TOOLBAR_BOTH_HORIZ);
-       gtk_toolbar_set_show_arrow(GTK_TOOLBAR(dm.toolbar), FALSE);
-
-       dm.scroll = gtk_scrolled_window_new(NULL, NULL);
-       gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(dm.scroll),
-                                                                                                                                GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-       gtk_container_add(GTK_CONTAINER(dm.scroll), dm.toolbar);
-
-       gtk_container_add(GTK_CONTAINER(dm.win), dm.scroll);
+downloadmanager_setup(void) {
+    dm.win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+    gtk_window_set_type_hint(GTK_WINDOW(dm.win), GDK_WINDOW_TYPE_HINT_DIALOG);
+    gtk_window_set_default_size(GTK_WINDOW(dm.win), 500, 250);
+    gtk_window_set_title(GTK_WINDOW(dm.win), __NAME__ " - Download Manager");
+    g_signal_connect(G_OBJECT(dm.win), "delete-event",
+                     G_CALLBACK(downloadmanager_delete), NULL);
+    g_signal_connect(G_OBJECT(dm.win), "key-press-event",
+                     G_CALLBACK(key_downloadmanager), NULL);
+
+    dm.toolbar = gtk_toolbar_new();
+    gtk_orientable_set_orientation(GTK_ORIENTABLE(dm.toolbar),
+                                   GTK_ORIENTATION_VERTICAL);
+    gtk_toolbar_set_style(GTK_TOOLBAR(dm.toolbar), GTK_TOOLBAR_BOTH_HORIZ);
+    gtk_toolbar_set_show_arrow(GTK_TOOLBAR(dm.toolbar), FALSE);
+
+    dm.scroll = gtk_scrolled_window_new(NULL, NULL);
+    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(dm.scroll),
+                                   GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+    gtk_container_add(GTK_CONTAINER(dm.scroll), dm.toolbar);
+
+    gtk_container_add(GTK_CONTAINER(dm.win), dm.scroll);
 }
 
 void
-downloadmanager_show(void)
-{
-       gtk_widget_show_all(dm.win);
+downloadmanager_show(void) {
+    gtk_widget_show_all(dm.win);
 }