Index: src/mozilla/ProgressListener2.cpp
===================================================================
RCS file: /cvsroot/galeon/galeon/src/mozilla/Attic/ProgressListener2.cpp,v
retrieving revision 1.37.2.19
diff -u -r1.37.2.19 ProgressListener2.cpp
--- src/mozilla/ProgressListener2.cpp 24 May 2002 21:35:42 -0000 1.37.2.19
+++ src/mozilla/ProgressListener2.cpp 3 Jun 2002 20:33:14 -0000
@@ -93,6 +93,7 @@
GtkWidget *pause_button;
GtkWidget *resume_button;
GtkWidget *abort_button;
+ GtkWidget *statusbar;
} DownloadDialogWidgets;
/**
@@ -106,6 +107,7 @@
gchar *elapsed;
gchar *remaining;
gfloat progress;
+ gfloat speed;
} DetailsInfo;
/*
@@ -139,6 +141,7 @@
void download_dialog_keep_open_cb (GtkToggleButton *button,
DownloadDialogWidgets *widgets);
+void update_status_bar (void);
static void selection_changed (DownloadDialogWidgets *widgets);
}
@@ -754,6 +757,7 @@
statusstr, buffer);
g_free (statusstr);
statusstr = tmp;
+ dinfo->speed = (float)currentKRate;
}
else
{
@@ -761,6 +765,7 @@
tmp = g_strdup_printf (_("%s at KB/s"), statusstr);
g_free (statusstr);
statusstr = tmp;
+ dinfo->speed = 0.0f;
}
g_free (dinfo->status);
@@ -784,6 +789,7 @@
gtk_clist_set_text (clist, row, COL_REMAINING, "??");
g_free (dinfo->remaining);
dinfo->remaining = g_strdup ("??");
+ dinfo->speed = 0.0f;
}
/* thaw the list to show updates */
@@ -792,6 +798,7 @@
/* make sure buttons are up to date */
selection_changed (dialog);
+ update_status_bar();
/* done */
return NS_OK;
}
@@ -889,6 +896,8 @@
g_free (dinfo);
g_hash_table_remove (details_hash, this);
+ update_status_bar();
+
/* if there are no more windows left, exit galeon */
if (g_list_length (all_windows) == 0 &&
!galeon_server_mode && window_count == 0)
@@ -1045,6 +1054,7 @@
dialog->pause_button = glade_xml_get_widget (gxml, "pause_button");
dialog->resume_button = glade_xml_get_widget (gxml, "resume_button");
dialog->abort_button = glade_xml_get_widget (gxml, "abort_button");
+ dialog->statusbar = glade_xml_get_widget (gxml, "statusbar");
/* dispense with XML interface */
gtk_object_unref (GTK_OBJECT (gxml));
@@ -1411,4 +1421,33 @@
}
return TRUE;
+}
+
+void update_status_bar (void)
+{
+ GtkCList *clist = GTK_CLIST (dialog->clist);
+ GProgressListener2 *Progress;
+ int row;
+ float total_speed = 0.0f;
+ gchar *tmp;
+ /* iterate over whole list */
+ for (row = 0; row < clist->rows; row++)
+ {
+ DetailsInfo *dinfo;
+
+ /* get this row */
+ Progress = (GProgressListener2 *)
+ gtk_clist_get_row_data (clist, row);
+ dinfo = (DetailsInfo *)
+ g_hash_table_lookup (details_hash, Progress);
+ total_speed += dinfo->speed;
+
+ }
+ tmp = g_strdup_printf (_("%d download(s) at %5.2f KB/s"), clist->rows, total_speed);
+
+ gtk_statusbar_pop(GTK_STATUSBAR(dialog->statusbar), 1);
+ if(clist->rows > 0)
+ gtk_statusbar_push(GTK_STATUSBAR(dialog->statusbar), 1, tmp);
+
+ g_free(tmp);
}
Index: ui/galeon.glade
===================================================================
RCS file: /cvsroot/galeon/galeon/ui/galeon.glade,v
retrieving revision 1.127.2.9
diff -u -r1.127.2.9 galeon.glade
--- ui/galeon.glade 26 May 2002 04:05:40 -0000 1.127.2.9
+++ ui/galeon.glade 3 Jun 2002 20:33:28 -0000
@@ -3705,6 +3705,17 @@
5
+ GtkStatusbar
+ statusbar
+
+ 0
+ False
+ False
+ GTK_PACK_END
+
+
+
+
GtkHButtonBox
GnomeDialog:action_area
hbuttonbox10