Browse Source

Merge pull request #14825 from glassez/upload-mode

Correctly handle "no enough disk space" error
adaptive-webui-19844
Vladimir Golovnev 4 years ago committed by GitHub
parent
commit
137c6458f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      src/base/bittorrent/torrentimpl.cpp

16
src/base/bittorrent/torrentimpl.cpp

@ -948,7 +948,7 @@ bool TorrentImpl::hasMissingFiles() const @@ -948,7 +948,7 @@ bool TorrentImpl::hasMissingFiles() const
bool TorrentImpl::hasError() const
{
return static_cast<bool>(m_nativeStatus.errc);
return (m_nativeStatus.errc || (m_nativeStatus.flags & lt::torrent_flags::upload_mode));
}
bool TorrentImpl::hasFilteredPieces() const
@ -967,7 +967,13 @@ int TorrentImpl::queuePosition() const @@ -967,7 +967,13 @@ int TorrentImpl::queuePosition() const
QString TorrentImpl::error() const
{
return QString::fromStdString(m_nativeStatus.errc.message());
if (m_nativeStatus.errc)
return QString::fromStdString(m_nativeStatus.errc.message());
if (m_nativeStatus.flags & lt::torrent_flags::upload_mode)
return tr("There's not enough space on disk. Torrent is currently in \"upload only\" mode.");
return {};
}
qlonglong TorrentImpl::totalDownload() const
@ -1527,7 +1533,10 @@ void TorrentImpl::pause() @@ -1527,7 +1533,10 @@ void TorrentImpl::pause()
void TorrentImpl::resume(const TorrentOperatingMode mode)
{
if (hasError())
{
m_nativeHandle.clear_error();
m_nativeHandle.unset_flags(lt::torrent_flags::upload_mode);
}
m_operatingMode = mode;
@ -1770,6 +1779,9 @@ void TorrentImpl::prepareResumeData(const lt::add_torrent_params &params) @@ -1770,6 +1779,9 @@ void TorrentImpl::prepareResumeData(const lt::add_torrent_params &params)
m_ltAddTorrentParams.added_time = addedTime().toSecsSinceEpoch();
// We shouldn't save upload_mode flag to allow torrent operate normally on next run
m_ltAddTorrentParams.flags &= ~lt::torrent_flags::upload_mode;
LoadTorrentParams resumeData;
resumeData.name = m_name;
resumeData.category = m_category;

Loading…
Cancel
Save