summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Magliocchetti <riccardo@datahost.it>2008-06-17 11:36:22 +0200
committerBenjamin Otte <otte@gnome.org>2008-06-17 11:37:20 +0200
commit120f5c8ad69bf4025f48a36244b6d9dc25afa0e6 (patch)
treef37a7d9d58fc3261b499171aa7a3271009ff6423
parent8743e32dd5490ade646c64dfe2d31ec64eac7e99 (diff)
redo the output of the media page (fixes #15960)
-rw-r--r--src/swfmoz_dialog.c17
-rw-r--r--src/swfmoz_player.c42
-rw-r--r--src/swfmoz_player.h2
3 files changed, 35 insertions, 26 deletions
diff --git a/src/swfmoz_dialog.c b/src/swfmoz_dialog.c
index 27b4e28..c05c952 100644
--- a/src/swfmoz_dialog.c
+++ b/src/swfmoz_dialog.c
@@ -191,18 +191,11 @@ swfmoz_dialog_get_media_page (SwfmozDialog *dialog)
gtk_tree_view_column_set_sort_column_id (column, SWFMOZ_LOADER_COLUMN_TYPE);
gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column);
- renderer = gtk_cell_renderer_progress_new ();
- column = gtk_tree_view_column_new_with_attributes ("Done", renderer,
- "value", SWFMOZ_LOADER_COLUMN_PERCENT_LOADED, NULL);
- gtk_tree_view_column_set_resizable (column, TRUE);
- gtk_tree_view_column_set_sort_column_id (column, SWFMOZ_LOADER_COLUMN_PERCENT_LOADED);
- gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column);
-
- renderer = gtk_cell_renderer_toggle_new ();
- column = gtk_tree_view_column_new_with_attributes ("Error", renderer,
- "active", SWFMOZ_LOADER_COLUMN_ERROR, NULL);
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes ("Status", renderer,
+ "text", SWFMOZ_LOADER_COLUMN_STATUS, NULL);
gtk_tree_view_column_set_resizable (column, TRUE);
- gtk_tree_view_column_set_sort_column_id (column, SWFMOZ_LOADER_COLUMN_ERROR);
+ gtk_tree_view_column_set_sort_column_id (column, SWFMOZ_LOADER_COLUMN_STATUS);
gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column);
gtk_tree_selection_set_mode (gtk_tree_view_get_selection
@@ -222,7 +215,7 @@ swfmoz_dialog_get_media_page (SwfmozDialog *dialog)
align = gtk_alignment_new (1.0, 0.5, 0.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), widget);
gtk_box_pack_end (GTK_BOX (vbox), align, FALSE, TRUE, 0);
-
+
return vbox;
}
diff --git a/src/swfmoz_player.c b/src/swfmoz_player.c
index 69f5808..09a7d0a 100644
--- a/src/swfmoz_player.c
+++ b/src/swfmoz_player.c
@@ -491,8 +491,8 @@ swfmoz_player_init (SwfmozPlayer *player)
player->context = g_main_context_default ();
player->loaders = GTK_TREE_MODEL (gtk_list_store_new (SWFMOZ_LOADER_N_COLUMNS,
- SWFMOZ_TYPE_LOADER, G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_UINT));
+ SWFMOZ_TYPE_LOADER, G_TYPE_STRING, G_TYPE_STRING,
+ G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING));
}
SwfdecPlayer *
@@ -518,22 +518,36 @@ swfmoz_player_new (NPP instance, gboolean windowless, gboolean opaque)
static void
swfmoz_player_loaders_update (GtkListStore *store, GtkTreeIter *iter, SwfdecLoader *loader)
{
- glong percent;
+ goffset loaded, size;
gboolean eof, error;
const SwfdecURL *url;
const char *url_string;
+ char *str_loaded, *str_size;
+ gchar *status;
+
+ loaded = swfdec_loader_get_loaded (loader);
+ size = swfdec_loader_get_size (loader);
- percent = swfdec_loader_get_size (loader);
- if (percent == 0) {
- percent = 100;
- } else if (percent < 0) {
- percent = 50;
- } else {
- percent = 100 * swfdec_loader_get_loaded (loader) / percent;
- percent = CLAMP (percent, 0, 100);
- }
/* FIXME: swfdec needs a function for this */
g_object_get (G_OBJECT (loader), "eof", &eof, "error", &error, NULL);
+
+ if (error == TRUE) {
+ status = g_strdup("error");
+ } else {
+ str_loaded = g_format_size_for_display(loaded);
+ str_size = g_format_size_for_display(size);
+
+ if (size == loaded)
+ status = g_strdup_printf("%s", str_loaded);
+ else if (size < 0)
+ status = g_strdup_printf("at %s", str_loaded);
+ else
+ status = g_strdup_printf("%s of %s", str_loaded, str_size);
+
+ g_free (str_loaded);
+ g_free (str_size);
+ }
+
url = swfdec_loader_get_url (loader);
if (url) {
url_string = swfdec_url_get_url (url);
@@ -550,8 +564,10 @@ swfmoz_player_loaders_update (GtkListStore *store, GtkTreeIter *iter, SwfdecLoad
SWFMOZ_LOADER_COLUMN_EOF, eof,
SWFMOZ_LOADER_COLUMN_ERROR, error,
SWFMOZ_LOADER_COLUMN_TYPE, swfmoz_loader_get_data_type_string (loader),
- SWFMOZ_LOADER_COLUMN_PERCENT_LOADED, (guint) percent,
+ SWFMOZ_LOADER_COLUMN_STATUS, status,
-1);
+
+ g_free(status);
}
static gboolean
diff --git a/src/swfmoz_player.h b/src/swfmoz_player.h
index 1781344..d9967f1 100644
--- a/src/swfmoz_player.h
+++ b/src/swfmoz_player.h
@@ -33,7 +33,7 @@ enum {
SWFMOZ_LOADER_COLUMN_TYPE,
SWFMOZ_LOADER_COLUMN_EOF,
SWFMOZ_LOADER_COLUMN_ERROR,
- SWFMOZ_LOADER_COLUMN_PERCENT_LOADED,
+ SWFMOZ_LOADER_COLUMN_STATUS,
SWFMOZ_LOADER_N_COLUMNS
};