- Use global maximum transfer rates as maximum values in per-torrent speed limiting dialogs

This commit is contained in:
Christophe Dumez 2009-12-30 16:18:50 +00:00
parent 77b4d97069
commit 132b1f7ffe
2 changed files with 13 additions and 3 deletions

View file

@ -57,9 +57,10 @@ class SpeedLimitDialog : public QDialog, private Ui_bandwidth_dlg {
} }
// -2: if cancel // -2: if cancel
static long askSpeedLimit(bool *ok, QString title, long default_value) { static long askSpeedLimit(bool *ok, QString title, long default_value, long max_value=1024000) {
SpeedLimitDialog dlg; SpeedLimitDialog dlg;
dlg.setWindowTitle(title); dlg.setWindowTitle(title);
dlg.setMaxValue(max_value/1024.);
dlg.setDefaultValue(default_value/1024.); dlg.setDefaultValue(default_value/1024.);
if(dlg.exec() == QDialog::Accepted) { if(dlg.exec() == QDialog::Accepted) {
*ok = true; *ok = true;
@ -102,8 +103,16 @@ class SpeedLimitDialog : public QDialog, private Ui_bandwidth_dlg {
return -1; return -1;
} }
void setMaxValue(long val) const {
if(val > 0) {
bandwidthSlider->setMaximum(val);
spinBandwidth->setMaximum(val);
}
}
void setDefaultValue(long val) const { void setDefaultValue(long val) const {
if(val < 0) val = 0; if(val < 0) val = 0;
if(val > bandwidthSlider->maximum()) val = bandwidthSlider->maximum();
bandwidthSlider->setValue(val); bandwidthSlider->setValue(val);
updateSpinValue(val); updateSpinValue(val);
} }

View file

@ -36,6 +36,7 @@
#include "speedlimitdlg.h" #include "speedlimitdlg.h"
#include "options_imp.h" #include "options_imp.h"
#include "GUI.h" #include "GUI.h"
#include "preferences.h"
#include "deletionconfirmationdlg.h" #include "deletionconfirmationdlg.h"
#include <QStandardItemModel> #include <QStandardItemModel>
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
@ -700,7 +701,7 @@ void TransferListWidget::setDlLimitSelectedTorrents() {
int default_limit = -1; int default_limit = -1;
if(all_same_limit) if(all_same_limit)
default_limit = selected_torrents.first().download_limit(); default_limit = selected_torrents.first().download_limit();
long new_limit = SpeedLimitDialog::askSpeedLimit(&ok, tr("Torrent Download Speed Limiting"), default_limit); long new_limit = SpeedLimitDialog::askSpeedLimit(&ok, tr("Torrent Download Speed Limiting"), default_limit, Preferences::getGlobalDownloadLimit()*1024.);
if(ok) { if(ok) {
foreach(QTorrentHandle h, selected_torrents) { foreach(QTorrentHandle h, selected_torrents) {
qDebug("Applying download speed limit of %ld Kb/s to torrent %s", (long)(new_limit/1024.), h.hash().toLocal8Bit().data()); qDebug("Applying download speed limit of %ld Kb/s to torrent %s", (long)(new_limit/1024.), h.hash().toLocal8Bit().data());
@ -736,7 +737,7 @@ void TransferListWidget::setUpLimitSelectedTorrents() {
int default_limit = -1; int default_limit = -1;
if(all_same_limit) if(all_same_limit)
default_limit = selected_torrents.first().upload_limit(); default_limit = selected_torrents.first().upload_limit();
long new_limit = SpeedLimitDialog::askSpeedLimit(&ok, tr("Torrent Upload Speed Limiting"), default_limit); long new_limit = SpeedLimitDialog::askSpeedLimit(&ok, tr("Torrent Upload Speed Limiting"), default_limit, Preferences::getGlobalUploadLimit()*1024.);
if(ok) { if(ok) {
foreach(QTorrentHandle h, selected_torrents) { foreach(QTorrentHandle h, selected_torrents) {
qDebug("Applying upload speed limit of %ld Kb/s to torrent %s", (long)(new_limit/1024.), h.hash().toLocal8Bit().data()); qDebug("Applying upload speed limit of %ld Kb/s to torrent %s", (long)(new_limit/1024.), h.hash().toLocal8Bit().data());