Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/sound-juicer/ChangeLog,v
retrieving revision 1.373
diff -u -p -r1.373 ChangeLog
--- ChangeLog	4 Jul 2005 09:23:54 -0000	1.373
+++ ChangeLog	4 Jul 2005 18:29:58 -0000
@@ -1,3 +1,12 @@
+2005-07-04	Madhan Raj M  <madhanrm@cvs.gnome.org>
+
+	* src/sj-main.c:
+	* src/sj-extracting.c:
+	* src/sj-play.h:
+	* src/sound-juicer.h:
+	* data/sound-juicer.glade:
+	Bring the progress bar to the main UI.
+	
 2005-07-04  Ross Burton  <ross@burtonini.com>
 
 	* src/sj-main.c:
Index: src/sj-main.c
===================================================================
RCS file: /cvs/gnome/sound-juicer/src/sj-main.c,v
retrieving revision 1.81
diff -u -p -r1.81 sj-main.c
--- src/sj-main.c	4 Jul 2005 09:23:54 -0000	1.81
+++ src/sj-main.c	4 Jul 2005 18:30:02 -0000
@@ -70,6 +70,7 @@ static GtkWidget *status_bar;
 static GtkWidget *extract_menuitem, *play_menuitem, *select_all_menuitem, *deselect_all_menuitem;
 GtkListStore *track_store;
 static BaconMessageConnection *connection;
+GtkCellRenderer *toggle_renderer, *title_renderer, *artist_renderer;
 
 const char *base_uri, *path_pattern, *file_pattern;
 NautilusBurnDrive *drive = NULL;
@@ -1117,10 +1118,10 @@ int main (int argc, char **argv)
     GtkTreeViewColumn *column;
     GtkCellRenderer *renderer;
     
-    renderer = gtk_cell_renderer_toggle_new ();
-    g_signal_connect (renderer, "toggled", G_CALLBACK (on_extract_toggled), NULL);
+    toggle_renderer = gtk_cell_renderer_toggle_new ();
+    g_signal_connect (toggle_renderer, "toggled", G_CALLBACK (on_extract_toggled), NULL);
     column = gtk_tree_view_column_new_with_attributes (_("Extract"),
-                                                       renderer,
+                                                       toggle_renderer,
                                                        "active", COLUMN_EXTRACT,
                                                        NULL);
     gtk_tree_view_column_set_resizable (column, TRUE);
@@ -1139,26 +1140,26 @@ int main (int argc, char **argv)
     gtk_tree_view_column_set_cell_data_func (column, renderer, number_cell_icon_data_cb, NULL, NULL);
     gtk_tree_view_append_column (GTK_TREE_VIEW (track_listview), column);
 
-    renderer = gtk_cell_renderer_text_new ();
-    g_signal_connect (renderer, "edited", G_CALLBACK (on_cell_edited), GUINT_TO_POINTER (COLUMN_TITLE));
-    g_object_set (G_OBJECT (renderer), "editable", TRUE, NULL);
+    title_renderer = gtk_cell_renderer_text_new ();
+    g_signal_connect (title_renderer, "edited", G_CALLBACK (on_cell_edited), GUINT_TO_POINTER (COLUMN_TITLE));
+    g_object_set (G_OBJECT (title_renderer), "editable", TRUE, NULL);
     column = gtk_tree_view_column_new_with_attributes (_("Title"),
-                                                       renderer,
+                                                       title_renderer,
                                                        "text", COLUMN_TITLE,
                                                        NULL);
     gtk_tree_view_column_set_resizable (column, TRUE);
     gtk_tree_view_column_set_expand (column, TRUE);
     gtk_tree_view_append_column (GTK_TREE_VIEW (track_listview), column);
 
-    renderer = gtk_cell_renderer_text_new ();
+    artist_renderer = gtk_cell_renderer_text_new ();
     column = gtk_tree_view_column_new_with_attributes (_("Artist"),
-                                                       renderer,
+                                                       artist_renderer,
                                                        "text", COLUMN_ARTIST,
                                                        NULL);
     gtk_tree_view_column_set_resizable (column, TRUE);
     gtk_tree_view_column_set_expand (column, TRUE);
