nautilus r13725 - in trunk: . libnautilus-private



Author: alexl
Date: Mon Feb 11 12:24:30 2008
New Revision: 13725
URL: http://svn.gnome.org/viewvc/nautilus?rev=13725&view=rev

Log:
2008-02-11  Alexander Larsson  <alexl redhat com>

        * libnautilus-private/nautilus-progress-info.[ch]:
        * libnautilus-private/nautilus-file-operations.c:
	Make progress setting be ratio based and not
	percent based and then ensure we handle division
	by zero correctly in all cases.




Modified:
   trunk/ChangeLog
   trunk/libnautilus-private/nautilus-file-operations.c
   trunk/libnautilus-private/nautilus-progress-info.c
   trunk/libnautilus-private/nautilus-progress-info.h

Modified: trunk/libnautilus-private/nautilus-file-operations.c
==============================================================================
--- trunk/libnautilus-private/nautilus-file-operations.c	(original)
+++ trunk/libnautilus-private/nautilus-file-operations.c	Mon Feb 11 12:24:30 2008
@@ -1209,7 +1209,7 @@
 	}
 
 	if (source_info->num_files != 0) {
-		nautilus_progress_info_set_progress (job->progress, (double)transfer_info->num_files / source_info->num_files);
+		nautilus_progress_info_set_progress (job->progress, transfer_info->num_files, source_info->num_files);
 	}
 }
 
@@ -1501,7 +1501,7 @@
 	nautilus_progress_info_take_details (job->progress, s);
 
 	if (total_files != 0) {
-		nautilus_progress_info_set_progress (job->progress, (double)files_trashed / total_files);
+		nautilus_progress_info_set_progress (job->progress, files_trashed, total_files);
 	}
 }
 
@@ -2591,7 +2591,7 @@
 		nautilus_progress_info_take_details (job->progress, s);
 	}
 
-	nautilus_progress_info_set_progress (job->progress, (double)transfer_info->num_bytes / total_size);
+	nautilus_progress_info_set_progress (job->progress, transfer_info->num_bytes, total_size);
 }
 
 static GFile *
@@ -4109,7 +4109,7 @@
 							  "Making links to %'d files",
 							  left), left));
 
-	nautilus_progress_info_set_progress (job->progress, (double)left / total);
+	nautilus_progress_info_set_progress (job->progress, left, total);
 }
 
 

Modified: trunk/libnautilus-private/nautilus-progress-info.c
==============================================================================
--- trunk/libnautilus-private/nautilus-progress-info.c	(original)
+++ trunk/libnautilus-private/nautilus-progress-info.c	Mon Feb 11 12:24:30 2008
@@ -784,18 +784,27 @@
 
 void
 nautilus_progress_info_set_progress (NautilusProgressInfo *info,
-				     double                current_percent)
+				     double                current,
+				     double                total)
 {
-	G_LOCK (progress_info);
+	double current_percent;
+	
+	if (total <= 0) {
+		current_percent = 1.0;
+	} else {
+		current_percent = current / total;
 
-	if (current_percent < 0) {
-		current_percent	= 0;
-	}
+		if (current_percent < 0) {
+			current_percent	= 0;
+		}
 		
-	if (current_percent > 1.0) {
-		current_percent	= 1.0;
+		if (current_percent > 1.0) {
+			current_percent	= 1.0;
+		}
 	}
 	
+	G_LOCK (progress_info);
+	
 	if (info->activity_mode || /* emit on switch from activity mode */
 	    fabs (current_percent - info->progress) > 0.005 /* Emit on change of 0.5 percent */
 	    ) {

Modified: trunk/libnautilus-private/nautilus-progress-info.h
==============================================================================
--- trunk/libnautilus-private/nautilus-progress-info.h	(original)
+++ trunk/libnautilus-private/nautilus-progress-info.h	Mon Feb 11 12:24:30 2008
@@ -73,7 +73,8 @@
 void          nautilus_progress_info_take_details    (NautilusProgressInfo *info,
 						      char                 *details);
 void          nautilus_progress_info_set_progress    (NautilusProgressInfo *info,
-						      double                current_percent);
+						      double                current,
+						      double                total);
 void          nautilus_progress_info_pulse_progress  (NautilusProgressInfo *info);
 
 



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