[Swfdec-commits] src/swfmoz_dialog.c src/swfmoz_player.c src/swfmoz_player.h

Benjamin Otte company at kemper.freedesktop.org
Tue Jun 17 02:46:53 PDT 2008


 src/swfmoz_dialog.c |   17 +++++------------
 src/swfmoz_player.c |   42 +++++++++++++++++++++++++++++-------------
 src/swfmoz_player.h |    2 +-
 3 files changed, 35 insertions(+), 26 deletions(-)

New commits:
commit 120f5c8ad69bf4025f48a36244b6d9dc25afa0e6
Author: Riccardo Magliocchetti <riccardo at datahost.it>
Date:   Tue Jun 17 11:36:22 2008 +0200

    redo the output of the media page (fixes #15960)

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
 };
 


More information about the Swfdec-commits mailing list