Fix torrent state calculation

This commit is contained in:
Vladimir Golovnev (Glassez) 2020-10-26 13:23:10 +03:00 committed by sledgehammer999
parent 5e7d7c2ef0
commit 5730e917a1
No known key found for this signature in database
GPG key ID: 6E4A2D025B7CC9A2

View file

@ -743,7 +743,22 @@ void TorrentHandleImpl::updateState()
if (m_nativeStatus.state == lt::torrent_status::checking_resume_data) {
m_state = TorrentState::CheckingResumeData;
}
else if (m_nativeStatus.state == lt::torrent_status::checking_files) {
else if (isPaused()) {
if (isMoveInProgress()) {
m_state = TorrentState::Moving;
}
else if (hasMissingFiles()) {
m_state = TorrentState::MissingFiles;
}
else if (hasError()) {
m_state = TorrentState::Error;
}
else {
m_state = isSeed() ? TorrentState::PausedUploading : TorrentState::PausedDownloading;
}
}
else {
if (m_nativeStatus.state == lt::torrent_status::checking_files) {
m_state = m_hasSeedStatus ? TorrentState::CheckingUploading : TorrentState::CheckingDownloading;
}
else if (m_nativeStatus.state == lt::torrent_status::allocating) {
@ -752,14 +767,11 @@ void TorrentHandleImpl::updateState()
else if (isMoveInProgress()) {
m_state = TorrentState::Moving;
}
else if (hasError()) {
m_state = TorrentState::Error;
}
else if (hasMissingFiles()) {
m_state = TorrentState::MissingFiles;
}
else if (isPaused()) {
m_state = isSeed() ? TorrentState::PausedUploading : TorrentState::PausedDownloading;
else if (hasError()) {
m_state = TorrentState::Error;
}
else if (m_session->isQueueingSystemEnabled() && isQueued() && !isChecking()) {
m_state = isSeed() ? TorrentState::QueuedUploading : TorrentState::QueuedDownloading;
@ -787,6 +799,7 @@ void TorrentHandleImpl::updateState()
m_state = TorrentState::Unknown;
}
}
}
}
bool TorrentHandleImpl::hasMetadata() const