gnome-commander r1877 - in trunk: . doc/C src



Author: epiotr
Date: Mon Jul 14 21:28:32 2008
New Revision: 1877
URL: http://svn.gnome.org/viewvc/gnome-commander?rev=1877&view=rev

Log:
Revamped transfer progress dlg

Modified:
   trunk/ChangeLog
   trunk/NEWS
   trunk/doc/C/gnome-commander.xml
   trunk/src/gnome-cmd-xfer-progress-win.cc
   trunk/src/gnome-cmd-xfer-progress-win.h
   trunk/src/gnome-cmd-xfer.cc

Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS	(original)
+++ trunk/NEWS	Mon Jul 14 21:28:32 2008
@@ -11,6 +11,7 @@
  * User defined shortcuts to arbitrary programs
  * Copying selected URIs to clipboard with ALT+click on toolbar button
  * Revamped search dialog
+ * Revamped transfer progress dialog
  * Updated help docs
  * New or updated translations: cs, de, es, fr, it, ja, oc, pl
  * New key bindings:

Modified: trunk/doc/C/gnome-commander.xml
==============================================================================
--- trunk/doc/C/gnome-commander.xml	(original)
+++ trunk/doc/C/gnome-commander.xml	Mon Jul 14 21:28:32 2008
@@ -5941,6 +5941,9 @@
                             <para>Revamped search dialog</para>
                         </listitem>
                         <listitem>
+                            <para>Revamped transfer progress dialog</para>
+                        </listitem>
+                        <listitem>
                             <para>Updated help docs</para>
                         </listitem>
                         <listitem>

Modified: trunk/src/gnome-cmd-xfer-progress-win.cc
==============================================================================
--- trunk/src/gnome-cmd-xfer-progress-win.cc	(original)
+++ trunk/src/gnome-cmd-xfer-progress-win.cc	Mon Jul 14 21:28:32 2008
@@ -77,7 +77,6 @@
     GtkWidget *button;
     GtkWidget *w = GTK_WIDGET (win);
 
-
     win->cancel_pressed = FALSE;
 
     gtk_window_set_title (GTK_WINDOW (win), _("Progress"));
@@ -98,6 +97,9 @@
     win->totalprog = create_progress_bar (w);
     gtk_container_add (GTK_CONTAINER (vbox), win->totalprog);
 
+    win->fileprog = create_progress_bar (w);
+    gtk_container_add (GTK_CONTAINER (vbox), win->fileprog);
+
     bbox = create_hbuttonbox (w);
     gtk_container_add (GTK_CONTAINER (vbox), bbox);
 
@@ -111,10 +113,17 @@
  * Public functions
  ***********************************/
 
-GtkWidget *gnome_cmd_xfer_progress_win_new ()
+GtkWidget *gnome_cmd_xfer_progress_win_new (guint no_of_files)
 {
     GnomeCmdXferProgressWin *win = (GnomeCmdXferProgressWin *) gtk_type_new (gnome_cmd_xfer_progress_win_get_type ());
 
+    if (no_of_files<2)
+    {
+        GtkWidget *vbox = gtk_bin_get_child (GTK_BIN (win));
+        gtk_container_remove (GTK_CONTAINER (vbox), win->fileprog);
+        win->fileprog = NULL;
+    }
+
     return GTK_WIDGET (win);
 }
 
@@ -145,25 +154,30 @@
 
 
 void gnome_cmd_xfer_progress_win_set_total_progress (GnomeCmdXferProgressWin *win,
+                                                     GnomeVFSFileSize file_bytes_copied,
+                                                     GnomeVFSFileSize file_size,
                                                      GnomeVFSFileSize bytes_copied,
                                                      GnomeVFSFileSize bytes_total)
 {
-    gchar text[128];
-    gfloat prog = -1.0f;
+    gfloat total_prog = bytes_total>0 ? (gdouble) bytes_copied/(gdouble) bytes_total : -1.0f;
+    gtk_progress_set_percentage (GTK_PROGRESS (win->totalprog), total_prog);
 
-    if (bytes_total > 0)
-        prog = (gdouble) bytes_copied / (gdouble) bytes_total;
+    if (win->fileprog)
+    {
+        gfloat file_prog = file_size>0 ? (gdouble) file_bytes_copied/(gdouble) file_size : -1.0f;
+        gtk_progress_set_percentage (GTK_PROGRESS (win->fileprog), file_prog);
+    }
 
-    gtk_progress_set_percentage (GTK_PROGRESS (win->totalprog), prog);
+    gchar *bytes_total_str = g_strdup (size2string (bytes_total, gnome_cmd_data_get_size_disp_mode()));
+    const gchar *bytes_copied_str = size2string (bytes_copied, gnome_cmd_data_get_size_disp_mode());
 
-    gchar *bytes_total_str = g_strdup(size2string(bytes_total, gnome_cmd_data_get_size_disp_mode()));
-    const gchar *bytes_copied_str = size2string(bytes_copied, gnome_cmd_data_get_size_disp_mode());
+    gchar text[128];
 
     g_snprintf (text, sizeof (text), _("%s of %s copied"), bytes_copied_str, bytes_total_str);
 
     gtk_label_set_text (GTK_LABEL (win->fileprog_label), text);
 
-    g_snprintf (text, sizeof (text), _("%.0f%% copied"), prog*100.0f);
+    g_snprintf (text, sizeof (text), _("%.0f%% copied"), total_prog*100.0f);
     gtk_window_set_title (GTK_WINDOW (win), text);
 
     g_free (bytes_total_str);

Modified: trunk/src/gnome-cmd-xfer-progress-win.h
==============================================================================
--- trunk/src/gnome-cmd-xfer-progress-win.h	(original)
+++ trunk/src/gnome-cmd-xfer-progress-win.h	Mon Jul 14 21:28:32 2008
@@ -38,6 +38,7 @@
     GtkWindow parent;
 
     GtkWidget *totalprog;
+    GtkWidget *fileprog;
     GtkWidget *msg_label;
     GtkWidget *fileprog_label;
 
@@ -51,23 +52,18 @@
 };
 
 
