[gnome-builder] transfers: ignore cancelled/failed transfers in progress



commit 08b6e0b497a16097c7e619b1a9b69c7f36e09513
Author: Christian Hergert <chergert redhat com>
Date:   Thu Apr 6 17:35:50 2017 -0700

    transfers: ignore cancelled/failed transfers in progress

 libide/transfers/ide-transfer-manager.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/libide/transfers/ide-transfer-manager.c b/libide/transfers/ide-transfer-manager.c
index 465ba70..afed65a 100644
--- a/libide/transfers/ide-transfer-manager.c
+++ b/libide/transfers/ide-transfer-manager.c
@@ -328,13 +328,22 @@ ide_transfer_manager_get_progress (IdeTransferManager *self)
 
   if (self->transfers->len > 0)
     {
+      guint count = 0;
+
       for (guint i = 0; i < self->transfers->len; i++)
         {
           IdeTransfer *transfer = g_ptr_array_index (self->transfers, i);
           gdouble progress = ide_transfer_get_progress (transfer);
-          total += MAX (0.0, MIN (1.0, progress));
+
+          if (ide_transfer_get_completed (transfer) || ide_transfer_get_active (transfer))
+            {
+              total += MAX (0.0, MIN (1.0, progress));
+              count++;
+            }
         }
-      total /= (gdouble)self->transfers->len;
+
+      if (count != 0)
+        total /= (gdouble)count;
     }
 
   return total;


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