diff --git a/src/gui/torrentcontentmodelfolder.cpp b/src/gui/torrentcontentmodelfolder.cpp index 82e038ad7..8dd6fa114 100644 --- a/src/gui/torrentcontentmodelfolder.cpp +++ b/src/gui/torrentcontentmodelfolder.cpp @@ -136,19 +136,19 @@ void TorrentContentModelFolder::setPriority(int new_prio, bool update_parent) void TorrentContentModelFolder::recalculateProgress() { - qreal progress = 0; - int count = 0; + qreal tProgress = 0; + qulonglong tSize = 0; foreach (TorrentContentModelItem* child, m_childItems) { if (child->priority() != prio::IGNORED) { if (child->itemType() == FolderType) static_cast(child)->recalculateProgress(); - progress += child->progress(); - ++count; + tProgress += child->progress() * child->size(); + tSize += child->size(); } } - if (!isRootItem() && (count > 0)) { - m_progress = progress / count; + if (!isRootItem() && tSize > 0) { + m_progress = tProgress / tSize; Q_ASSERT(m_progress <= 1.); } }