-GtkWidget*
-gnome_cmd_xfer_progress_win_new (void);
+GtkWidget *gnome_cmd_xfer_progress_win_new (guint no_of_files=0);
 
-GtkType
-gnome_cmd_xfer_progress_win_get_type (void);
+GtkType gnome_cmd_xfer_progress_win_get_type (void);
 
-void
-gnome_cmd_xfer_progress_win_set_total_progress (GnomeCmdXferProgressWin *win,
-                                                GnomeVFSFileSize bytes_copied,
-                                                GnomeVFSFileSize bytes_total);
-
-void
-gnome_cmd_xfer_progress_win_set_msg (GnomeCmdXferProgressWin *win,
-                                     const gchar *string);
-
-void
-gnome_cmd_xfer_progress_win_set_action (GnomeCmdXferProgressWin *win,
-                                        const gchar *string);
+void gnome_cmd_xfer_progress_win_set_total_progress (GnomeCmdXferProgressWin *win,
+                                                     GnomeVFSFileSize file_bytes_copied,
+                                                     GnomeVFSFileSize file_size,
+                                                     GnomeVFSFileSize bytes_copied,
+                                                     GnomeVFSFileSize bytes_total);
+
+void gnome_cmd_xfer_progress_win_set_msg (GnomeCmdXferProgressWin *win, const gchar *string);
+
+void gnome_cmd_xfer_progress_win_set_action (GnomeCmdXferProgressWin *win, const gchar *string);
 
 #endif // __GNOME_CMD_XFER_PROGRESS_WIN_H__

Modified: trunk/src/gnome-cmd-xfer.cc
==============================================================================
--- trunk/src/gnome-cmd-xfer.cc	(original)
+++ trunk/src/gnome-cmd-xfer.cc	Mon Jul 14 21:28:32 2008
@@ -248,7 +248,7 @@
             if ((total_diff > (gfloat)0.01 && total_prog >= 0.0 && total_prog <= 1.0) || data->first_time)
             {
                 data->first_time = FALSE;
-                gnome_cmd_xfer_progress_win_set_total_progress (data->win, data->total_bytes_copied, data->bytes_total);
+                gnome_cmd_xfer_progress_win_set_total_progress (data->win, data->bytes_copied, data->file_size, data->total_bytes_copied, data->bytes_total);
                 while (gtk_events_pending ())
                     gtk_main_iteration_do (FALSE);
             }
@@ -418,7 +418,7 @@
 
     g_free (dest_fn);
 
-    data->win = GNOME_CMD_XFER_PROGRESS_WIN (gnome_cmd_xfer_progress_win_new ());
+    data->win = GNOME_CMD_XFER_PROGRESS_WIN (gnome_cmd_xfer_progress_win_new (num_files));
     gtk_widget_ref (GTK_WIDGET (data->win));
     gtk_window_set_title (GTK_WINDOW (data->win), _("preparing..."));
     gtk_widget_show (GTK_WIDGET (data->win));
@@ -502,9 +502,9 @@
 
     data = create_xfer_data (xferOptions, src_uri_list, dest_uri_list,
                              NULL, NULL, NULL,
-                             (GFunc)on_completed_func, on_completed_data);
+                             (GFunc) on_completed_func, on_completed_data);
 
-    data->win = GNOME_CMD_XFER_PROGRESS_WIN (gnome_cmd_xfer_progress_win_new ());
+    data->win = GNOME_CMD_XFER_PROGRESS_WIN (gnome_cmd_xfer_progress_win_new (g_list_length (src_uri_list)));
     gtk_window_set_title (GTK_WINDOW (data->win), _("downloading to /tmp"));
     gtk_widget_show (GTK_WIDGET (data->win));
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]