[file-roller] set the progressbar fraction to something greater than 0 when extracing a single file
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [file-roller] set the progressbar fraction to something greater than 0 when extracing a single file
- Date: Thu, 9 Aug 2012 06:57:23 +0000 (UTC)
commit b76a7f9c790f9a03d81810f25041345953bc410c
Author: Paolo Bacchilega <paobac src gnome org>
Date: Thu Aug 9 08:56:08 2012 +0200
set the progressbar fraction to something greater than 0 when extracing a single file
src/fr-archive.c | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/src/fr-archive.c b/src/fr-archive.c
index fb2fe27..479cd7e 100644
--- a/src/fr-archive.c
+++ b/src/fr-archive.c
@@ -46,6 +46,8 @@
#define FILE_ARRAY_INITIAL_SIZE 256
#define PROGRESS_DELAY 50
+#define BYTES_FRACTION(self) ((double) (self)->priv->completed_bytes / (self)->priv->total_bytes)
+#define FILES_FRACTION(self) ((double) (self)->priv->completed_files + 0.5) / ((self)->priv->total_files + 1)
char *action_names[] = { "NONE",
@@ -2022,7 +2024,7 @@ fr_archive_progress_inc_completed_files (FrArchive *self,
g_mutex_lock (&self->priv->progress_mutex);
self->priv->completed_files += new_completed;
if (self->priv->total_files > 0)
- fraction = (double) self->priv->completed_files / (self->priv->total_files + 1);
+ fraction = FILES_FRACTION (self);
else
fraction = 0.0;
/*g_print ("%d / %d : %f\n", self->priv->completed_files, self->priv->total_files + 1, fraction);*/
@@ -2052,7 +2054,7 @@ _set_completed_bytes (FrArchive *self,
self->priv->completed_bytes = completed_bytes;
if (self->priv->total_bytes > 0)
- fraction = (double) self->priv->completed_bytes / self->priv->total_bytes;
+ fraction = BYTES_FRACTION (self);
else
fraction = 0.0;
/*g_print ("%" G_GSIZE_FORMAT " / %" G_GSIZE_FORMAT " : %f\n", self->priv->completed_bytes, self->priv->total_bytes + 1, fraction);*/
@@ -2094,10 +2096,14 @@ fr_archive_progress_get_fraction (FrArchive *self)
double fraction;
g_mutex_lock (&self->priv->progress_mutex);
- if ((self->priv->total_bytes > 0) && (self->priv->completed_bytes > 0))
- fraction = (double) self->priv->completed_bytes / self->priv->total_bytes;
- else if ((self->priv->total_files > 0) && (self->priv->completed_files > 0))
- fraction = (double) self->priv->completed_files / (self->priv->total_files + 1);
+ if ((self->priv->total_bytes > 0) && (self->priv->completed_bytes > 0)) {
+ fraction = BYTES_FRACTION (self);
+ /*g_print ("%" G_GSIZE_FORMAT " / %" G_GSIZE_FORMAT " : %f\n", self->priv->completed_bytes, self->priv->total_bytes + 1, fraction);*/
+ }
+ else if (self->priv->total_files > 0) {
+ fraction = FILES_FRACTION (self);
+ /*g_print ("%d / %d : %f\n", self->priv->completed_files, self->priv->total_files + 1, fraction);*/
+ }
else
fraction = 0.0;
g_mutex_unlock (&self->priv->progress_mutex);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]