From ef1e6add4f0ded7d4890361ec63dcd2c4b14c288 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Mon, 29 Jun 2015 17:43:25 +0200 Subject: [PATCH] Settings: Auto download bandwidth limit #1485 --- src/gui/networksettings.cpp | 31 +++++++--- src/gui/networksettings.ui | 96 ++++++++++++++----------------- src/libsync/configfile.cpp | 8 +-- src/libsync/configfile.h | 4 +- src/libsync/propagatedownload.cpp | 2 +- 5 files changed, 73 insertions(+), 68 deletions(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index f70cc30e2..8612b6d37 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -63,6 +63,7 @@ NetworkSettings::NetworkSettings(QWidget *parent) : connect(_ui->autoUploadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings())); connect(_ui->downloadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings())); connect(_ui->noDownloadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings())); + connect(_ui->autoDownloadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings())); connect(_ui->downloadSpinBox, SIGNAL(valueChanged(int)), SLOT(saveBWLimitSettings())); connect(_ui->uploadSpinBox, SIGNAL(valueChanged(int)), SLOT(saveBWLimitSettings())); } @@ -109,16 +110,25 @@ void NetworkSettings::loadProxySettings() void NetworkSettings::loadBWLimitSettings() { ConfigFile cfgFile; - _ui->downloadLimitRadioButton->setChecked(cfgFile.useDownloadLimit()); - int uploadLimit = cfgFile.useUploadLimit(); - if ( uploadLimit >= 1 ) { + + int useDownloadLimit = cfgFile.useDownloadLimit(); + if ( useDownloadLimit >= 1 ) { + _ui->downloadLimitRadioButton->setChecked(true); + } else if (useDownloadLimit == 0){ + _ui->noDownloadLimitRadioButton->setChecked(true); + } else { + _ui->autoDownloadLimitRadioButton->setChecked(true); + } + _ui->downloadSpinBox->setValue(cfgFile.downloadLimit()); + + int useUploadLimit = cfgFile.useUploadLimit(); + if ( useUploadLimit >= 1 ) { _ui->uploadLimitRadioButton->setChecked(true); - } else if (uploadLimit == 0){ + } else if (useUploadLimit == 0){ _ui->noUploadLimitRadioButton->setChecked(true); } else { _ui->autoUploadLimitRadioButton->setChecked(true); } - _ui->downloadSpinBox->setValue(cfgFile.downloadLimit()); _ui->uploadSpinBox->setValue(cfgFile.uploadLimit()); } @@ -151,7 +161,14 @@ void NetworkSettings::saveProxySettings() void NetworkSettings::saveBWLimitSettings() { ConfigFile cfgFile; - cfgFile.setUseDownloadLimit(_ui->downloadLimitRadioButton->isChecked()); + if (_ui->downloadLimitRadioButton->isChecked()) { + cfgFile.setUseDownloadLimit(1); + } else if (_ui->noDownloadLimitRadioButton->isChecked()) { + cfgFile.setUseDownloadLimit(0); + } else if (_ui->autoDownloadLimitRadioButton->isChecked()) { + cfgFile.setUseDownloadLimit(-1); + } + cfgFile.setDownloadLimit(_ui->downloadSpinBox->value()); if (_ui->uploadLimitRadioButton->isChecked()) { cfgFile.setUseUploadLimit(1); @@ -160,8 +177,6 @@ void NetworkSettings::saveBWLimitSettings() } else if (_ui->autoUploadLimitRadioButton->isChecked()) { cfgFile.setUseUploadLimit(-1); } - - cfgFile.setDownloadLimit(_ui->downloadSpinBox->value()); cfgFile.setUploadLimit(_ui->uploadSpinBox->value()); FolderMan::instance()->setDirtyNetworkLimits(); diff --git a/src/gui/networksettings.ui b/src/gui/networksettings.ui index cd0ba71e0..56eb1cacb 100644 --- a/src/gui/networksettings.ui +++ b/src/gui/networksettings.ui @@ -6,8 +6,8 @@ 0 0 - 518 - 384 + 542 + 391 @@ -104,7 +104,7 @@ - true + false @@ -141,13 +141,22 @@ false - + + 0 + + + 0 + + + 0 + + 0 - true + false @@ -157,7 +166,7 @@ - true + false @@ -190,14 +199,37 @@ Download Bandwidth - + Limit to - + + + + No limit + + + true + + + + + + + Qt::Vertical + + + + 147 + 25 + + + + + @@ -221,42 +253,13 @@ - - + + - No limit - - - true + Limit automatically - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Qt::Vertical - - - - 147 - 25 - - - - @@ -323,19 +326,6 @@ - - - - Qt::Horizontal - - - - 40 - 20 - - - - autoUploadLimitRadioButton uploadLimitRadioButton diff --git a/src/libsync/configfile.cpp b/src/libsync/configfile.cpp index d3c39c0c7..c5f0568b9 100644 --- a/src/libsync/configfile.cpp +++ b/src/libsync/configfile.cpp @@ -514,9 +514,9 @@ int ConfigFile::useUploadLimit() const return getValue(useUploadLimitC, QString::null, 0).toInt(); } -bool ConfigFile::useDownloadLimit() const +int ConfigFile::useDownloadLimit() const { - return getValue(useDownloadLimitC, QString::null, false).toBool(); + return getValue(useDownloadLimitC, QString::null, 0).toInt(); } void ConfigFile::setUseUploadLimit(int val) @@ -524,9 +524,9 @@ void ConfigFile::setUseUploadLimit(int val) setValue(useUploadLimitC, val); } -void ConfigFile::setUseDownloadLimit(bool enable) +void ConfigFile::setUseDownloadLimit(int val) { - setValue(useDownloadLimitC, enable); + setValue(useDownloadLimitC, val); } int ConfigFile::uploadLimit() const diff --git a/src/libsync/configfile.h b/src/libsync/configfile.h index d1af84c55..55bde5d20 100644 --- a/src/libsync/configfile.h +++ b/src/libsync/configfile.h @@ -87,9 +87,9 @@ public: /** 0: no limit, 1: manual, >0: automatic */ int useUploadLimit() const; - bool useDownloadLimit() const; + int useDownloadLimit() const; void setUseUploadLimit(int); - void setUseDownloadLimit(bool); + void setUseDownloadLimit(int); /** in kbyte/s */ int uploadLimit() const; int downloadLimit() const; diff --git a/src/libsync/propagatedownload.cpp b/src/libsync/propagatedownload.cpp index a1dff6e0b..936b4eff1 100644 --- a/src/libsync/propagatedownload.cpp +++ b/src/libsync/propagatedownload.cpp @@ -242,7 +242,7 @@ void GETFileJob::slotReadyRead() if (_bandwidthLimited) { toRead = qMin(qint64(bufferSize), _bandwidthQuota); if (toRead == 0) { - qDebug() << Q_FUNC_INFO << "Out of quota"; + //qDebug() << Q_FUNC_INFO << "Out of quota"; break; } _bandwidthQuota -= toRead;