diff --git a/src/FinishedListDelegate.h b/src/FinishedListDelegate.h index 44bcefb1a..0fb0495a4 100644 --- a/src/FinishedListDelegate.h +++ b/src/FinishedListDelegate.h @@ -50,6 +50,8 @@ #define F_RATIO 6 #define F_HASH 7 +#define MAX_RATIO 100. + class FinishedListDelegate: public QItemDelegate { Q_OBJECT @@ -75,7 +77,7 @@ class FinishedListDelegate: public QItemDelegate { case F_RATIO:{ QItemDelegate::drawBackground(painter, opt, index); double ratio = index.data().toDouble(); - if(ratio > 100.) + if(ratio > MAX_RATIO) QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞")); else QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1))); diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index fd43d8489..48cdb5fca 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -52,9 +52,10 @@ #include #define MAX_TRACKER_ERRORS 2 +#define MAX_RATIO 100. // Main constructor -bittorrent::bittorrent() : DHTEnabled(false), preAllocateAll(false), addInPause(false), maxConnecsPerTorrent(500), maxUploadsPerTorrent(4), max_ratio(-1), UPnPEnabled(false), NATPMPEnabled(false), LSDEnabled(false), queueingEnabled(false) { +bittorrent::bittorrent() : DHTEnabled(false), preAllocateAll(false), addInPause(false), maxConnecsPerTorrent(500), maxUploadsPerTorrent(4), ratio_limit(-1), UPnPEnabled(false), NATPMPEnabled(false), LSDEnabled(false), queueingEnabled(false) { // To avoid some exceptions fs::path::default_name_check(fs::no_check); // Creating bittorrent session @@ -124,7 +125,7 @@ void bittorrent::preAllocateAllFiles(bool b) { } void bittorrent::deleteBigRatios() { - if(max_ratio == -1) return; + if(ratio_limit == -1) return; std::vector torrents = getTorrents(); std::vector::iterator torrentIT; for(torrentIT = torrents.begin(); torrentIT != torrents.end(); torrentIT++) { @@ -132,7 +133,8 @@ void bittorrent::deleteBigRatios() { if(!h.is_valid()) continue; if(h.is_seed()) { QString hash = h.hash(); - if(getRealRatio(hash) > max_ratio) { + float ratio = getRealRatio(hash); + if(ratio <= MAX_RATIO && ratio > ratio_limit) { QString fileName = h.name(); addConsoleMessage(tr("%1 reached the maximum ratio you set.").arg(fileName)); deleteTorrent(hash); @@ -1011,19 +1013,19 @@ void bittorrent::setGlobalRatio(float ratio) { // be automatically deleted void bittorrent::setDeleteRatio(float ratio) { if(ratio != -1 && ratio < 1.) ratio = 1.; - if(max_ratio == -1 && ratio != -1) { + if(ratio_limit == -1 && ratio != -1) { Q_ASSERT(!BigRatioTimer); BigRatioTimer = new QTimer(this); connect(BigRatioTimer, SIGNAL(timeout()), this, SLOT(deleteBigRatios())); BigRatioTimer->start(5000); } else { - if(max_ratio != -1 && ratio == -1) { + if(ratio_limit != -1 && ratio == -1) { delete BigRatioTimer; } } - if(max_ratio != ratio) { - max_ratio = ratio; - qDebug("* Set deleteRatio to %.1f", max_ratio); + if(ratio_limit != ratio) { + ratio_limit = ratio; + qDebug("* Set deleteRatio to %.1f", ratio_limit); deleteBigRatios(); } } diff --git a/src/bittorrent.h b/src/bittorrent.h index b8ce1fef3..2755affbe 100644 --- a/src/bittorrent.h +++ b/src/bittorrent.h @@ -68,7 +68,7 @@ class bittorrent : public QObject { bool addInPause; int maxConnecsPerTorrent; int maxUploadsPerTorrent; - float max_ratio; + float ratio_limit; bool UPnPEnabled; bool NATPMPEnabled; bool LSDEnabled;