diff --git a/TODO b/TODO index 352226839..dc0a3fbf4 100644 --- a/TODO +++ b/TODO @@ -61,4 +61,5 @@ rc5->rc6 changelog: - BUGFIX: configure looks for libraries in lib64 folders too - BUGFIX: configure doesn't require paths with a terminal "/" anymore - BUGFIX: Fixed minimize to tray feature +- BUGFIX: Fixed folders progress calculation in torrent properties - I18N: Fixed swedish, French, Spanish translations \ No newline at end of file diff --git a/src/arborescence.h b/src/arborescence.h index ff1a23a1d..fad015d27 100644 --- a/src/arborescence.h +++ b/src/arborescence.h @@ -62,12 +62,20 @@ class file { void updateProgress() { Q_ASSERT(is_dir); - float sum = 0; + if(children.isEmpty()) { + progress = 0.; + return; + } + float wanted = 0.; + float done = 0.; file *child; foreach(child, children) { - sum += child->getProgress(); + wanted += child->getSize(); + done += child->getSize()*child->getProgress(); } - progress = sum / (float)children.size(); + progress = done / wanted; + Q_ASSERT(progress >= 0.); + Q_ASSERT(progress <= 1.); } void updatePriority(int prio) { diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index 0bacc0178..e0b7e2702 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -154,8 +154,8 @@ void bittorrent::updateETAs() { Q_ASSERT(nbETAs); foreach(val, listEtas) { moy += (qlonglong)((double)val/(double)nbETAs); - Q_ASSERT(moy >= 0); } + Q_ASSERT(moy >= 0); ETAs[hash] = moy; } else { // Speed is too low, we don't want an overflow.