-    g_signal_connect (renderer, "edited", G_CALLBACK (on_cell_edited), GUINT_TO_POINTER (COLUMN_ARTIST));
-    g_object_set (G_OBJECT (renderer), "editable", TRUE, NULL);
+    g_signal_connect (artist_renderer, "edited", G_CALLBACK (on_cell_edited), GUINT_TO_POINTER (COLUMN_ARTIST));
+    g_object_set (G_OBJECT (artist_renderer), "editable", TRUE, NULL);
     gtk_tree_view_append_column (GTK_TREE_VIEW (track_listview), column);
     
     renderer = gtk_cell_renderer_text_new ();
Index: src/sound-juicer.h
===================================================================
RCS file: /cvs/gnome/sound-juicer/src/sound-juicer.h,v
retrieving revision 1.16
diff -u -p -r1.16 sound-juicer.h
--- src/sound-juicer.h	1 Jul 2005 09:29:34 -0000	1.16
+++ src/sound-juicer.h	4 Jul 2005 18:30:04 -0000
@@ -31,6 +31,7 @@
 #include <nautilus-burn-drive.h>
 #include <gconf/gconf-client.h>
 #include <glade/glade-xml.h>
+#include <gtk/gtk.h>
 #include <gtk/gtkwidget.h>
 #include <gtk/gtkliststore.h>
 #include "sj-extractor.h"
@@ -119,6 +120,11 @@ extern gboolean eject_finished;
  * If we are in auto-start mode
  */
 extern gboolean autostart;
+
+/**
+ * Toggle, Title and Artist Renderers 
+ */
+extern GtkCellRenderer *toggle_renderer, *title_renderer, *artist_renderer;
 
 /**
  * GConf key names
Index: src/sj-play.h
===================================================================
RCS file: /cvs/gnome/sound-juicer/src/sj-play.h,v
retrieving revision 1.2
diff -u -p -r1.2 sj-play.h
--- src/sj-play.h	1 Jul 2005 09:29:34 -0000	1.2
+++ src/sj-play.h	4 Jul 2005 18:30:04 -0000
@@ -27,5 +27,7 @@
 #include "sj-structures.h"
 
 void	stop_playback	(void);
+void   on_tracklist_row_activate (GtkTreeView * treeview, GtkTreePath * path,
+                   GtkTreeViewColumn * col, gpointer user_data);
 
 #endif /* SJ_PLAY_H_H */
Index: src/sj-extracting.c
===================================================================
RCS file: /cvs/gnome/sound-juicer/src/sj-extracting.c,v
retrieving revision 1.63
diff -u -p -r1.63 sj-extracting.c
--- src/sj-extracting.c	4 Jul 2005 08:44:43 -0000	1.63
+++ src/sj-extracting.c	4 Jul 2005 18:30:08 -0000
@@ -32,6 +32,8 @@
 #include <gtk/gtkmain.h>
 #include <gtk/gtkmessagedialog.h>
 #include <gtk/gtkprogressbar.h>
+#include <gtk/gtkstatusbar.h>
+#include <gtk/gtkimage.h>
 #include <gtk/gtkstock.h>
 #include <gtk/gtktreemodel.h>
 
