Remove confusing helpers from Session interface

Such helpers do not make practical sense, since they can be trivially implemented on top of the base interface, but at the same time they can lead to undesirable consequences when some calling code requires slightly different behavior than another.

PR #18367.
Fixes #18338.
This commit is contained in:
Vladimir Golovnev 2023-01-16 14:43:36 +03:00 committed by GitHub
parent 9cdf660ddb
commit 719e4afd8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 34 deletions

View file

@ -2228,30 +2228,6 @@ Torrent *SessionImpl::findTorrent(const InfoHash &infoHash) const
return m_torrents.value(altID);
}
bool SessionImpl::hasActiveTorrents() const
{
return std::any_of(m_torrents.begin(), m_torrents.end(), [](TorrentImpl *torrent)
{
return TorrentFilter::ActiveTorrent.match(torrent);
});
}
bool SessionImpl::hasUnfinishedTorrents() const
{
return std::any_of(m_torrents.begin(), m_torrents.end(), [](const TorrentImpl *torrent)
{
return (!torrent->isSeed() && !torrent->isPaused() && !torrent->isErrored() && torrent->hasMetadata());
});
}
bool SessionImpl::hasRunningSeed() const
{
return std::any_of(m_torrents.begin(), m_torrents.end(), [](const TorrentImpl *torrent)
{
return (torrent->isSeed() && !torrent->isPaused());
});
}
void SessionImpl::banIP(const QString &ip)
{
if (m_bannedIPs.get().contains(ip))
@ -4771,7 +4747,11 @@ void SessionImpl::handleTorrentFinished(TorrentImpl *const torrent)
}
}
if (!hasUnfinishedTorrents())
const bool hasUnfinishedTorrents = std::any_of(m_torrents.cbegin(), m_torrents.cend(), [](const TorrentImpl *torrent)
{
return !(torrent->isSeed() || torrent->isPaused() || torrent->isErrored());
});
if (!hasUnfinishedTorrents)
emit allTorrentsFinished();
}