diff options
author | Riccardo Magliocchetti <riccardo@datahost.it> | 2008-06-17 11:36:22 +0200 |
---|---|---|
committer | Benjamin Otte <otte@gnome.org> | 2008-06-17 11:37:20 +0200 |
commit | 120f5c8ad69bf4025f48a36244b6d9dc25afa0e6 (patch) | |
tree | f37a7d9d58fc3261b499171aa7a3271009ff6423 | |
parent | 8743e32dd5490ade646c64dfe2d31ec64eac7e99 (diff) |
redo the output of the media page (fixes #15960)
-rw-r--r-- | src/swfmoz_dialog.c | 17 | ||||
-rw-r--r-- | src/swfmoz_player.c | 42 | ||||
-rw-r--r-- | src/swfmoz_player.h | 2 |
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 }; |