@@ -50,17 +52,17 @@ typedef struct {
 /** If this module has been initialised yet. */
 static gboolean initialised = FALSE;
 
-/** The progress dialog. */
-static GtkWidget *progress_dialog;
+/** Tha Extract label */
+static GtkLabel *extract_label;
 
-/** The track and album progress bars. */
-static GtkWidget *track_progress, *album_progress;
+/** Tha Extract image */
+static GtkImage *extract_image;
 
-/** The progress label. */
-static GtkWidget *progress_label;
+/** The progress bar and Status bar */
+static GtkWidget *progress_bar, *status_bar;
 
 /** The widgets in the main UI */
-static GtkWidget *extract_button, *play_button, *title_entry, *artist_entry, *genre_entry, *track_listview;
+static GtkWidget *play_button, *title_entry, *artist_entry, *genre_entry, *track_listview;
 
 /** The menuitem in the main menu */
 static GtkWidget *extract_menuitem, *play_menuitem, *reread_menuitem, *select_all_menuitem, *deselect_all_menuitem;
@@ -149,9 +151,17 @@ cleanup (void)
   g_list_free (pending);
   pending = NULL;
   track = NULL;
-  gtk_widget_set_sensitive (extract_button, TRUE);
+
+  /* Change back the label and image to Extract */
+  gtk_label_set_text_with_mnemonic (extract_label, "E_xtract");
+  gtk_image_set_from_stock (extract_image, "gtk-cdrom",
+                 GTK_ICON_SIZE_BUTTON);
+  /* Clear the Status bar */
+  gtk_statusbar_push (GTK_STATUSBAR (status_bar), 0, "");
+  /* Clear the progress bar */
+  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), 0);
+	
   gtk_widget_set_sensitive (play_button, TRUE);
-  gtk_widget_set_sensitive (track_listview, TRUE);
   gtk_widget_set_sensitive (title_entry, TRUE);
   gtk_widget_set_sensitive (artist_entry, TRUE);
   gtk_widget_set_sensitive (genre_entry, TRUE);
@@ -161,6 +171,12 @@ cleanup (void)
   gtk_widget_set_sensitive (reread_menuitem, TRUE);
   gtk_widget_set_sensitive (select_all_menuitem, TRUE);
   gtk_widget_set_sensitive (deselect_all_menuitem, TRUE);
+  /*Enable the Extract column and Make the Title and Artist column Editable*/
+  g_object_set (G_OBJECT (toggle_renderer), "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL);
+  g_object_set (G_OBJECT (title_renderer), "editable", TRUE, NULL);
+  g_object_set (G_OBJECT (artist_renderer), "editable", TRUE, NULL);
+  g_signal_handlers_unblock_by_func (track_listview, on_tracklist_row_activate, NULL);
+
 }
 
 /**
@@ -262,7 +278,6 @@ pop_and_extract (void)
     directory = create_directory_for (file_path, &error);
     if (error) {
       GtkWidget *dialog;
-      gtk_widget_hide (progress_dialog);
       text = g_strdup_printf (_("Sound Juicer could not extract this CD.\nReason: %s"), error->message);
 
       dialog = gtk_message_dialog_new (GTK_WINDOW (main_window), 0,
@@ -284,21 +299,18 @@ pop_and_extract (void)
       on_completion_cb (NULL, NULL);
       return;
     }
-
+   /* Update the state stock image */
+   gtk_list_store_set (track_store, &track->iter,
+                   COLUMN_STATE, STATE_EXTRACTING, -1);
+		
     /* Update the progress bars */
-    gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (track_progress), 0);
-    gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (album_progress),
+    gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar),
                                    CLAMP (1.0 - ((g_list_length (pending) + 1)  / (float)total_extracting), 0.0, 1.0));
 
