From e178e700533fd11ad6521a009c329cb1fdd5c3ce Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Fri, 30 Dec 2016 13:34:10 +0800 Subject: [PATCH] Code rewrite, no behavior change --- src/gui/transferlistwidget.cpp | 79 +++++++++++++++------------------- 1 file changed, 35 insertions(+), 44 deletions(-) diff --git a/src/gui/transferlistwidget.cpp b/src/gui/transferlistwidget.cpp index ae193f55c..871d294e0 100644 --- a/src/gui/transferlistwidget.cpp +++ b/src/gui/transferlistwidget.cpp @@ -428,65 +428,56 @@ void TransferListWidget::previewSelectedTorrents() void TransferListWidget::setDlLimitSelectedTorrents() { - QList selected_torrents; - bool first = true; - bool all_same_limit = true; + QList TorrentsList; foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) { - if (!torrent->isSeed()) { - selected_torrents << torrent; - // Determine current limit for selected torrents - if (first) - first = false; - else if (all_same_limit && (torrent->downloadLimit() != selected_torrents.first()->downloadLimit())) - all_same_limit = false; + if (torrent->isSeed()) + continue; + TorrentsList += torrent; + } + if (TorrentsList.empty()) return; + + int oldLimit = TorrentsList.first()->downloadLimit(); + foreach (BitTorrent::TorrentHandle *const torrent, TorrentsList) { + if (torrent->downloadLimit() != oldLimit) { + oldLimit = -1; + break; } } - if (selected_torrents.empty()) return; - bool ok = false; - int default_limit = -1; - if (all_same_limit) - default_limit = selected_torrents.first()->downloadLimit(); - const long new_limit = SpeedLimitDialog::askSpeedLimit( - &ok, tr("Torrent Download Speed Limiting"), default_limit + const long newLimit = SpeedLimitDialog::askSpeedLimit( + &ok, tr("Torrent Download Speed Limiting"), oldLimit , BitTorrent::Session::instance()->globalDownloadSpeedLimit()); - if (ok) { - foreach (BitTorrent::TorrentHandle *const torrent, selected_torrents) { - qDebug("Applying download speed limit of %ld Kb/s to torrent %s", (long)(new_limit / 1024.), qPrintable(torrent->hash())); - torrent->setDownloadLimit(new_limit); - } + if (!ok) return; + + foreach (BitTorrent::TorrentHandle *const torrent, TorrentsList) { + qDebug("Applying download speed limit of %ld Kb/s to torrent %s", (long) (newLimit / 1024.), qPrintable(torrent->hash())); + torrent->setDownloadLimit(newLimit); } } void TransferListWidget::setUpLimitSelectedTorrents() { - QList selected_torrents; - bool first = true; - bool all_same_limit = true; - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) { - selected_torrents << torrent; - // Determine current limit for selected torrents - if (first) - first = false; - else if (all_same_limit && (torrent->uploadLimit() != selected_torrents.first()->uploadLimit())) - all_same_limit = false; + QList TorrentsList = getSelectedTorrents(); + if (TorrentsList.empty()) return; + + int oldLimit = TorrentsList.first()->uploadLimit(); + foreach (BitTorrent::TorrentHandle *const torrent, TorrentsList) { + if (torrent->uploadLimit() != oldLimit) { + oldLimit = -1; + break; + } } - if (selected_torrents.empty()) return; - bool ok = false; - int default_limit = -1; - if (all_same_limit) - default_limit = selected_torrents.first()->uploadLimit(); - const long new_limit = SpeedLimitDialog::askSpeedLimit( - &ok, tr("Torrent Upload Speed Limiting"), default_limit + const long newLimit = SpeedLimitDialog::askSpeedLimit( + &ok, tr("Torrent Upload Speed Limiting"), oldLimit , BitTorrent::Session::instance()->globalUploadSpeedLimit()); - if (ok) { - foreach (BitTorrent::TorrentHandle *const torrent, selected_torrents) { - qDebug("Applying upload speed limit of %ld Kb/s to torrent %s", (long)(new_limit / 1024.), qPrintable(torrent->hash())); - torrent->setUploadLimit(new_limit); - } + if (!ok) return; + + foreach (BitTorrent::TorrentHandle *const torrent, TorrentsList) { + qDebug("Applying upload speed limit of %ld Kb/s to torrent %s", (long) (newLimit / 1024.), qPrintable(torrent->hash())); + torrent->setUploadLimit(newLimit); } }