Remove speed limit checkbox in Options dialog

This unifies speed limit UI elements throughout the program.
This commit is contained in:
Chocobo1
2018-10-21 13:46:48 +08:00
committed by sledgehammer999
parent aac8bfc398
commit 780ece0c25
7 changed files with 121 additions and 348 deletions

View File

@@ -306,10 +306,6 @@ OptionsDialog::OptionsDialog(QWidget *parent)
connect(m_ui->spinPort, qSpinBoxValueChanged, this, &ThisType::enableApplyButton);
connect(m_ui->checkRandomPort, &QAbstractButton::toggled, this, &ThisType::enableApplyButton);
connect(m_ui->checkUPnP, &QAbstractButton::toggled, this, &ThisType::enableApplyButton);
connect(m_ui->checkUploadLimit, &QAbstractButton::toggled, this, &ThisType::enableApplyButton);
connect(m_ui->checkDownloadLimit, &QAbstractButton::toggled, this, &ThisType::enableApplyButton);
connect(m_ui->checkUploadLimitAlt, &QAbstractButton::toggled, this, &ThisType::enableApplyButton);
connect(m_ui->checkDownloadLimitAlt, &QAbstractButton::toggled, this, &ThisType::enableApplyButton);
connect(m_ui->spinUploadLimit, qSpinBoxValueChanged, this, &ThisType::enableApplyButton);
connect(m_ui->spinDownloadLimit, qSpinBoxValueChanged, this, &ThisType::enableApplyButton);
connect(m_ui->spinUploadLimitAlt, qSpinBoxValueChanged, this, &ThisType::enableApplyButton);
@@ -643,15 +639,13 @@ void OptionsDialog::saveOptions()
session->setPort(getPort());
session->setUseRandomPort(m_ui->checkRandomPort->isChecked());
Net::PortForwarder::instance()->setEnabled(isUPnPEnabled());
const QPair<int, int> downUpLimit = getGlobalBandwidthLimits();
session->setGlobalDownloadSpeedLimit(downUpLimit.first);
session->setGlobalUploadSpeedLimit(downUpLimit.second);
session->setGlobalDownloadSpeedLimit(m_ui->spinDownloadLimit->value() * 1024);
session->setGlobalUploadSpeedLimit(m_ui->spinUploadLimit->value() * 1024);
session->setAltGlobalDownloadSpeedLimit(m_ui->spinDownloadLimitAlt->value() * 1024);
session->setAltGlobalUploadSpeedLimit(m_ui->spinUploadLimitAlt->value() * 1024);
session->setUTPRateLimited(m_ui->checkLimituTPConnections->isChecked());
session->setIncludeOverheadInLimits(m_ui->checkLimitTransportOverhead->isChecked());
session->setIgnoreLimitsOnLAN(!m_ui->checkLimitLocalPeerRate->isChecked());
const QPair<int, int> altDownUpLimit = getAltGlobalBandwidthLimits();
session->setAltGlobalDownloadSpeedLimit(altDownUpLimit.first);
session->setAltGlobalUploadSpeedLimit(altDownUpLimit.second);
pref->setSchedulerStartTime(m_ui->timeEditScheduleFrom->time());
pref->setSchedulerEndTime(m_ui->timeEditScheduleTo->time());
pref->setSchedulerDays(static_cast<SchedulerDays>(m_ui->comboBoxScheduleDays->currentIndex()));
@@ -1010,55 +1004,10 @@ void OptionsDialog::loadOptions()
// End Connection preferences
// Speed preferences
intValue = session->globalDownloadSpeedLimit() / 1024;
if (intValue > 0) {
// Enabled
m_ui->checkDownloadLimit->setChecked(true);
m_ui->spinDownloadLimit->setEnabled(true);
m_ui->spinDownloadLimit->setValue(intValue);
}
else {
// Disabled
m_ui->checkDownloadLimit->setChecked(false);
m_ui->spinDownloadLimit->setEnabled(false);
}
intValue = session->globalUploadSpeedLimit() / 1024;
if (intValue > 0) {
// Enabled
m_ui->checkUploadLimit->setChecked(true);
m_ui->spinUploadLimit->setEnabled(true);
m_ui->spinUploadLimit->setValue(intValue);
}
else {
// Disabled
m_ui->checkUploadLimit->setChecked(false);
m_ui->spinUploadLimit->setEnabled(false);
}
intValue = session->altGlobalDownloadSpeedLimit() / 1024;
if (intValue > 0) {
// Enabled
m_ui->checkDownloadLimitAlt->setChecked(true);
m_ui->spinDownloadLimitAlt->setEnabled(true);
m_ui->spinDownloadLimitAlt->setValue(intValue);
}
else {
// Disabled
m_ui->checkDownloadLimitAlt->setChecked(false);
m_ui->spinDownloadLimitAlt->setEnabled(false);
}
intValue = session->altGlobalUploadSpeedLimit() / 1024;
if (intValue > 0) {
// Enabled
m_ui->checkUploadLimitAlt->setChecked(true);
m_ui->spinUploadLimitAlt->setEnabled(true);
m_ui->spinUploadLimitAlt->setValue(intValue);
}
else {
// Disabled
m_ui->checkUploadLimitAlt->setChecked(false);
m_ui->spinUploadLimitAlt->setEnabled(false);
}
m_ui->spinDownloadLimit->setValue(session->globalDownloadSpeedLimit() / 1024);
m_ui->spinUploadLimit->setValue(session->globalUploadSpeedLimit() / 1024);
m_ui->spinDownloadLimitAlt->setValue(session->altGlobalDownloadSpeedLimit() / 1024);
m_ui->spinUploadLimitAlt->setValue(session->altGlobalUploadSpeedLimit() / 1024);
m_ui->checkLimituTPConnections->setChecked(session->isUTPRateLimited());
m_ui->checkLimitTransportOverhead->setChecked(session->includeOverheadInLimits());
@@ -1198,30 +1147,6 @@ bool OptionsDialog::isUPnPEnabled() const
return m_ui->checkUPnP->isChecked();
}
// Return Download & Upload limits in kbps
// [download,upload]
QPair<int, int> OptionsDialog::getGlobalBandwidthLimits() const
{
int DL = 0, UP = 0;
if (m_ui->checkDownloadLimit->isChecked())
DL = m_ui->spinDownloadLimit->value() * 1024;
if (m_ui->checkUploadLimit->isChecked())
UP = m_ui->spinUploadLimit->value() * 1024;
return qMakePair(DL, UP);
}
// Return alternate Download & Upload limits in kbps
// [download,upload]
QPair<int, int> OptionsDialog::getAltGlobalBandwidthLimits() const
{
int DL = 0, UP = 0;
if (m_ui->checkDownloadLimitAlt->isChecked())
DL = m_ui->spinDownloadLimitAlt->value() * 1024;
if (m_ui->checkUploadLimitAlt->isChecked())
UP = m_ui->spinUploadLimitAlt->value() * 1024;
return qMakePair(DL, UP);
}
bool OptionsDialog::startMinimized() const
{
return m_ui->checkStartMinimized->isChecked();

View File

@@ -137,8 +137,6 @@ private:
// Connection options
int getPort() const;
bool isUPnPEnabled() const;
QPair<int, int> getGlobalBandwidthLimits() const;
QPair<int, int> getAltGlobalBandwidthLimits() const;
// Bittorrent options
int getMaxConnecs() const;
int getMaxConnecsPerTorrent() const;

View File

@@ -1812,15 +1812,12 @@
<layout class="QGridLayout" name="rateLimitBoxLayout">
<item row="0" column="2">
<widget class="QSpinBox" name="spinUploadLimit">
<property name="enabled">
<bool>false</bool>
<property name="specialValueText">
<string>∞</string>
</property>
<property name="suffix">
<string> KiB/s</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>1000000</number>
</property>
@@ -1829,24 +1826,14 @@
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="checkUploadLimit">
<property name="text">
<string>Upload:</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="spinDownloadLimit">
<property name="enabled">
<bool>false</bool>
<property name="specialValueText">
<string>∞</string>
</property>
<property name="suffix">
<string> KiB/s</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>1000000</number>
</property>
@@ -1858,13 +1845,6 @@
<item row="0" column="0" rowspan="2">
<widget class="QLabel" name="labelGlobalRate"/>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="checkDownloadLimit">
<property name="text">
<string>Download:</string>
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer">
<property name="orientation">
@@ -1878,6 +1858,20 @@
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Upload:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Download:</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@@ -1887,6 +1881,22 @@
<string>Alternative Rate Limits</string>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<item row="1" column="2">
<widget class="QSpinBox" name="spinDownloadLimitAlt">
<property name="specialValueText">
<string>∞</string>
</property>
<property name="suffix">
<string> KiB/s</string>
</property>
<property name="maximum">
<number>1000000</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
<item row="0" column="0" rowspan="2">
<widget class="QLabel" name="labelAltRate"/>
</item>
@@ -2001,50 +2011,14 @@
</layout>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="checkUploadLimitAlt">
<property name="text">
<string>Upload:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="checkDownloadLimitAlt">
<property name="text">
<string>Download:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QSpinBox" name="spinUploadLimitAlt">
<property name="enabled">
<bool>false</bool>
<property name="specialValueText">
<string>∞</string>
</property>
<property name="suffix">
<string> KiB/s</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>1000000</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="spinDownloadLimitAlt">
<property name="enabled">
<bool>false</bool>
</property>
<property name="suffix">
<string> KiB/s</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>1000000</number>
</property>
@@ -2066,6 +2040,20 @@
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_13">
<property name="text">
<string>Upload:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_14">
<property name="text">
<string>Download:</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@@ -3432,15 +3420,11 @@ Use ';' to split multiple entries. Can use wildcard '*'.</string>
<tabstop>checkIpFilterTrackers</tabstop>
<tabstop>scrollArea_9</tabstop>
<tabstop>spinUploadLimit</tabstop>
<tabstop>checkUploadLimit</tabstop>
<tabstop>spinDownloadLimit</tabstop>
<tabstop>checkDownloadLimit</tabstop>
<tabstop>groupBoxSchedule</tabstop>
<tabstop>timeEditScheduleTo</tabstop>
<tabstop>timeEditScheduleFrom</tabstop>
<tabstop>comboBoxScheduleDays</tabstop>
<tabstop>checkUploadLimitAlt</tabstop>
<tabstop>checkDownloadLimitAlt</tabstop>
<tabstop>spinUploadLimitAlt</tabstop>
<tabstop>spinDownloadLimitAlt</tabstop>
<tabstop>checkLimitLocalPeerRate</tabstop>
@@ -3476,38 +3460,6 @@ Use ';' to split multiple entries. Can use wildcard '*'.</string>
</tabstops>
<resources/>
<connections>
<connection>
<sender>checkUploadLimit</sender>
<signal>toggled(bool)</signal>
<receiver>spinUploadLimit</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>367</x>
<y>61</y>
</hint>
<hint type="destinationlabel">
<x>448</x>
<y>62</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkDownloadLimit</sender>
<signal>toggled(bool)</signal>
<receiver>spinDownloadLimit</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>377</x>
<y>81</y>
</hint>
<hint type="destinationlabel">
<x>430</x>
<y>87</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkMaxConnecs</sender>
<signal>toggled(bool)</signal>
@@ -3572,38 +3524,6 @@ Use ';' to split multiple entries. Can use wildcard '*'.</string>
</hint>
</hints>
</connection>
<connection>
<sender>checkDownloadLimitAlt</sender>
<signal>toggled(bool)</signal>
<receiver>spinDownloadLimitAlt</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>547</x>
<y>415</y>
</hint>
<hint type="destinationlabel">
<x>815</x>
<y>413</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkUploadLimitAlt</sender>
<signal>toggled(bool)</signal>
<receiver>spinUploadLimitAlt</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>604</x>
<y>271</y>
</hint>
<hint type="destinationlabel">
<x>677</x>
<y>272</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkMaxRatio</sender>
<signal>toggled(bool)</signal>

View File

@@ -206,18 +206,19 @@ void StatusBar::updateSpeedLabels()
{
const BitTorrent::SessionStatus &sessionStatus = BitTorrent::Session::instance()->status();
QString speedLbl = Utils::Misc::friendlyUnit(sessionStatus.payloadDownloadRate, true);
int speedLimit = BitTorrent::Session::instance()->downloadSpeedLimit();
if (speedLimit)
speedLbl += " [" + Utils::Misc::friendlyUnit(speedLimit, true) + ']';
speedLbl += " (" + Utils::Misc::friendlyUnit(sessionStatus.totalPayloadDownload) + ')';
m_dlSpeedLbl->setText(speedLbl);
speedLimit = BitTorrent::Session::instance()->uploadSpeedLimit();
speedLbl = Utils::Misc::friendlyUnit(sessionStatus.payloadUploadRate, true);
if (speedLimit)
speedLbl += " [" + Utils::Misc::friendlyUnit(speedLimit, true) + ']';
speedLbl += " (" + Utils::Misc::friendlyUnit(sessionStatus.totalPayloadUpload) + ')';
m_upSpeedLbl->setText(speedLbl);
QString dlSpeedLbl = Utils::Misc::friendlyUnit(sessionStatus.payloadDownloadRate, true);
const int dlSpeedLimit = BitTorrent::Session::instance()->downloadSpeedLimit();
if (dlSpeedLimit > 0)
dlSpeedLbl += " [" + Utils::Misc::friendlyUnit(dlSpeedLimit, true) + ']';
dlSpeedLbl += " (" + Utils::Misc::friendlyUnit(sessionStatus.totalPayloadDownload) + ')';
m_dlSpeedLbl->setText(dlSpeedLbl);
QString upSpeedLbl = Utils::Misc::friendlyUnit(sessionStatus.payloadUploadRate, true);
const int upSpeedLimit = BitTorrent::Session::instance()->uploadSpeedLimit();
if (upSpeedLimit > 0)
upSpeedLbl += " [" + Utils::Misc::friendlyUnit(upSpeedLimit, true) + ']';
upSpeedLbl += " (" + Utils::Misc::friendlyUnit(sessionStatus.totalPayloadUpload) + ')';
m_upSpeedLbl->setText(upSpeedLbl);
}
void StatusBar::refresh()