-    text = g_strdup_printf (_("Extracting '%s'"), track->title);
-    gtk_label_set_text (GTK_LABEL (progress_label), text);
-    g_free (text);
-
     /* Now actually do the extraction */
     sj_extractor_extract_track (extractor, track, file_path, &error);
     if (error) {
       GtkWidget *dialog;
-      gtk_widget_hide (progress_dialog);
 
       text = g_strdup_printf (_("Sound Juicer could not extract this CD.\nReason: %s"), error->message);
 
@@ -347,18 +359,14 @@ extract_track_foreach_cb (GtkTreeModel *
 static void
 update_speed_progress (SjExtractor *extractor, float speed, int eta)
 {
-  GtkWidget *eta_label;
   char *eta_str;
 
-  eta_label = glade_xml_get_widget (glade, "eta_label");
-
   if (eta >= 0) {
-    eta_str = g_strdup_printf (_("%d:%02d (at %0.1fx)"), eta / 60, eta % 60, speed);
+    eta_str = g_strdup_printf (_("Estimated time left:%d:%02d (at %0.1fx)"), eta / 60, eta % 60, speed);
   } else {
-    eta_str = g_strdup (_("Unknown (at 0.0x)"));
+    eta_str = g_strdup (_("Estimated time left:Unknown (at 0.0x)"));
   }
-
-  gtk_label_set_label (GTK_LABEL (eta_label), eta_str);
+  gtk_statusbar_push (GTK_STATUSBAR (status_bar), 0, eta_str);
   g_free (eta_str);
 }
 
@@ -368,20 +376,11 @@ update_speed_progress (SjExtractor *extr
 static void
 on_progress_cb (SjExtractor *extractor, const int seconds, gpointer data)
 {
-  /* Track progress */
-  if (track->duration != 0) {
-    float percent;
-    percent = CLAMP ((float)seconds / (float)track->duration, 0, 1);
-    gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (track_progress), percent);
-  } else {
-    gtk_progress_bar_pulse (GTK_PROGRESS_BAR (track_progress));
-  }
-
   /* Album progress */
   if (total_duration != 0) {
     float percent;
     percent = CLAMP ((float)(current_duration + seconds) / (float)total_duration, 0, 1);
-    gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (album_progress), percent);
+    gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), percent);
 
     if (before.seconds == -1) {
       before.seconds = current_duration + seconds;
@@ -491,11 +490,13 @@ show_finished_dialog (void)
 static void
 on_completion_cb (SjExtractor *extractor, gpointer data)
 {
+   gtk_list_store_set (track_store, &track->iter,
+                     COLUMN_STATE, STATE_IDLE, -1);
+
   /* Uncheck the Extract check box */
   gtk_list_store_set (track_store, &track->iter, COLUMN_EXTRACT, FALSE, -1);
 
   if (pending == NULL) {
-    gtk_widget_hide (progress_dialog);
     show_finished_dialog ();
     if (autostart) {
       gtk_main_quit ();
@@ -516,8 +517,8 @@ on_error_cb (SjExtractor *extractor, GEr
 {
   GtkWidget *dialog;
   char *text;
-  /* We've come to a screeching halt... */
-  gtk_widget_hide (progress_dialog);
+  gtk_list_store_set (track_store, &track->iter,
+                 COLUMN_STATE, STATE_IDLE, -1);
   /* Display a nice dialog */
   text = g_strdup_printf (_("Sound Juicer could not extract this CD.\nReason: %s"), error->message);
 
@@ -542,8 +543,9 @@ void
 on_progress_cancel_clicked (GtkWidget *button, gpointer user_data)
 {
   sj_extractor_cancel_extract (extractor);
+  gtk_list_store_set (track_store, &track->iter,
+                 COLUMN_STATE, STATE_IDLE, -1);
   cleanup ();
-  gtk_widget_hide (progress_dialog);
   extracting = FALSE;
 }
 
@@ -553,9 +555,23 @@ on_progress_cancel_clicked (GtkWidget *b
 void
 on_extract_activate (GtkWidget *button, gpointer user_data)
 {
+  GtkWidget *temp_widget;
+
   /* first make sure we're not playing, we cannot share the resource */
   stop_playback ();
 
+  /* Get the Extract label and image */
+  temp_widget= glade_xml_get_widget (glade, "extract_label");
+  extract_label = GTK_LABEL (temp_widget);
+  temp_widget = glade_xml_get_widget (glade, "extract_image");
+  extract_image = GTK_IMAGE (temp_widget);
+
+  /* If extracting, then cancel the extract */
+  if (extracting) {
+     on_progress_cancel_clicked (GTK_WIDGET (temp_widget), NULL);
+     return;
+  }
+						
   /* Populate the pending list */
   pending = NULL;
   total_extracting = 0;
@@ -576,18 +592,12 @@ on_extract_activate (GtkWidget *button, 
     g_signal_connect (extractor, "completion", G_CALLBACK (on_completion_cb), NULL);
     g_signal_connect (extractor, "error", G_CALLBACK (on_error_cb), NULL);
 
-    /* Get the progress dialog */
-    progress_dialog = glade_xml_get_widget (glade, "progress_dialog");
-    g_assert (progress_dialog != NULL);
-    gtk_window_set_transient_for (GTK_WINDOW (progress_dialog), GTK_WINDOW (main_window));
-    track_progress = glade_xml_get_widget (glade, "track_progress");
-    album_progress = glade_xml_get_widget (glade, "album_progress");
-    progress_label = glade_xml_get_widget (glade, "progress_label");
-    extract_button = glade_xml_get_widget (glade, "extract_button");
     play_button = glade_xml_get_widget (glade, "play_button");
     title_entry = glade_xml_get_widget (glade, "title_entry");
     artist_entry = glade_xml_get_widget (glade, "artist_entry");
     genre_entry = glade_xml_get_widget (glade, "genre_entry");
+    progress_bar = glade_xml_get_widget (glade, "progress_bar");
+    status_bar = glade_xml_get_widget (glade, "status_bar");
     track_listview = glade_xml_get_widget (glade, "track_listview");
     
     play_menuitem = glade_xml_get_widget (glade, "play_menuitem");
@@ -596,25 +606,22 @@ on_extract_activate (GtkWidget *button, 
     select_all_menuitem = glade_xml_get_widget (glade, "select_all");
     deselect_all_menuitem = glade_xml_get_widget (glade, "deselect_all");
     
-    /* TODO : this callback should be in the glade file */
-    g_signal_connect (progress_dialog, "delete-event", G_CALLBACK (on_progress_cancel_clicked), NULL);
-
     initialised = TRUE;
   }
+  /* Change the label and image to Cancel while extracting*/
+  gtk_label_set_text_with_mnemonic (extract_label, "_Stop");
+  gtk_image_set_from_stock (extract_image, "gtk-stop",
+					GTK_ICON_SIZE_BUTTON);
 
   /* Reset the progress dialog */
-  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (track_progress), 0);
-  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (album_progress), 0);
+  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), 0);
   update_speed_progress (NULL, 0.0, -1);
-  gtk_widget_show_all (progress_dialog);
 
   /* Disable the widgets in the main UI*/
-  gtk_widget_set_sensitive (extract_button, FALSE);
   gtk_widget_set_sensitive (play_button, FALSE);
   gtk_widget_set_sensitive (title_entry, FALSE);
   gtk_widget_set_sensitive (artist_entry, FALSE);
   gtk_widget_set_sensitive (genre_entry, FALSE);
-  gtk_widget_set_sensitive (track_listview, FALSE);
 
   /* Disable the menuitems in the main menu*/	
   gtk_widget_set_sensitive (play_menuitem, FALSE);
@@ -622,7 +629,13 @@ on_extract_activate (GtkWidget *button, 
   gtk_widget_set_sensitive (reread_menuitem, FALSE);
   gtk_widget_set_sensitive (select_all_menuitem, FALSE);
   gtk_widget_set_sensitive (deselect_all_menuitem, FALSE);
-  
+
+  /* Disable the Extract column */
+  g_object_set (G_OBJECT (toggle_renderer), "mode", GTK_CELL_RENDERER_MODE_INERT, NULL);
+  g_object_set (G_OBJECT (title_renderer), "editable", FALSE, NULL);
+  g_object_set (G_OBJECT (artist_renderer), "editable", FALSE, NULL);
+  g_signal_handlers_block_by_func (track_listview, on_tracklist_row_activate, NULL);
+
   /* Start the extracting */
   extracting = TRUE;
   pop_and_extract ();
Index: data/sound-juicer.glade
===================================================================
RCS file: /cvs/gnome/sound-juicer/data/sound-juicer.glade,v
retrieving revision 1.46
diff -u -p -r1.46 sound-juicer.glade
--- data/sound-juicer.glade	1 Jul 2005 09:29:34 -0000	1.46
+++ data/sound-juicer.glade	4 Jul 2005 18:30:15 -0000
@@ -549,7 +549,7 @@
 			      <property name="spacing">2</property>
 
 			      <child>
-				<widget class="GtkImage" id="image72">
+				<widget class="GtkImage" id="extract_image">
 				  <property name="visible">True</property>
 				  <property name="stock">gtk-cdrom</property>
 				  <property name="icon_size">4</property>
@@ -566,7 +566,7 @@
 			      </child>
 
 			      <child>
-				<widget class="GtkLabel" id="label38">
+				<widget class="GtkLabel" id="extract_label">
 				  <property name="visible">True</property>
 				  <property name="label" translatable="yes">E_xtract</property>
 				  <property name="use_underline">True</property>
@@ -639,17 +639,43 @@
       </child>
 
       <child>
-	<widget class="GtkStatusbar" id="status_bar">
-	  <property name="visible">True</property>
-	  <property name="has_resize_grip">True</property>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
+          <widget class="GtkHBox" id="hbox13">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child>
+        <widget class="GtkProgressBar" id="progress_bar">
+          <property name="visible">True</property>
+          <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+          <property name="fraction">0</property>
+          <property name="pulse_step">0.1</property>
+        </widget>
+        <packing>
+          <property name="padding">0</property>
+          <property name="expand">False</property>
+          <property name="fill">False</property>
+        </packing>
+      </child>
+      <child>
+        <widget class="GtkStatusbar" id="status_bar">
+          <property name="visible">True</property>
+          <property name="has_resize_grip">True</property>
+        </widget>
+        <packing>
+          <property name="padding">0</property>
+          <property name="expand">True</property>
+          <property name="fill">True</property>
+        </packing>
       </child>
     </widget>
+    <packing>
+      <property name="padding">0</property>
+      <property name="expand">False</property>
+      <property name="fill">False</property>
+    </packing>
+	  </child>
+    </widget>
   </child>
 </widget>
 
@@ -828,283 +854,6 @@
 	<packing>
 	  <property name="padding">0</property>
 	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkDialog" id="progress_dialog">
-  <property name="width_request">300</property>
-  <property name="title" translatable="yes">Progress</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="has_separator">False</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox3">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area3">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="progress_cancel_button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-stop</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-6</property>
-	      <signal name="clicked" handler="on_progress_cancel_clicked" last_modification_time="Tue, 01 Apr 2003 15:51:16 GMT"/>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkVBox" id="vbox7">
-	  <property name="border_width">8</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">8</property>
-
-	  <child>
-	    <widget class="GtkLabel" id="progress_label">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Unknown</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkFrame" id="frame4">
-	      <property name="visible">True</property>
-	      <property name="label_xalign">0</property>
-	      <property name="label_yalign">0.5</property>
-	      <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox8">
-		  <property name="border_width">8</property>
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">8</property>
-
-		  <child>
-		    <widget class="GtkProgressBar" id="track_progress">
-		      <property name="visible">True</property>
-		      <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
-		      <property name="fraction">0</property>
-		      <property name="pulse_step">0.10000000149</property>
-		      <property name="text" translatable="yes"></property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label13">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">&lt;b&gt;Track Progress&lt;/b&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">label_item</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkFrame" id="frame5">
-	      <property name="visible">True</property>
-	      <property name="label_xalign">0</property>
-	      <property name="label_yalign">0.5</property>
-	      <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox9">
-		  <property name="border_width">8</property>
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">8</property>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox8">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">2</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label30">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Estimated time left:</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="eta_label">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Unknown</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkProgressBar" id="album_progress">
-		      <property name="visible">True</property>
-		      <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
-		      <property name="fraction">0</property>
-		      <property name="pulse_step">0.10000000149</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label14">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">&lt;b&gt;Album Progress&lt;/b&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">label_item</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
 	  <property name="fill">True</property>
 	</packing>
       </child>
