@@ -538,6 +538,7 @@ SessionImpl::SessionImpl(QObject *parent)
538538 , m_altGlobalDownloadSpeedLimit(BITTORRENT_SESSION_KEY (u" AlternativeGlobalDLSpeedLimit" _s), 10 , lowerLimited(0 ))
539539 , m_altGlobalUploadSpeedLimit(BITTORRENT_SESSION_KEY (u" AlternativeGlobalUPSpeedLimit" _s), 10 , lowerLimited(0 ))
540540 , m_isAltGlobalSpeedLimitEnabled(BITTORRENT_SESSION_KEY (u" UseAlternativeGlobalSpeedLimit" _s), false )
541+ , m_isSchedulePauseSessionEnabled(BITTORRENT_SESSION_KEY (u" SchedulePauseSession" _s), false )
541542 , m_isBandwidthSchedulerEnabled(BITTORRENT_SESSION_KEY (u" BandwidthSchedulerEnabled" _s), false )
542543 , m_isPerformanceWarningEnabled(BITTORRENT_SESSION_KEY (u" PerformanceWarning" _s), false )
543544 , m_saveResumeDataInterval(BITTORRENT_SESSION_KEY (u" SaveResumeDataInterval" _s), 60 )
@@ -1321,6 +1322,20 @@ void SessionImpl::applyBandwidthLimits()
13211322 m_nativeSession->apply_settings (std::move (settingsPack));
13221323}
13231324
1325+ void SessionImpl::applySessionState (bool scheduled_pause)
1326+ {
1327+ BitTorrent::Session *const session = BitTorrent::Session::instance ();
1328+
1329+ // if session is not ready during startup, just return
1330+ if (nullptr == session)
1331+ return ;
1332+
1333+ if (true == scheduled_pause)
1334+ session->pause ();
1335+ else
1336+ session->resume ();
1337+ }
1338+
13241339void SessionImpl::configure ()
13251340{
13261341 m_nativeSession->apply_settings (loadLTSettings ());
@@ -3632,10 +3647,28 @@ void SessionImpl::setAltGlobalSpeedLimitEnabled(const bool enabled)
36323647 // Save new state to remember it on startup
36333648 m_isAltGlobalSpeedLimitEnabled = enabled;
36343649 applyBandwidthLimits ();
3650+ applySessionState (isAltGlobalSpeedLimitEnabled () && isSchedulePauseSessionEnabled ());
36353651 // Notify
36363652 emit speedLimitModeChanged (m_isAltGlobalSpeedLimitEnabled);
36373653}
36383654
3655+ bool SessionImpl::isSchedulePauseSessionEnabled () const
3656+ {
3657+ return m_isSchedulePauseSessionEnabled;
3658+ }
3659+
3660+
3661+ void SessionImpl::setSchedulePauseSessionEnabled (const bool enabled)
3662+ {
3663+ if (enabled == isSchedulePauseSessionEnabled ()) return ;
3664+
3665+ // Save new state to remember it on startup
3666+ m_isSchedulePauseSessionEnabled = enabled;
3667+
3668+ // Notify
3669+ // emit speedLimitModeChanged(m_isAltGlobalSpeedLimitEnabled);
3670+ }
3671+
36393672bool SessionImpl::isBandwidthSchedulerEnabled () const
36403673{
36413674 return m_isBandwidthSchedulerEnabled;
0 commit comments