From f1ef34a569c6a97a5ba2516f4e4511d2a93f05f6 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sat, 18 Sep 2004 12:03:15 +0000 Subject: Fix download progress indicator in downloader view. 2004-09-18 Christian Persch * embed/downloader-view.c: (progress_cell_data_func): * embed/mozilla/MozDownload.cpp: * lib/ephy-gui.c: (ephy_gui_menu_position_tree_selection): Fix download progress indicator in downloader view. --- ChangeLog | 8 ++++++++ embed/downloader-view.c | 13 ++++++++++--- embed/mozilla/MozDownload.cpp | 10 ++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 354772849..3f926dc44 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-09-18 Christian Persch + + * embed/downloader-view.c: (progress_cell_data_func): + * embed/mozilla/MozDownload.cpp: + * lib/ephy-gui.c: (ephy_gui_menu_position_tree_selection): + + Fix download progress indicator in downloader view. + 2004-09-18 Marco Pesenti Gritti reviewed by: Christian Persch diff --git a/embed/downloader-view.c b/embed/downloader-view.c index 2029a701c..32975231c 100644 --- a/embed/downloader-view.c +++ b/embed/downloader-view.c @@ -522,6 +522,7 @@ progress_cell_data_func (GtkTreeViewColumn *col, gpointer user_data) { EphyDownloadState state; + const char *text = NULL; int percent; gtk_tree_model_get (model, iter, @@ -532,18 +533,24 @@ progress_cell_data_func (GtkTreeViewColumn *col, switch (state) { case EPHY_DOWNLOAD_INITIALISING: - g_object_set (renderer, "text", Q_("download status|Unknown"), NULL); + text = Q_("download status|Unknown"); break; case EPHY_DOWNLOAD_FAILED: - g_object_set (renderer, "text", Q_("download status|Failed"), NULL); + text = Q_("download status|Failed"); break; case EPHY_DOWNLOAD_DOWNLOADING: case EPHY_DOWNLOAD_PAUSED: - g_object_set (renderer, "text", NULL, "value", percent, NULL); + if (percent == -1) + { + text = Q_("download status|Unknown"); + percent = 0; + } break; default: g_return_if_reached (); } + + g_object_set (renderer, "text", text, "value", percent, NULL); } static void diff --git a/embed/mozilla/MozDownload.cpp b/embed/mozilla/MozDownload.cpp index eec039641..fdb8e3b75 100644 --- a/embed/mozilla/MozDownload.cpp +++ b/embed/mozilla/MozDownload.cpp @@ -298,6 +298,16 @@ MozDownload::OnStateChange (nsIWebProgress *aWebProgress, nsIRequest *aRequest, if (NS_FAILED(aStatus) && NS_SUCCEEDED(mStatus)) mStatus = aStatus; + if (aStateFlags & STATE_START) + { + mDownloadState = EPHY_DOWNLOAD_DOWNLOADING; + + if (mEphyDownload) + { + g_signal_emit_by_name (mEphyDownload, "changed"); + } + } + /* We will get this even in the event of a cancel */ if (aStateFlags & STATE_STOP) { -- cgit