Merge pull request #9892 from Chocobo1/progress

Code cleanup
This commit is contained in:
Mike Tzou 2018-11-29 01:16:07 +08:00 committed by GitHub
commit 5efdd211cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 19 deletions

View file

@ -973,12 +973,13 @@ qulonglong TorrentHandle::eta() const
QVector<qreal> TorrentHandle::filesProgress() const QVector<qreal> TorrentHandle::filesProgress() const
{ {
std::vector<boost::int64_t> fp; std::vector<boost::int64_t> fp;
QVector<qreal> result;
m_nativeHandle.file_progress(fp, libt::torrent_handle::piece_granularity); m_nativeHandle.file_progress(fp, libt::torrent_handle::piece_granularity);
int count = static_cast<int>(fp.size()); const int count = static_cast<int>(fp.size());
QVector<qreal> result;
result.reserve(count);
for (int i = 0; i < count; ++i) { for (int i = 0; i < count; ++i) {
qlonglong size = fileSize(i); const qlonglong size = fileSize(i);
if ((size <= 0) || (fp[i] == size)) if ((size <= 0) || (fp[i] == size))
result << 1; result << 1;
else else
@ -2100,7 +2101,7 @@ void TorrentHandle::prioritizeFiles(const QVector<int> &priorities)
QVector<qreal> TorrentHandle::availableFileFractions() const QVector<qreal> TorrentHandle::availableFileFractions() const
{ {
const auto filesCount = this->filesCount(); const int filesCount = this->filesCount();
if (filesCount < 0) return {}; if (filesCount < 0) return {};
const QVector<int> piecesAvailability = pieceAvailability(); const QVector<int> piecesAvailability = pieceAvailability();
@ -2109,12 +2110,13 @@ QVector<qreal> TorrentHandle::availableFileFractions() const
QVector<qreal> res; QVector<qreal> res;
res.reserve(filesCount); res.reserve(filesCount);
TorrentInfo info = this->info(); const TorrentInfo info = this->info();
for (int file = 0; file < filesCount; ++file) { for (int i = 0; i < filesCount; ++i) {
TorrentInfo::PieceRange filePieces = info.filePieces(file); const TorrentInfo::PieceRange filePieces = info.filePieces(i);
int availablePieces = 0; int availablePieces = 0;
for (int piece = filePieces.first(); piece <= filePieces.last(); ++piece) { for (int piece = filePieces.first(); piece <= filePieces.last(); ++piece) {
availablePieces += piecesAvailability[piece] > 0 ? 1 : 0; availablePieces += (piecesAvailability[piece] > 0) ? 1 : 0;
} }
res.push_back(static_cast<qreal>(availablePieces) / filePieces.size()); res.push_back(static_cast<qreal>(availablePieces) / filePieces.size());
} }

View file

@ -142,13 +142,14 @@ void TorrentContentModelFolder::recalculateProgress()
qulonglong tSize = 0; qulonglong tSize = 0;
qulonglong tRemaining = 0; qulonglong tRemaining = 0;
foreach (TorrentContentModelItem *child, m_childItems) { foreach (TorrentContentModelItem *child, m_childItems) {
if (child->priority() != prio::IGNORED) { if (child->priority() == prio::IGNORED)
if (child->itemType() == FolderType) continue;
static_cast<TorrentContentModelFolder *>(child)->recalculateProgress();
tProgress += child->progress() * child->size(); if (child->itemType() == FolderType)
tSize += child->size(); static_cast<TorrentContentModelFolder *>(child)->recalculateProgress();
tRemaining += child->remaining(); tProgress += child->progress() * child->size();
} tSize += child->size();
tRemaining += child->remaining();
} }
if (!isRootItem() && (tSize > 0)) { if (!isRootItem() && (tSize > 0)) {

View file

@ -74,9 +74,7 @@ qreal TorrentContentModelItem::progress() const
{ {
Q_ASSERT(!isRootItem()); Q_ASSERT(!isRootItem());
if (m_size > 0) return m_progress; return (m_size > 0) ? m_progress : 1;
return 1;
} }
qulonglong TorrentContentModelItem::remaining() const qulonglong TorrentContentModelItem::remaining() const
@ -89,7 +87,7 @@ qreal TorrentContentModelItem::availability() const
{ {
Q_ASSERT(!isRootItem()); Q_ASSERT(!isRootItem());
return m_size > 0 ? m_availability : 0.; return (m_size > 0) ? m_availability : 0;
} }
int TorrentContentModelItem::priority() const int TorrentContentModelItem::priority() const