Browse Source

Merge pull request #9161 from Chocobo1/save

Revise resume data save interval
adaptive-webui-19844
Mike Tzou 6 years ago committed by GitHub
parent
commit
553bd8e22c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 31
      src/base/bittorrent/session.cpp
  2. 4
      src/gui/aboutdialog.ui
  3. 18
      src/gui/advancedsettings.cpp
  4. 1
      src/gui/advancedsettings.h
  5. 4
      src/gui/optionsdialog.ui

31
src/base/bittorrent/session.cpp

@ -330,7 +330,7 @@ Session::Session(QObject *parent) @@ -330,7 +330,7 @@ Session::Session(QObject *parent)
, m_altGlobalUploadSpeedLimit(BITTORRENT_SESSION_KEY("AlternativeGlobalUPSpeedLimit"), 10, lowerLimited(0))
, m_isAltGlobalSpeedLimitEnabled(BITTORRENT_SESSION_KEY("UseAlternativeGlobalSpeedLimit"), false)
, m_isBandwidthSchedulerEnabled(BITTORRENT_SESSION_KEY("BandwidthSchedulerEnabled"), false)
, m_saveResumeDataInterval(BITTORRENT_SESSION_KEY("SaveResumeDataInterval"), 3)
, m_saveResumeDataInterval(BITTORRENT_SESSION_KEY("SaveResumeDataInterval"), 60)
, m_port(BITTORRENT_SESSION_KEY("Port"), 8999)
, m_useRandomPort(BITTORRENT_SESSION_KEY("UseRandomPort"), false)
, m_networkInterface(BITTORRENT_SESSION_KEY("Interface"))
@ -510,11 +510,6 @@ Session::Session(QObject *parent) @@ -510,11 +510,6 @@ Session::Session(QObject *parent)
connect(m_refreshTimer, &QTimer::timeout, this, &Session::refresh);
m_refreshTimer->start();
// Regular saving of fastresume data
m_resumeDataTimer = new QTimer(this);
m_resumeDataTimer->setInterval(saveResumeDataInterval() * 60 * 1000);
connect(m_resumeDataTimer, &QTimer::timeout, this, [this]() { generateResumeData(); });
m_statistics = new Statistics(this);
updateSeedingLimitTimer();
@ -536,7 +531,15 @@ Session::Session(QObject *parent) @@ -536,7 +531,15 @@ Session::Session(QObject *parent)
m_resumeDataSavingManager->moveToThread(m_ioThread);
connect(m_ioThread, &QThread::finished, m_resumeDataSavingManager, &QObject::deleteLater);
m_ioThread->start();
m_resumeDataTimer->start();
// Regular saving of fastresume data
m_resumeDataTimer = new QTimer(this);
connect(m_resumeDataTimer, &QTimer::timeout, this, [this]() { generateResumeData(); });
const uint saveInterval = saveResumeDataInterval();
if (saveInterval > 0) {
m_resumeDataTimer->setInterval(saveInterval * 60 * 1000);
m_resumeDataTimer->start();
}
// initialize PortForwarder instance
Net::PortForwarder::initInstance(m_nativeSession);
@ -2704,11 +2707,19 @@ uint Session::saveResumeDataInterval() const @@ -2704,11 +2707,19 @@ uint Session::saveResumeDataInterval() const
return m_saveResumeDataInterval;
}
void Session::setSaveResumeDataInterval(uint value)
void Session::setSaveResumeDataInterval(const uint value)
{
if (value != saveResumeDataInterval()) {
m_saveResumeDataInterval = value;
if (value == m_saveResumeDataInterval)
return;
m_saveResumeDataInterval = value;
if (value > 0) {
m_resumeDataTimer->setInterval(value * 60 * 1000);
m_resumeDataTimer->start();
}
else {
m_resumeDataTimer->stop();
}
}

4
src/gui/aboutdialog.ui

@ -450,8 +450,6 @@ @@ -450,8 +450,6 @@
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="../icons.qrc"/>
</resources>
<resources/>
<connections/>
</ui>

18
src/gui/advancedsettings.cpp

@ -28,6 +28,8 @@ @@ -28,6 +28,8 @@
#include "advancedsettings.h"
#include <limits>
#include <QFont>
#include <QHeaderView>
#include <QHostAddress>
@ -129,6 +131,8 @@ AdvancedSettings::AdvancedSettings(QWidget *parent) @@ -129,6 +131,8 @@ AdvancedSettings::AdvancedSettings(QWidget *parent)
, this, &AdvancedSettings::updateCacheSpinSuffix);
connect(&comboBoxInterface, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged)
, this, &AdvancedSettings::updateInterfaceAddressCombo);
connect(&spinBoxSaveResumeDataInterval, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged)
, this, &AdvancedSettings::updateSaveResumeDataIntervalSuffix);
// Load settings
loadAdvancedSettings();
resizeColumnToContents(0);
@ -241,6 +245,14 @@ void AdvancedSettings::updateCacheSpinSuffix(int value) @@ -241,6 +245,14 @@ void AdvancedSettings::updateCacheSpinSuffix(int value)
spinBoxCache.setSuffix(tr(" MiB"));
}
void AdvancedSettings::updateSaveResumeDataIntervalSuffix(const int value)
{
if (value > 0)
spinBoxSaveResumeDataInterval.setSuffix(tr(" min", " minutes"));
else
spinBoxSaveResumeDataInterval.setSuffix(tr(" (disabled)"));
}
void AdvancedSettings::updateInterfaceAddressCombo()
{
// Try to get the currently selected interface name
@ -346,10 +358,10 @@ void AdvancedSettings::loadAdvancedSettings() @@ -346,10 +358,10 @@ void AdvancedSettings::loadAdvancedSettings()
spinBoxSendBufferWatermarkFactor.setValue(session->sendBufferWatermarkFactor());
addRow(SEND_BUF_WATERMARK_FACTOR, tr("Send buffer watermark factor"), &spinBoxSendBufferWatermarkFactor);
// Save resume data interval
spinBoxSaveResumeDataInterval.setMinimum(1);
spinBoxSaveResumeDataInterval.setMaximum(1440);
spinBoxSaveResumeDataInterval.setMinimum(0);
spinBoxSaveResumeDataInterval.setMaximum(std::numeric_limits<int>::max());
spinBoxSaveResumeDataInterval.setValue(session->saveResumeDataInterval());
spinBoxSaveResumeDataInterval.setSuffix(tr(" m", " minutes"));
updateSaveResumeDataIntervalSuffix(spinBoxSaveResumeDataInterval.value());
addRow(SAVE_RESUME_DATA_INTERVAL, tr("Save resume data interval", "How often the fastresume file is saved."), &spinBoxSaveResumeDataInterval);
// Outgoing port Min
spinBoxOutgoingPortsMin.setMinimum(0);

1
src/gui/advancedsettings.h

@ -51,6 +51,7 @@ signals: @@ -51,6 +51,7 @@ signals:
private slots:
void updateCacheSpinSuffix(int value);
void updateSaveResumeDataIntervalSuffix(int value);
void updateInterfaceAddressCombo();
private:

4
src/gui/optionsdialog.ui

@ -3460,9 +3460,7 @@ Use ';' to split multiple entries. Can use wildcard '*'.</string> @@ -3460,9 +3460,7 @@ Use ';' to split multiple entries. Can use wildcard '*'.</string>
<tabstop>DNSUsernameTxt</tabstop>
<tabstop>DNSPasswordTxt</tabstop>
</tabstops>
<resources>
<include location="../icons.qrc"/>
</resources>
<resources/>
<connections>
<connection>
<sender>checkUploadLimit</sender>

Loading…
Cancel
Save