Changeset 115301 in webkit


Ignore:
Timestamp:
Apr 26, 2012 4:01:19 AM (12 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Add downloads support to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=73662

Reviewed by Philippe Normand.

  • MiniBrowser/gtk/BrowserDownloadsBar.c: Added.

(browserDownloadsBarChildRemoved): Close the downloads bar if
there aren't active downloads.
(browserDownloadsBarResponse): Destroy the downloads bar when
closed.
(browser_downloads_bar_init):
(browser_downloads_bar_class_init):
(browser_downloads_bar_new): Create a new downloads bar.
(actionButtonClicked): Cancel the download if cancel button was
clicked, or open the downloaded file if the download finished.
(browserDownloadFinalize):
(browser_download_init):
(browser_download_class_init):
(downloadReceivedResponse): Update download message using the
response URI.
(remainingTime): Helper function to get human readable remaining
time.
(downloadProgress): Update downloads progress.
(downloadReceivedData):
(downloadFinished): Update download message and turn download
button into open.
(downloadFailed): Show error message or destroy the download UI if
it was cancelled.
(browserDownloadNew): Create a new download widget for the given
WebKitDownload.
(browser_downloads_bar_add_download): Add download widget to the
downloads bar.

  • MiniBrowser/gtk/BrowserDownloadsBar.h: Added.
  • MiniBrowser/gtk/BrowserWindow.c:

(downloadStarted): Create a download widget and add it to the
downloads bar when a new download is started.
(browserWindowConstructed): Connect to
WebKitWebContext::download-started signal.

  • MiniBrowser/gtk/GNUmakefile.am: Add new files to compilation.
Location:
trunk/Tools
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r115298 r115301  
     12012-04-26  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Add downloads support to MiniBrowser
     4        https://bugs.webkit.org/show_bug.cgi?id=73662
     5
     6        Reviewed by Philippe Normand.
     7
     8        * MiniBrowser/gtk/BrowserDownloadsBar.c: Added.
     9        (browserDownloadsBarChildRemoved): Close the downloads bar if
     10        there aren't active downloads.
     11        (browserDownloadsBarResponse): Destroy the downloads bar when
     12        closed.
     13        (browser_downloads_bar_init):
     14        (browser_downloads_bar_class_init):
     15        (browser_downloads_bar_new): Create a new downloads bar.
     16        (actionButtonClicked): Cancel the download if cancel button was
     17        clicked, or open the downloaded file if the download finished.
     18        (browserDownloadFinalize):
     19        (browser_download_init):
     20        (browser_download_class_init):
     21        (downloadReceivedResponse): Update download message using the
     22        response URI.
     23        (remainingTime): Helper function to get human readable remaining
     24        time.
     25        (downloadProgress): Update downloads progress.
     26        (downloadReceivedData):
     27        (downloadFinished): Update download message and turn download
     28        button into open.
     29        (downloadFailed): Show error message or destroy the download UI if
     30        it was cancelled.
     31        (browserDownloadNew): Create a new download widget for the given
     32        WebKitDownload.
     33        (browser_downloads_bar_add_download): Add download widget to the
     34        downloads bar.
     35        * MiniBrowser/gtk/BrowserDownloadsBar.h: Added.
     36        * MiniBrowser/gtk/BrowserWindow.c:
     37        (downloadStarted): Create a download widget and add it to the
     38        downloads bar when a new download is started.
     39        (browserWindowConstructed): Connect to
     40        WebKitWebContext::download-started signal.
     41        * MiniBrowser/gtk/GNUmakefile.am: Add new files to compilation.
     42
    1432012-04-26  Carlos Garcia Campos  <cgarcia@igalia.com>
    244
  • trunk/Tools/MiniBrowser/gtk/BrowserWindow.c

    r111511 r115301  
    2727
    2828#include "BrowserWindow.h"
     29
     30#include "BrowserDownloadsBar.h"
    2931#include "BrowserSettingsDialog.h"
    3032#include <string.h>
     
    4951    GtkWidget *settingsDialog;
    5052    WebKitWebView *webView;
    51 
     53    GtkWidget *downloadsBar;
    5254};
    5355
     
    133135    if (progress == 1.0)
    134136        g_timeout_add(500, (GSourceFunc)resetEntryProgress, window->uriEntry);
     137}
     138
     139static void downloadStarted(WebKitWebContext *webContext, WebKitDownload *download, BrowserWindow *window)
     140{
     141    if (!window->downloadsBar) {
     142        window->downloadsBar = browser_downloads_bar_new();
     143        gtk_box_pack_start(GTK_BOX(window->mainBox), window->downloadsBar, FALSE, FALSE, 0);
     144        gtk_box_reorder_child(GTK_BOX(window->mainBox), window->downloadsBar, 0);
     145        g_object_add_weak_pointer(G_OBJECT(window->downloadsBar), (gpointer *)&(window->downloadsBar));
     146        gtk_widget_show(window->downloadsBar);
     147    }
     148    browser_downloads_bar_add_download(BROWSER_DOWNLOADS_BAR(window->downloadsBar), download);
    135149}
    136150
     
    424438    g_signal_connect(window->webView, "notify::zoom-level", G_CALLBACK(webViewZoomLevelChanged), window);
    425439
     440    g_signal_connect(webkit_web_view_get_context(window->webView), "download-started", G_CALLBACK(downloadStarted), window);
     441
    426442    WebKitBackForwardList *backForwadlist = webkit_web_view_get_back_forward_list(window->webView);
    427443    g_signal_connect(backForwadlist, "changed", G_CALLBACK(backForwadlistChanged), window);
  • trunk/Tools/MiniBrowser/gtk/GNUmakefile.am

    r112889 r115301  
    1818        Tools/MiniBrowser/gtk/BrowserCellRendererVariant.h \
    1919        Tools/MiniBrowser/gtk/BrowserCellRendererVariant.c \
     20        Tools/MiniBrowser/gtk/BrowserDownloadsBar.h \
     21        Tools/MiniBrowser/gtk/BrowserDownloadsBar.c \
    2022        Tools/MiniBrowser/gtk/BrowserSettingsDialog.h \
    2123        Tools/MiniBrowser/gtk/BrowserSettingsDialog.c \
Note: See TracChangeset for help on using the changeset viewer.