Merge pull request #14166 from glassez/cleanup-class-names

Remove redundant suffix from TorrentHandle class name
This commit is contained in:
Vladimir Golovnev
2021-01-07 14:34:01 +03:00
committed by GitHub
52 changed files with 647 additions and 647 deletions

View File

@@ -63,7 +63,7 @@
#include "base/bittorrent/infohash.h" #include "base/bittorrent/infohash.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/exceptions.h" #include "base/exceptions.h"
#include "base/iconprovider.h" #include "base/iconprovider.h"
#include "base/logger.h" #include "base/logger.h"
@@ -311,7 +311,7 @@ void Application::processMessage(const QString &message)
m_paramsQueue.append(params); m_paramsQueue.append(params);
} }
void Application::runExternalProgram(const BitTorrent::TorrentHandle *torrent) const void Application::runExternalProgram(const BitTorrent::Torrent *torrent) const
{ {
QString program = Preferences::instance()->getAutoRunProgram().trimmed(); QString program = Preferences::instance()->getAutoRunProgram().trimmed();
program.replace("%N", torrent->name()); program.replace("%N", torrent->name());
@@ -405,7 +405,7 @@ void Application::runExternalProgram(const BitTorrent::TorrentHandle *torrent) c
#endif #endif
} }
void Application::sendNotificationEmail(const BitTorrent::TorrentHandle *torrent) void Application::sendNotificationEmail(const BitTorrent::Torrent *torrent)
{ {
// Prepare mail content // Prepare mail content
const QString content = tr("Torrent name: %1").arg(torrent->name()) + '\n' const QString content = tr("Torrent name: %1").arg(torrent->name()) + '\n'
@@ -424,7 +424,7 @@ void Application::sendNotificationEmail(const BitTorrent::TorrentHandle *torrent
content); content);
} }
void Application::torrentFinished(BitTorrent::TorrentHandle *const torrent) void Application::torrentFinished(BitTorrent::Torrent *const torrent)
{ {
Preferences *const pref = Preferences::instance(); Preferences *const pref = Preferences::instance();

View File

@@ -59,7 +59,7 @@ class FileLogger;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
namespace RSS namespace RSS
@@ -112,7 +112,7 @@ protected:
private slots: private slots:
void processMessage(const QString &message); void processMessage(const QString &message);
void torrentFinished(BitTorrent::TorrentHandle *const torrent); void torrentFinished(BitTorrent::Torrent *const torrent);
void allTorrentsFinished(); void allTorrentsFinished();
void cleanup(); void cleanup();
#if (!defined(DISABLE_GUI) && defined(Q_OS_WIN)) #if (!defined(DISABLE_GUI) && defined(Q_OS_WIN))
@@ -142,6 +142,6 @@ private:
void initializeTranslation(); void initializeTranslation();
void processParams(const QStringList &params); void processParams(const QStringList &params);
void runExternalProgram(const BitTorrent::TorrentHandle *torrent) const; void runExternalProgram(const BitTorrent::Torrent *torrent) const;
void sendNotificationEmail(const BitTorrent::TorrentHandle *torrent); void sendNotificationEmail(const BitTorrent::Torrent *torrent);
}; };

View File

@@ -25,10 +25,10 @@ add_library(qbt_base STATIC
bittorrent/sessionstatus.h bittorrent/sessionstatus.h
bittorrent/speedmonitor.h bittorrent/speedmonitor.h
bittorrent/statistics.h bittorrent/statistics.h
bittorrent/torrent.h
bittorrent/torrentcontentlayout.h bittorrent/torrentcontentlayout.h
bittorrent/torrentcreatorthread.h bittorrent/torrentcreatorthread.h
bittorrent/torrenthandle.h bittorrent/torrentimpl.h
bittorrent/torrenthandleimpl.h
bittorrent/torrentinfo.h bittorrent/torrentinfo.h
bittorrent/tracker.h bittorrent/tracker.h
bittorrent/trackerentry.h bittorrent/trackerentry.h
@@ -107,9 +107,9 @@ add_library(qbt_base STATIC
bittorrent/session.cpp bittorrent/session.cpp
bittorrent/speedmonitor.cpp bittorrent/speedmonitor.cpp
bittorrent/statistics.cpp bittorrent/statistics.cpp
bittorrent/torrent.cpp
bittorrent/torrentcreatorthread.cpp bittorrent/torrentcreatorthread.cpp
bittorrent/torrenthandle.cpp bittorrent/torrentimpl.cpp
bittorrent/torrenthandleimpl.cpp
bittorrent/torrentinfo.cpp bittorrent/torrentinfo.cpp
bittorrent/tracker.cpp bittorrent/tracker.cpp
bittorrent/trackerentry.cpp bittorrent/trackerentry.cpp

View File

@@ -24,10 +24,10 @@ HEADERS += \
$$PWD/bittorrent/sessionstatus.h \ $$PWD/bittorrent/sessionstatus.h \
$$PWD/bittorrent/speedmonitor.h \ $$PWD/bittorrent/speedmonitor.h \
$$PWD/bittorrent/statistics.h \ $$PWD/bittorrent/statistics.h \
$$PWD/bittorrent/torrent.h \
$$PWD/bittorrent/torrentcontentlayout.h \ $$PWD/bittorrent/torrentcontentlayout.h \
$$PWD/bittorrent/torrentcreatorthread.h \ $$PWD/bittorrent/torrentcreatorthread.h \
$$PWD/bittorrent/torrenthandle.h \ $$PWD/bittorrent/torrentimpl.h \
$$PWD/bittorrent/torrenthandleimpl.h \
$$PWD/bittorrent/torrentinfo.h \ $$PWD/bittorrent/torrentinfo.h \
$$PWD/bittorrent/tracker.h \ $$PWD/bittorrent/tracker.h \
$$PWD/bittorrent/trackerentry.h \ $$PWD/bittorrent/trackerentry.h \
@@ -107,9 +107,9 @@ SOURCES += \
$$PWD/bittorrent/session.cpp \ $$PWD/bittorrent/session.cpp \
$$PWD/bittorrent/speedmonitor.cpp \ $$PWD/bittorrent/speedmonitor.cpp \
$$PWD/bittorrent/statistics.cpp \ $$PWD/bittorrent/statistics.cpp \
$$PWD/bittorrent/torrent.cpp \
$$PWD/bittorrent/torrentcreatorthread.cpp \ $$PWD/bittorrent/torrentcreatorthread.cpp \
$$PWD/bittorrent/torrenthandle.cpp \ $$PWD/bittorrent/torrentimpl.cpp \
$$PWD/bittorrent/torrenthandleimpl.cpp \
$$PWD/bittorrent/torrentinfo.cpp \ $$PWD/bittorrent/torrentinfo.cpp \
$$PWD/bittorrent/tracker.cpp \ $$PWD/bittorrent/tracker.cpp \
$$PWD/bittorrent/trackerentry.cpp \ $$PWD/bittorrent/trackerentry.cpp \

View File

@@ -34,7 +34,7 @@
#include <QString> #include <QString>
#include <QVector> #include <QVector>
#include "torrenthandle.h" #include "torrent.h"
#include "torrentcontentlayout.h" #include "torrentcontentlayout.h"
namespace BitTorrent namespace BitTorrent
@@ -58,7 +58,7 @@ namespace BitTorrent
std::optional<bool> useAutoTMM; std::optional<bool> useAutoTMM;
int uploadLimit = -1; int uploadLimit = -1;
int downloadLimit = -1; int downloadLimit = -1;
int seedingTimeLimit = TorrentHandle::USE_GLOBAL_SEEDING_TIME; int seedingTimeLimit = Torrent::USE_GLOBAL_SEEDING_TIME;
qreal ratioLimit = TorrentHandle::USE_GLOBAL_RATIO; qreal ratioLimit = Torrent::USE_GLOBAL_RATIO;
}; };
} }

View File

@@ -30,14 +30,14 @@
#include <QBitArray> #include <QBitArray>
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/net/geoipmanager.h" #include "base/net/geoipmanager.h"
#include "base/unicodestrings.h" #include "base/unicodestrings.h"
#include "peeraddress.h" #include "peeraddress.h"
using namespace BitTorrent; using namespace BitTorrent;
PeerInfo::PeerInfo(const TorrentHandle *torrent, const lt::peer_info &nativeInfo) PeerInfo::PeerInfo(const Torrent *torrent, const lt::peer_info &nativeInfo)
: m_nativeInfo(nativeInfo) : m_nativeInfo(nativeInfo)
{ {
calcRelevance(torrent); calcRelevance(torrent);
@@ -226,7 +226,7 @@ QString PeerInfo::connectionType() const
: QLatin1String {"Web"}; : QLatin1String {"Web"};
} }
void PeerInfo::calcRelevance(const TorrentHandle *torrent) void PeerInfo::calcRelevance(const Torrent *torrent)
{ {
const QBitArray allPieces = torrent->pieces(); const QBitArray allPieces = torrent->pieces();
const QBitArray peerPieces = pieces(); const QBitArray peerPieces = pieces();

View File

@@ -36,7 +36,7 @@ class QBitArray;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
struct PeerAddress; struct PeerAddress;
class PeerInfo class PeerInfo
@@ -45,7 +45,7 @@ namespace BitTorrent
public: public:
PeerInfo() = default; PeerInfo() = default;
PeerInfo(const TorrentHandle *torrent, const lt::peer_info &nativeInfo); PeerInfo(const Torrent *torrent, const lt::peer_info &nativeInfo);
bool fromDHT() const; bool fromDHT() const;
bool fromPeX() const; bool fromPeX() const;
@@ -92,7 +92,7 @@ namespace BitTorrent
int downloadingPieceIndex() const; int downloadingPieceIndex() const;
private: private:
void calcRelevance(const TorrentHandle *torrent); void calcRelevance(const Torrent *torrent);
void determineFlags(); void determineFlags();
lt::peer_info m_nativeInfo = {}; lt::peer_info m_nativeInfo = {};

View File

@@ -96,7 +96,7 @@
#include "portforwarderimpl.h" #include "portforwarderimpl.h"
#include "resumedatasavingmanager.h" #include "resumedatasavingmanager.h"
#include "statistics.h" #include "statistics.h"
#include "torrenthandleimpl.h" #include "torrentimpl.h"
#include "tracker.h" #include "tracker.h"
#include "trackerentry.h" #include "trackerentry.h"
@@ -578,7 +578,7 @@ void Session::setTempPathEnabled(const bool enabled)
if (enabled != isTempPathEnabled()) if (enabled != isTempPathEnabled())
{ {
m_isTempPathEnabled = enabled; m_isTempPathEnabled = enabled;
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) for (TorrentImpl *const torrent : asConst(m_torrents))
torrent->handleTempPathChanged(); torrent->handleTempPathChanged();
} }
} }
@@ -595,7 +595,7 @@ void Session::setAppendExtensionEnabled(const bool enabled)
m_isAppendExtensionEnabled = enabled; m_isAppendExtensionEnabled = enabled;
// append or remove .!qB extension for incomplete files // append or remove .!qB extension for incomplete files
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) for (TorrentImpl *const torrent : asConst(m_torrents))
torrent->handleAppendExtensionToggled(); torrent->handleAppendExtensionToggled();
} }
} }
@@ -748,13 +748,13 @@ bool Session::editCategory(const QString &name, const QString &savePath)
m_storedCategories = map_cast(m_categories); m_storedCategories = map_cast(m_categories);
if (isDisableAutoTMMWhenCategorySavePathChanged()) if (isDisableAutoTMMWhenCategorySavePathChanged())
{ {
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) for (TorrentImpl *const torrent : asConst(m_torrents))
if (torrent->category() == name) if (torrent->category() == name)
torrent->setAutoTMMEnabled(false); torrent->setAutoTMMEnabled(false);
} }
else else
{ {
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) for (TorrentImpl *const torrent : asConst(m_torrents))
if (torrent->category() == name) if (torrent->category() == name)
torrent->handleCategorySavePathChanged(); torrent->handleCategorySavePathChanged();
} }
@@ -764,7 +764,7 @@ bool Session::editCategory(const QString &name, const QString &savePath)
bool Session::removeCategory(const QString &name) bool Session::removeCategory(const QString &name)
{ {
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) for (TorrentImpl *const torrent : asConst(m_torrents))
if (torrent->belongsToCategory(name)) if (torrent->belongsToCategory(name))
torrent->setCategory(""); torrent->setCategory("");
@@ -858,7 +858,7 @@ bool Session::removeTag(const QString &tag)
{ {
if (m_tags.remove(tag)) if (m_tags.remove(tag))
{ {
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) for (TorrentImpl *const torrent : asConst(m_torrents))
torrent->removeTag(tag); torrent->removeTag(tag);
m_storedTags = m_tags.values(); m_storedTags = m_tags.values();
emit tagRemoved(tag); emit tagRemoved(tag);
@@ -1618,16 +1618,16 @@ void Session::processShareLimits()
// We shouldn't iterate over `m_torrents` in the loop below // We shouldn't iterate over `m_torrents` in the loop below
// since `deleteTorrent()` modifies it indirectly // since `deleteTorrent()` modifies it indirectly
const QHash<InfoHash, TorrentHandleImpl *> torrents {m_torrents}; const QHash<InfoHash, TorrentImpl *> torrents {m_torrents};
for (TorrentHandleImpl *const torrent : torrents) for (TorrentImpl *const torrent : torrents)
{ {
if (torrent->isSeed() && !torrent->isForced()) if (torrent->isSeed() && !torrent->isForced())
{ {
if (torrent->ratioLimit() != TorrentHandle::NO_RATIO_LIMIT) if (torrent->ratioLimit() != Torrent::NO_RATIO_LIMIT)
{ {
const qreal ratio = torrent->realRatio(); const qreal ratio = torrent->realRatio();
qreal ratioLimit = torrent->ratioLimit(); qreal ratioLimit = torrent->ratioLimit();
if (ratioLimit == TorrentHandle::USE_GLOBAL_RATIO) if (ratioLimit == Torrent::USE_GLOBAL_RATIO)
// If Global Max Ratio is really set... // If Global Max Ratio is really set...
ratioLimit = globalMaxRatio(); ratioLimit = globalMaxRatio();
@@ -1635,7 +1635,7 @@ void Session::processShareLimits()
{ {
qDebug("Ratio: %f (limit: %f)", ratio, ratioLimit); qDebug("Ratio: %f (limit: %f)", ratio, ratioLimit);
if ((ratio <= TorrentHandle::MAX_RATIO) && (ratio >= ratioLimit)) if ((ratio <= Torrent::MAX_RATIO) && (ratio >= ratioLimit))
{ {
if (m_maxRatioAction == Remove) if (m_maxRatioAction == Remove)
{ {
@@ -1645,7 +1645,7 @@ void Session::processShareLimits()
else if (m_maxRatioAction == DeleteFiles) else if (m_maxRatioAction == DeleteFiles)
{ {
LogMsg(tr("'%1' reached the maximum ratio you set. Removed torrent and its files.").arg(torrent->name())); LogMsg(tr("'%1' reached the maximum ratio you set. Removed torrent and its files.").arg(torrent->name()));
deleteTorrent(torrent->hash(), TorrentAndFiles); deleteTorrent(torrent->hash(), DeleteTorrentAndFiles);
} }
else if ((m_maxRatioAction == Pause) && !torrent->isPaused()) else if ((m_maxRatioAction == Pause) && !torrent->isPaused())
{ {
@@ -1662,11 +1662,11 @@ void Session::processShareLimits()
} }
} }
if (torrent->seedingTimeLimit() != TorrentHandle::NO_SEEDING_TIME_LIMIT) if (torrent->seedingTimeLimit() != Torrent::NO_SEEDING_TIME_LIMIT)
{ {
const qlonglong seedingTimeInMinutes = torrent->seedingTime() / 60; const qlonglong seedingTimeInMinutes = torrent->seedingTime() / 60;
int seedingTimeLimit = torrent->seedingTimeLimit(); int seedingTimeLimit = torrent->seedingTimeLimit();
if (seedingTimeLimit == TorrentHandle::USE_GLOBAL_SEEDING_TIME) if (seedingTimeLimit == Torrent::USE_GLOBAL_SEEDING_TIME)
{ {
// If Global Seeding Time Limit is really set... // If Global Seeding Time Limit is really set...
seedingTimeLimit = globalMaxSeedingMinutes(); seedingTimeLimit = globalMaxSeedingMinutes();
@@ -1674,7 +1674,7 @@ void Session::processShareLimits()
if (seedingTimeLimit >= 0) if (seedingTimeLimit >= 0)
{ {
if ((seedingTimeInMinutes <= TorrentHandle::MAX_SEEDING_TIME) && (seedingTimeInMinutes >= seedingTimeLimit)) if ((seedingTimeInMinutes <= Torrent::MAX_SEEDING_TIME) && (seedingTimeInMinutes >= seedingTimeLimit))
{ {
if (m_maxRatioAction == Remove) if (m_maxRatioAction == Remove)
{ {
@@ -1684,7 +1684,7 @@ void Session::processShareLimits()
else if (m_maxRatioAction == DeleteFiles) else if (m_maxRatioAction == DeleteFiles)
{ {
LogMsg(tr("'%1' reached the maximum seeding time you set. Removed torrent and its files.").arg(torrent->name())); LogMsg(tr("'%1' reached the maximum seeding time you set. Removed torrent and its files.").arg(torrent->name()));
deleteTorrent(torrent->hash(), TorrentAndFiles); deleteTorrent(torrent->hash(), DeleteTorrentAndFiles);
} }
else if ((m_maxRatioAction == Pause) && !torrent->isPaused()) else if ((m_maxRatioAction == Pause) && !torrent->isPaused())
{ {
@@ -1723,7 +1723,7 @@ void Session::handleDownloadFinished(const Net::DownloadResult &result)
void Session::fileSearchFinished(const InfoHash &id, const QString &savePath, const QStringList &fileNames) void Session::fileSearchFinished(const InfoHash &id, const QString &savePath, const QStringList &fileNames)
{ {
TorrentHandleImpl *torrent = m_torrents.value(id); TorrentImpl *torrent = m_torrents.value(id);
if (torrent) if (torrent)
{ {
torrent->fileSearchFinished(savePath, fileNames); torrent->fileSearchFinished(savePath, fileNames);
@@ -1747,14 +1747,14 @@ void Session::fileSearchFinished(const InfoHash &id, const QString &savePath, co
} }
// Return the torrent handle, given its hash // Return the torrent handle, given its hash
TorrentHandle *Session::findTorrent(const InfoHash &hash) const Torrent *Session::findTorrent(const InfoHash &hash) const
{ {
return m_torrents.value(hash); return m_torrents.value(hash);
} }
bool Session::hasActiveTorrents() const bool Session::hasActiveTorrents() const
{ {
return std::any_of(m_torrents.begin(), m_torrents.end(), [](TorrentHandleImpl *torrent) return std::any_of(m_torrents.begin(), m_torrents.end(), [](TorrentImpl *torrent)
{ {
return TorrentFilter::ActiveTorrent.match(torrent); return TorrentFilter::ActiveTorrent.match(torrent);
}); });
@@ -1762,7 +1762,7 @@ bool Session::hasActiveTorrents() const
bool Session::hasUnfinishedTorrents() const bool Session::hasUnfinishedTorrents() const
{ {
return std::any_of(m_torrents.begin(), m_torrents.end(), [](const TorrentHandleImpl *torrent) return std::any_of(m_torrents.begin(), m_torrents.end(), [](const TorrentImpl *torrent)
{ {
return (!torrent->isSeed() && !torrent->isPaused()); return (!torrent->isSeed() && !torrent->isPaused());
}); });
@@ -1770,7 +1770,7 @@ bool Session::hasUnfinishedTorrents() const
bool Session::hasRunningSeed() const bool Session::hasRunningSeed() const
{ {
return std::any_of(m_torrents.begin(), m_torrents.end(), [](const TorrentHandleImpl *torrent) return std::any_of(m_torrents.begin(), m_torrents.end(), [](const TorrentImpl *torrent)
{ {
return (torrent->isSeed() && !torrent->isPaused()); return (torrent->isSeed() && !torrent->isPaused());
}); });
@@ -1799,14 +1799,14 @@ void Session::banIP(const QString &ip)
// and from the disk, if the corresponding deleteOption is chosen // and from the disk, if the corresponding deleteOption is chosen
bool Session::deleteTorrent(const InfoHash &hash, const DeleteOption deleteOption) bool Session::deleteTorrent(const InfoHash &hash, const DeleteOption deleteOption)
{ {
TorrentHandleImpl *const torrent = m_torrents.take(hash); TorrentImpl *const torrent = m_torrents.take(hash);
if (!torrent) return false; if (!torrent) return false;
qDebug("Deleting torrent with hash: %s", qUtf8Printable(torrent->hash())); qDebug("Deleting torrent with hash: %s", qUtf8Printable(torrent->hash()));
emit torrentAboutToBeRemoved(torrent); emit torrentAboutToBeRemoved(torrent);
// Remove it from session // Remove it from session
if (deleteOption == Torrent) if (deleteOption == DeleteTorrent)
{ {
m_removingTorrents[torrent->hash()] = {torrent->name(), "", deleteOption}; m_removingTorrents[torrent->hash()] = {torrent->name(), "", deleteOption};
@@ -1887,7 +1887,7 @@ bool Session::cancelDownloadMetadata(const InfoHash &hash)
void Session::increaseTorrentsQueuePos(const QVector<InfoHash> &hashes) void Session::increaseTorrentsQueuePos(const QVector<InfoHash> &hashes)
{ {
using ElementType = std::pair<int, TorrentHandleImpl *>; using ElementType = std::pair<int, TorrentImpl *>;
std::priority_queue<ElementType std::priority_queue<ElementType
, std::vector<ElementType> , std::vector<ElementType>
, std::greater<ElementType>> torrentQueue; , std::greater<ElementType>> torrentQueue;
@@ -1895,7 +1895,7 @@ void Session::increaseTorrentsQueuePos(const QVector<InfoHash> &hashes)
// Sort torrents by queue position // Sort torrents by queue position
for (const InfoHash &infoHash : hashes) for (const InfoHash &infoHash : hashes)
{ {
TorrentHandleImpl *const torrent = m_torrents.value(infoHash); TorrentImpl *const torrent = m_torrents.value(infoHash);
if (torrent && !torrent->isSeed()) if (torrent && !torrent->isSeed())
torrentQueue.emplace(torrent->queuePosition(), torrent); torrentQueue.emplace(torrent->queuePosition(), torrent);
} }
@@ -1903,7 +1903,7 @@ void Session::increaseTorrentsQueuePos(const QVector<InfoHash> &hashes)
// Increase torrents queue position (starting with the one in the highest queue position) // Increase torrents queue position (starting with the one in the highest queue position)
while (!torrentQueue.empty()) while (!torrentQueue.empty())
{ {
const TorrentHandleImpl *torrent = torrentQueue.top().second; const TorrentImpl *torrent = torrentQueue.top().second;
torrentQueuePositionUp(torrent->nativeHandle()); torrentQueuePositionUp(torrent->nativeHandle());
torrentQueue.pop(); torrentQueue.pop();
} }
@@ -1913,13 +1913,13 @@ void Session::increaseTorrentsQueuePos(const QVector<InfoHash> &hashes)
void Session::decreaseTorrentsQueuePos(const QVector<InfoHash> &hashes) void Session::decreaseTorrentsQueuePos(const QVector<InfoHash> &hashes)
{ {
using ElementType = std::pair<int, TorrentHandleImpl *>; using ElementType = std::pair<int, TorrentImpl *>;
std::priority_queue<ElementType> torrentQueue; std::priority_queue<ElementType> torrentQueue;
// Sort torrents by queue position // Sort torrents by queue position
for (const InfoHash &infoHash : hashes) for (const InfoHash &infoHash : hashes)
{ {
TorrentHandleImpl *const torrent = m_torrents.value(infoHash); TorrentImpl *const torrent = m_torrents.value(infoHash);
if (torrent && !torrent->isSeed()) if (torrent && !torrent->isSeed())
torrentQueue.emplace(torrent->queuePosition(), torrent); torrentQueue.emplace(torrent->queuePosition(), torrent);
} }
@@ -1927,7 +1927,7 @@ void Session::decreaseTorrentsQueuePos(const QVector<InfoHash> &hashes)
// Decrease torrents queue position (starting with the one in the lowest queue position) // Decrease torrents queue position (starting with the one in the lowest queue position)
while (!torrentQueue.empty()) while (!torrentQueue.empty())
{ {
const TorrentHandleImpl *torrent = torrentQueue.top().second; const TorrentImpl *torrent = torrentQueue.top().second;
torrentQueuePositionDown(torrent->nativeHandle()); torrentQueuePositionDown(torrent->nativeHandle());
torrentQueue.pop(); torrentQueue.pop();
} }
@@ -1940,13 +1940,13 @@ void Session::decreaseTorrentsQueuePos(const QVector<InfoHash> &hashes)
void Session::topTorrentsQueuePos(const QVector<InfoHash> &hashes) void Session::topTorrentsQueuePos(const QVector<InfoHash> &hashes)
{ {
using ElementType = std::pair<int, TorrentHandleImpl *>; using ElementType = std::pair<int, TorrentImpl *>;
std::priority_queue<ElementType> torrentQueue; std::priority_queue<ElementType> torrentQueue;
// Sort torrents by queue position // Sort torrents by queue position
for (const InfoHash &infoHash : hashes) for (const InfoHash &infoHash : hashes)
{ {
TorrentHandleImpl *const torrent = m_torrents.value(infoHash); TorrentImpl *const torrent = m_torrents.value(infoHash);
if (torrent && !torrent->isSeed()) if (torrent && !torrent->isSeed())
torrentQueue.emplace(torrent->queuePosition(), torrent); torrentQueue.emplace(torrent->queuePosition(), torrent);
} }
@@ -1954,7 +1954,7 @@ void Session::topTorrentsQueuePos(const QVector<InfoHash> &hashes)
// Top torrents queue position (starting with the one in the lowest queue position) // Top torrents queue position (starting with the one in the lowest queue position)
while (!torrentQueue.empty()) while (!torrentQueue.empty())
{ {
const TorrentHandleImpl *torrent = torrentQueue.top().second; const TorrentImpl *torrent = torrentQueue.top().second;
torrentQueuePositionTop(torrent->nativeHandle()); torrentQueuePositionTop(torrent->nativeHandle());
torrentQueue.pop(); torrentQueue.pop();
} }
@@ -1964,7 +1964,7 @@ void Session::topTorrentsQueuePos(const QVector<InfoHash> &hashes)
void Session::bottomTorrentsQueuePos(const QVector<InfoHash> &hashes) void Session::bottomTorrentsQueuePos(const QVector<InfoHash> &hashes)
{ {
using ElementType = std::pair<int, TorrentHandleImpl *>; using ElementType = std::pair<int, TorrentImpl *>;
std::priority_queue<ElementType std::priority_queue<ElementType
, std::vector<ElementType> , std::vector<ElementType>
, std::greater<ElementType>> torrentQueue; , std::greater<ElementType>> torrentQueue;
@@ -1972,7 +1972,7 @@ void Session::bottomTorrentsQueuePos(const QVector<InfoHash> &hashes)
// Sort torrents by queue position // Sort torrents by queue position
for (const InfoHash &infoHash : hashes) for (const InfoHash &infoHash : hashes)
{ {
TorrentHandleImpl *const torrent = m_torrents.value(infoHash); TorrentImpl *const torrent = m_torrents.value(infoHash);
if (torrent && !torrent->isSeed()) if (torrent && !torrent->isSeed())
torrentQueue.emplace(torrent->queuePosition(), torrent); torrentQueue.emplace(torrent->queuePosition(), torrent);
} }
@@ -1980,7 +1980,7 @@ void Session::bottomTorrentsQueuePos(const QVector<InfoHash> &hashes)
// Bottom torrents queue position (starting with the one in the highest queue position) // Bottom torrents queue position (starting with the one in the highest queue position)
while (!torrentQueue.empty()) while (!torrentQueue.empty())
{ {
const TorrentHandleImpl *torrent = torrentQueue.top().second; const TorrentImpl *torrent = torrentQueue.top().second;
torrentQueuePositionBottom(torrent->nativeHandle()); torrentQueuePositionBottom(torrent->nativeHandle());
torrentQueue.pop(); torrentQueue.pop();
} }
@@ -1991,17 +1991,17 @@ void Session::bottomTorrentsQueuePos(const QVector<InfoHash> &hashes)
saveTorrentsQueue(); saveTorrentsQueue();
} }
void Session::handleTorrentSaveResumeDataRequested(const TorrentHandleImpl *torrent) void Session::handleTorrentSaveResumeDataRequested(const TorrentImpl *torrent)
{ {
qDebug("Saving resume data is requested for torrent '%s'...", qUtf8Printable(torrent->name())); qDebug("Saving resume data is requested for torrent '%s'...", qUtf8Printable(torrent->name()));
++m_numResumeData; ++m_numResumeData;
} }
QVector<TorrentHandle *> Session::torrents() const QVector<Torrent *> Session::torrents() const
{ {
QVector<TorrentHandle *> result; QVector<Torrent *> result;
result.reserve(m_torrents.size()); result.reserve(m_torrents.size());
for (TorrentHandleImpl *torrent : asConst(m_torrents)) for (TorrentImpl *torrent : asConst(m_torrents))
result << torrent; result << torrent;
return result; return result;
@@ -2099,7 +2099,7 @@ bool Session::addTorrent_impl(const std::variant<MagnetUri, TorrentInfo> &source
if (m_loadingTorrents.contains(hash)) if (m_loadingTorrents.contains(hash))
return false; return false;
TorrentHandleImpl *const torrent = m_torrents.value(hash); TorrentImpl *const torrent = m_torrents.value(hash);
if (torrent) if (torrent)
{ // a duplicate torrent is added { // a duplicate torrent is added
if (torrent->isPrivate() || (hasMetadata && metadata.isPrivate())) if (torrent->isPrivate() || (hasMetadata && metadata.isPrivate()))
@@ -2293,7 +2293,7 @@ bool Session::downloadMetadata(const MagnetUri &magnetUri)
return true; return true;
} }
void Session::exportTorrentFile(const TorrentHandle *torrent, TorrentExportFolder folder) void Session::exportTorrentFile(const Torrent *torrent, TorrentExportFolder folder)
{ {
Q_ASSERT(((folder == TorrentExportFolder::Regular) && !torrentExportDirectory().isEmpty()) || Q_ASSERT(((folder == TorrentExportFolder::Regular) && !torrentExportDirectory().isEmpty()) ||
((folder == TorrentExportFolder::Finished) && !finishedTorrentExportDirectory().isEmpty())); ((folder == TorrentExportFolder::Finished) && !finishedTorrentExportDirectory().isEmpty()));
@@ -2321,7 +2321,7 @@ void Session::exportTorrentFile(const TorrentHandle *torrent, TorrentExportFolde
void Session::generateResumeData() void Session::generateResumeData()
{ {
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) for (TorrentImpl *const torrent : asConst(m_torrents))
{ {
if (!torrent->isValid()) continue; if (!torrent->isValid()) continue;
@@ -2367,7 +2367,7 @@ void Session::saveTorrentsQueue()
{ {
// store hash in textual representation // store hash in textual representation
QMap<int, QString> queue; // Use QMap since it should be ordered by key QMap<int, QString> queue; // Use QMap since it should be ordered by key
for (const TorrentHandleImpl *torrent : asConst(m_torrents)) for (const TorrentImpl *torrent : asConst(m_torrents))
{ {
// We require actual (non-cached) queue position here! // We require actual (non-cached) queue position here!
const int queuePos = static_cast<LTUnderlyingType<lt::queue_position_t>>(torrent->nativeHandle().queue_position()); const int queuePos = static_cast<LTUnderlyingType<lt::queue_position_t>>(torrent->nativeHandle().queue_position());
@@ -2409,10 +2409,10 @@ void Session::setDefaultSavePath(QString path)
m_defaultSavePath = path; m_defaultSavePath = path;
if (isDisableAutoTMMWhenDefaultSavePathChanged()) if (isDisableAutoTMMWhenDefaultSavePathChanged())
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) for (TorrentImpl *const torrent : asConst(m_torrents))
torrent->setAutoTMMEnabled(false); torrent->setAutoTMMEnabled(false);
else else
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) for (TorrentImpl *const torrent : asConst(m_torrents))
torrent->handleCategorySavePathChanged(); torrent->handleCategorySavePathChanged();
} }
@@ -2423,7 +2423,7 @@ void Session::setTempPath(QString path)
m_tempPath = path; m_tempPath = path;
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) for (TorrentImpl *const torrent : asConst(m_torrents))
torrent->handleTempPathChanged(); torrent->handleTempPathChanged();
} }
@@ -3751,8 +3751,8 @@ bool Session::isKnownTorrent(const InfoHash &hash) const
void Session::updateSeedingLimitTimer() void Session::updateSeedingLimitTimer()
{ {
if ((globalMaxRatio() == TorrentHandle::NO_RATIO_LIMIT) && !hasPerTorrentRatioLimit() if ((globalMaxRatio() == Torrent::NO_RATIO_LIMIT) && !hasPerTorrentRatioLimit()
&& (globalMaxSeedingMinutes() == TorrentHandle::NO_SEEDING_TIME_LIMIT) && !hasPerTorrentSeedingTimeLimit()) && (globalMaxSeedingMinutes() == Torrent::NO_SEEDING_TIME_LIMIT) && !hasPerTorrentSeedingTimeLimit())
{ {
if (m_seedingLimitTimer->isActive()) if (m_seedingLimitTimer->isActive())
m_seedingLimitTimer->stop(); m_seedingLimitTimer->stop();
@@ -3763,48 +3763,48 @@ void Session::updateSeedingLimitTimer()
} }
} }
void Session::handleTorrentShareLimitChanged(TorrentHandleImpl *const torrent) void Session::handleTorrentShareLimitChanged(TorrentImpl *const torrent)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
updateSeedingLimitTimer(); updateSeedingLimitTimer();
} }
void Session::handleTorrentNameChanged(TorrentHandleImpl *const torrent) void Session::handleTorrentNameChanged(TorrentImpl *const torrent)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
} }
void Session::handleTorrentSavePathChanged(TorrentHandleImpl *const torrent) void Session::handleTorrentSavePathChanged(TorrentImpl *const torrent)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
emit torrentSavePathChanged(torrent); emit torrentSavePathChanged(torrent);
} }
void Session::handleTorrentCategoryChanged(TorrentHandleImpl *const torrent, const QString &oldCategory) void Session::handleTorrentCategoryChanged(TorrentImpl *const torrent, const QString &oldCategory)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
emit torrentCategoryChanged(torrent, oldCategory); emit torrentCategoryChanged(torrent, oldCategory);
} }
void Session::handleTorrentTagAdded(TorrentHandleImpl *const torrent, const QString &tag) void Session::handleTorrentTagAdded(TorrentImpl *const torrent, const QString &tag)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
emit torrentTagAdded(torrent, tag); emit torrentTagAdded(torrent, tag);
} }
void Session::handleTorrentTagRemoved(TorrentHandleImpl *const torrent, const QString &tag) void Session::handleTorrentTagRemoved(TorrentImpl *const torrent, const QString &tag)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
emit torrentTagRemoved(torrent, tag); emit torrentTagRemoved(torrent, tag);
} }
void Session::handleTorrentSavingModeChanged(TorrentHandleImpl *const torrent) void Session::handleTorrentSavingModeChanged(TorrentImpl *const torrent)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
emit torrentSavingModeChanged(torrent); emit torrentSavingModeChanged(torrent);
} }
void Session::handleTorrentTrackersAdded(TorrentHandleImpl *const torrent, const QVector<TrackerEntry> &newTrackers) void Session::handleTorrentTrackersAdded(TorrentImpl *const torrent, const QVector<TrackerEntry> &newTrackers)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
@@ -3816,7 +3816,7 @@ void Session::handleTorrentTrackersAdded(TorrentHandleImpl *const torrent, const
emit trackersChanged(torrent); emit trackersChanged(torrent);
} }
void Session::handleTorrentTrackersRemoved(TorrentHandleImpl *const torrent, const QVector<TrackerEntry> &deletedTrackers) void Session::handleTorrentTrackersRemoved(TorrentImpl *const torrent, const QVector<TrackerEntry> &deletedTrackers)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
@@ -3828,27 +3828,27 @@ void Session::handleTorrentTrackersRemoved(TorrentHandleImpl *const torrent, con
emit trackersChanged(torrent); emit trackersChanged(torrent);
} }
void Session::handleTorrentTrackersChanged(TorrentHandleImpl *const torrent) void Session::handleTorrentTrackersChanged(TorrentImpl *const torrent)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
emit trackersChanged(torrent); emit trackersChanged(torrent);
} }
void Session::handleTorrentUrlSeedsAdded(TorrentHandleImpl *const torrent, const QVector<QUrl> &newUrlSeeds) void Session::handleTorrentUrlSeedsAdded(TorrentImpl *const torrent, const QVector<QUrl> &newUrlSeeds)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
for (const QUrl &newUrlSeed : newUrlSeeds) for (const QUrl &newUrlSeed : newUrlSeeds)
LogMsg(tr("URL seed '%1' was added to torrent '%2'").arg(newUrlSeed.toString(), torrent->name())); LogMsg(tr("URL seed '%1' was added to torrent '%2'").arg(newUrlSeed.toString(), torrent->name()));
} }
void Session::handleTorrentUrlSeedsRemoved(TorrentHandleImpl *const torrent, const QVector<QUrl> &urlSeeds) void Session::handleTorrentUrlSeedsRemoved(TorrentImpl *const torrent, const QVector<QUrl> &urlSeeds)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
for (const QUrl &urlSeed : urlSeeds) for (const QUrl &urlSeed : urlSeeds)
LogMsg(tr("URL seed '%1' was removed from torrent '%2'").arg(urlSeed.toString(), torrent->name())); LogMsg(tr("URL seed '%1' was removed from torrent '%2'").arg(urlSeed.toString(), torrent->name()));
} }
void Session::handleTorrentMetadataReceived(TorrentHandleImpl *const torrent) void Session::handleTorrentMetadataReceived(TorrentImpl *const torrent)
{ {
// Save metadata // Save metadata
const QDir resumeDataDir {m_resumeFolderPath}; const QDir resumeDataDir {m_resumeFolderPath};
@@ -3869,24 +3869,24 @@ void Session::handleTorrentMetadataReceived(TorrentHandleImpl *const torrent)
emit torrentMetadataReceived(torrent); emit torrentMetadataReceived(torrent);
} }
void Session::handleTorrentPaused(TorrentHandleImpl *const torrent) void Session::handleTorrentPaused(TorrentImpl *const torrent)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
emit torrentPaused(torrent); emit torrentPaused(torrent);
} }
void Session::handleTorrentResumed(TorrentHandleImpl *const torrent) void Session::handleTorrentResumed(TorrentImpl *const torrent)
{ {
torrent->saveResumeData(); torrent->saveResumeData();
emit torrentResumed(torrent); emit torrentResumed(torrent);
} }
void Session::handleTorrentChecked(TorrentHandleImpl *const torrent) void Session::handleTorrentChecked(TorrentImpl *const torrent)
{ {
emit torrentFinishedChecking(torrent); emit torrentFinishedChecking(torrent);
} }
void Session::handleTorrentFinished(TorrentHandleImpl *const torrent) void Session::handleTorrentFinished(TorrentImpl *const torrent)
{ {
if (!torrent->hasError() && !torrent->hasMissingFiles()) if (!torrent->hasError() && !torrent->hasMissingFiles())
torrent->saveResumeData(); torrent->saveResumeData();
@@ -3925,7 +3925,7 @@ void Session::handleTorrentFinished(TorrentHandleImpl *const torrent)
emit allTorrentsFinished(); emit allTorrentsFinished();
} }
void Session::handleTorrentResumeDataReady(TorrentHandleImpl *const torrent, const std::shared_ptr<lt::entry> &data) void Session::handleTorrentResumeDataReady(TorrentImpl *const torrent, const std::shared_ptr<lt::entry> &data)
{ {
--m_numResumeData; --m_numResumeData;
@@ -3942,17 +3942,17 @@ void Session::handleTorrentResumeDataReady(TorrentHandleImpl *const torrent, con
#endif #endif
} }
void Session::handleTorrentTrackerReply(TorrentHandleImpl *const torrent, const QString &trackerUrl) void Session::handleTorrentTrackerReply(TorrentImpl *const torrent, const QString &trackerUrl)
{ {
emit trackerSuccess(torrent, trackerUrl); emit trackerSuccess(torrent, trackerUrl);
} }
void Session::handleTorrentTrackerError(TorrentHandleImpl *const torrent, const QString &trackerUrl) void Session::handleTorrentTrackerError(TorrentImpl *const torrent, const QString &trackerUrl)
{ {
emit trackerError(torrent, trackerUrl); emit trackerError(torrent, trackerUrl);
} }
bool Session::addMoveTorrentStorageJob(TorrentHandleImpl *torrent, const QString &newPath, const MoveStorageMode mode) bool Session::addMoveTorrentStorageJob(TorrentImpl *torrent, const QString &newPath, const MoveStorageMode mode)
{ {
Q_ASSERT(torrent); Q_ASSERT(torrent);
@@ -4009,7 +4009,7 @@ bool Session::addMoveTorrentStorageJob(TorrentHandleImpl *torrent, const QString
void Session::moveTorrentStorage(const MoveStorageJob &job) const void Session::moveTorrentStorage(const MoveStorageJob &job) const
{ {
const InfoHash infoHash = job.torrentHandle.info_hash(); const InfoHash infoHash = job.torrentHandle.info_hash();
const TorrentHandleImpl *torrent = m_torrents.value(infoHash); const TorrentImpl *torrent = m_torrents.value(infoHash);
const QString torrentName = (torrent ? torrent->name() : QString {infoHash}); const QString torrentName = (torrent ? torrent->name() : QString {infoHash});
LogMsg(tr("Moving \"%1\" to \"%2\"...").arg(torrentName, job.path)); LogMsg(tr("Moving \"%1\" to \"%2\"...").arg(torrentName, job.path));
@@ -4032,7 +4032,7 @@ void Session::handleMoveTorrentStorageJobFinished()
const bool torrentHasOutstandingJob = (iter != m_moveStorageQueue.cend()); const bool torrentHasOutstandingJob = (iter != m_moveStorageQueue.cend());
TorrentHandleImpl *torrent = m_torrents.value(finishedJob.torrentHandle.info_hash()); TorrentImpl *torrent = m_torrents.value(finishedJob.torrentHandle.info_hash());
if (torrent) if (torrent)
{ {
torrent->handleMoveStorageJobFinished(torrentHasOutstandingJob); torrent->handleMoveStorageJobFinished(torrentHasOutstandingJob);
@@ -4042,19 +4042,19 @@ void Session::handleMoveTorrentStorageJobFinished()
// Last job is completed for torrent that being removing, so actually remove it // Last job is completed for torrent that being removing, so actually remove it
const lt::torrent_handle nativeHandle {finishedJob.torrentHandle}; const lt::torrent_handle nativeHandle {finishedJob.torrentHandle};
const RemovingTorrentData &removingTorrentData = m_removingTorrents[nativeHandle.info_hash()]; const RemovingTorrentData &removingTorrentData = m_removingTorrents[nativeHandle.info_hash()];
if (removingTorrentData.deleteOption == Torrent) if (removingTorrentData.deleteOption == DeleteTorrent)
m_nativeSession->remove_torrent(nativeHandle, lt::session::delete_partfile); m_nativeSession->remove_torrent(nativeHandle, lt::session::delete_partfile);
} }
} }
void Session::handleTorrentTrackerWarning(TorrentHandleImpl *const torrent, const QString &trackerUrl) void Session::handleTorrentTrackerWarning(TorrentImpl *const torrent, const QString &trackerUrl)
{ {
emit trackerWarning(torrent, trackerUrl); emit trackerWarning(torrent, trackerUrl);
} }
bool Session::hasPerTorrentRatioLimit() const bool Session::hasPerTorrentRatioLimit() const
{ {
return std::any_of(m_torrents.cbegin(), m_torrents.cend(), [](const TorrentHandleImpl *torrent) return std::any_of(m_torrents.cbegin(), m_torrents.cend(), [](const TorrentImpl *torrent)
{ {
return (torrent->ratioLimit() >= 0); return (torrent->ratioLimit() >= 0);
}); });
@@ -4062,7 +4062,7 @@ bool Session::hasPerTorrentRatioLimit() const
bool Session::hasPerTorrentSeedingTimeLimit() const bool Session::hasPerTorrentSeedingTimeLimit() const
{ {
return std::any_of(m_torrents.cbegin(), m_torrents.cend(), [](const TorrentHandleImpl *torrent) return std::any_of(m_torrents.cbegin(), m_torrents.cend(), [](const TorrentImpl *torrent)
{ {
return (torrent->seedingTimeLimit() >= 0); return (torrent->seedingTimeLimit() >= 0);
}); });
@@ -4143,7 +4143,7 @@ void Session::disableIPFilter()
void Session::recursiveTorrentDownload(const InfoHash &hash) void Session::recursiveTorrentDownload(const InfoHash &hash)
{ {
TorrentHandleImpl *const torrent = m_torrents.value(hash); TorrentImpl *const torrent = m_torrents.value(hash);
if (!torrent) return; if (!torrent) return;
for (int i = 0; i < torrent->filesCount(); ++i) for (int i = 0; i < torrent->filesCount(); ++i)
@@ -4189,7 +4189,7 @@ bool Session::loadTorrentResumeData(const QByteArray &data, const TorrentInfo &m
Utils::Fs::toUniformPath(fromLTString(root.dict_find_string_value("qBt-savePath")))); Utils::Fs::toUniformPath(fromLTString(root.dict_find_string_value("qBt-savePath"))));
torrentParams.hasSeedStatus = root.dict_find_int_value("qBt-seedStatus"); torrentParams.hasSeedStatus = root.dict_find_int_value("qBt-seedStatus");
torrentParams.firstLastPiecePriority = root.dict_find_int_value("qBt-firstLastPiecePriority"); torrentParams.firstLastPiecePriority = root.dict_find_int_value("qBt-firstLastPiecePriority");
torrentParams.seedingTimeLimit = root.dict_find_int_value("qBt-seedingTimeLimit", TorrentHandle::USE_GLOBAL_SEEDING_TIME); torrentParams.seedingTimeLimit = root.dict_find_int_value("qBt-seedingTimeLimit", Torrent::USE_GLOBAL_SEEDING_TIME);
// TODO: The following code is deprecated. Replace with the commented one after several releases in 4.4.x. // TODO: The following code is deprecated. Replace with the commented one after several releases in 4.4.x.
// === BEGIN DEPRECATED CODE === // // === BEGIN DEPRECATED CODE === //
@@ -4212,7 +4212,7 @@ bool Session::loadTorrentResumeData(const QByteArray &data, const TorrentInfo &m
const lt::string_view ratioLimitString = root.dict_find_string_value("qBt-ratioLimit"); const lt::string_view ratioLimitString = root.dict_find_string_value("qBt-ratioLimit");
if (ratioLimitString.empty()) if (ratioLimitString.empty())
torrentParams.ratioLimit = root.dict_find_int_value("qBt-ratioLimit", TorrentHandle::USE_GLOBAL_RATIO * 1000) / 1000.0; torrentParams.ratioLimit = root.dict_find_int_value("qBt-ratioLimit", Torrent::USE_GLOBAL_RATIO * 1000) / 1000.0;
else else
torrentParams.ratioLimit = fromLTString(ratioLimitString).toDouble(); torrentParams.ratioLimit = fromLTString(ratioLimitString).toDouble();
@@ -4546,7 +4546,7 @@ void Session::handleAlert(const lt::alert *a)
void Session::dispatchTorrentAlert(const lt::alert *a) void Session::dispatchTorrentAlert(const lt::alert *a)
{ {
TorrentHandleImpl *const torrent = m_torrents.value(static_cast<const lt::torrent_alert*>(a)->handle.info_hash()); TorrentImpl *const torrent = m_torrents.value(static_cast<const lt::torrent_alert*>(a)->handle.info_hash());
if (torrent) if (torrent)
{ {
torrent->handleAlert(a); torrent->handleAlert(a);
@@ -4561,13 +4561,13 @@ void Session::dispatchTorrentAlert(const lt::alert *a)
} }
} }
void Session::createTorrentHandle(const lt::torrent_handle &nativeHandle) void Session::createTorrent(const lt::torrent_handle &nativeHandle)
{ {
Q_ASSERT(m_loadingTorrents.contains(nativeHandle.info_hash())); Q_ASSERT(m_loadingTorrents.contains(nativeHandle.info_hash()));
const LoadTorrentParams params = m_loadingTorrents.take(nativeHandle.info_hash()); const LoadTorrentParams params = m_loadingTorrents.take(nativeHandle.info_hash());
auto *const torrent = new TorrentHandleImpl {this, m_nativeSession, nativeHandle, params}; auto *const torrent = new TorrentImpl {this, m_nativeSession, nativeHandle, params};
m_torrents.insert(torrent->hash(), torrent); m_torrents.insert(torrent->hash(), torrent);
const bool hasMetadata = torrent->hasMetadata(); const bool hasMetadata = torrent->hasMetadata();
@@ -4635,7 +4635,7 @@ void Session::handleAddTorrentAlert(const lt::add_torrent_alert *p)
} }
else if (m_loadingTorrents.contains(p->handle.info_hash())) else if (m_loadingTorrents.contains(p->handle.info_hash()))
{ {
createTorrentHandle(p->handle); createTorrent(p->handle);
} }
} }
@@ -4646,7 +4646,7 @@ void Session::handleTorrentRemovedAlert(const lt::torrent_removed_alert *p)
const auto removingTorrentDataIter = m_removingTorrents.find(infoHash); const auto removingTorrentDataIter = m_removingTorrents.find(infoHash);
if (removingTorrentDataIter != m_removingTorrents.end()) if (removingTorrentDataIter != m_removingTorrents.end())
{ {
if (removingTorrentDataIter->deleteOption == Torrent) if (removingTorrentDataIter->deleteOption == DeleteTorrent)
{ {
LogMsg(tr("'%1' was removed from the transfer list.", "'xxx.avi' was removed...").arg(removingTorrentDataIter->name)); LogMsg(tr("'%1' was removed from the transfer list.", "'xxx.avi' was removed...").arg(removingTorrentDataIter->name));
m_removingTorrents.erase(removingTorrentDataIter); m_removingTorrents.erase(removingTorrentDataIter);
@@ -4712,7 +4712,7 @@ void Session::handleMetadataReceivedAlert(const lt::metadata_received_alert *p)
void Session::handleFileErrorAlert(const lt::file_error_alert *p) void Session::handleFileErrorAlert(const lt::file_error_alert *p)
{ {
TorrentHandleImpl *const torrent = m_torrents.value(p->handle.info_hash()); TorrentImpl *const torrent = m_torrents.value(p->handle.info_hash());
if (!torrent) if (!torrent)
return; return;
@@ -4782,7 +4782,7 @@ void Session::handlePeerBanAlert(const lt::peer_ban_alert *p)
void Session::handleUrlSeedAlert(const lt::url_seed_alert *p) void Session::handleUrlSeedAlert(const lt::url_seed_alert *p)
{ {
const TorrentHandleImpl *torrent = m_torrents.value(p->handle.info_hash()); const TorrentImpl *torrent = m_torrents.value(p->handle.info_hash());
if (!torrent) if (!torrent)
return; return;
@@ -4920,7 +4920,7 @@ void Session::handleStorageMovedAlert(const lt::storage_moved_alert *p)
Q_ASSERT(newPath == currentJob.path); Q_ASSERT(newPath == currentJob.path);
const InfoHash infoHash = currentJob.torrentHandle.info_hash(); const InfoHash infoHash = currentJob.torrentHandle.info_hash();
TorrentHandleImpl *torrent = m_torrents.value(infoHash); TorrentImpl *torrent = m_torrents.value(infoHash);
const QString torrentName = (torrent ? torrent->name() : QString {infoHash}); const QString torrentName = (torrent ? torrent->name() : QString {infoHash});
LogMsg(tr("\"%1\" is successfully moved to \"%2\".").arg(torrentName, newPath)); LogMsg(tr("\"%1\" is successfully moved to \"%2\".").arg(torrentName, newPath));
@@ -4935,7 +4935,7 @@ void Session::handleStorageMovedFailedAlert(const lt::storage_moved_failed_alert
Q_ASSERT(currentJob.torrentHandle == p->handle); Q_ASSERT(currentJob.torrentHandle == p->handle);
const InfoHash infoHash = currentJob.torrentHandle.info_hash(); const InfoHash infoHash = currentJob.torrentHandle.info_hash();
TorrentHandleImpl *torrent = m_torrents.value(infoHash); TorrentImpl *torrent = m_torrents.value(infoHash);
const QString torrentName = (torrent ? torrent->name() : QString {infoHash}); const QString torrentName = (torrent ? torrent->name() : QString {infoHash});
const QString currentLocation = QString::fromStdString(p->handle.status(lt::torrent_handle::query_save_path).save_path); const QString currentLocation = QString::fromStdString(p->handle.status(lt::torrent_handle::query_save_path).save_path);
const QString errorMessage = QString::fromStdString(p->message()); const QString errorMessage = QString::fromStdString(p->message());
@@ -4947,12 +4947,12 @@ void Session::handleStorageMovedFailedAlert(const lt::storage_moved_failed_alert
void Session::handleStateUpdateAlert(const lt::state_update_alert *p) void Session::handleStateUpdateAlert(const lt::state_update_alert *p)
{ {
QVector<TorrentHandle *> updatedTorrents; QVector<Torrent *> updatedTorrents;
updatedTorrents.reserve(p->status.size()); updatedTorrents.reserve(p->status.size());
for (const lt::torrent_status &status : p->status) for (const lt::torrent_status &status : p->status)
{ {
TorrentHandleImpl *const torrent = m_torrents.value(status.info_hash); TorrentImpl *const torrent = m_torrents.value(status.info_hash);
if (!torrent) if (!torrent)
continue; continue;

View File

@@ -85,8 +85,8 @@ enum MaxRatioAction
enum DeleteOption enum DeleteOption
{ {
Torrent, DeleteTorrent,
TorrentAndFiles DeleteTorrentAndFiles
}; };
enum TorrentExportFolder enum TorrentExportFolder
@@ -104,8 +104,8 @@ namespace BitTorrent
{ {
class InfoHash; class InfoHash;
class MagnetUri; class MagnetUri;
class TorrentHandle; class Torrent;
class TorrentHandleImpl; class TorrentImpl;
class Tracker; class Tracker;
class TrackerEntry; class TrackerEntry;
struct LoadTorrentParams; struct LoadTorrentParams;
@@ -440,8 +440,8 @@ namespace BitTorrent
#endif #endif
void startUpTorrents(); void startUpTorrents();
TorrentHandle *findTorrent(const InfoHash &hash) const; Torrent *findTorrent(const InfoHash &hash) const;
QVector<TorrentHandle *> torrents() const; QVector<Torrent *> torrents() const;
bool hasActiveTorrents() const; bool hasActiveTorrents() const;
bool hasUnfinishedTorrents() const; bool hasUnfinishedTorrents() const;
bool hasRunningSeed() const; bool hasRunningSeed() const;
@@ -460,7 +460,7 @@ namespace BitTorrent
bool addTorrent(const QString &source, const AddTorrentParams &params = AddTorrentParams()); bool addTorrent(const QString &source, const AddTorrentParams &params = AddTorrentParams());
bool addTorrent(const MagnetUri &magnetUri, const AddTorrentParams &params = AddTorrentParams()); bool addTorrent(const MagnetUri &magnetUri, const AddTorrentParams &params = AddTorrentParams());
bool addTorrent(const TorrentInfo &torrentInfo, const AddTorrentParams &params = AddTorrentParams()); bool addTorrent(const TorrentInfo &torrentInfo, const AddTorrentParams &params = AddTorrentParams());
bool deleteTorrent(const InfoHash &hash, DeleteOption deleteOption = Torrent); bool deleteTorrent(const InfoHash &hash, DeleteOption deleteOption = DeleteTorrent);
bool downloadMetadata(const MagnetUri &magnetUri); bool downloadMetadata(const MagnetUri &magnetUri);
bool cancelDownloadMetadata(const InfoHash &hash); bool cancelDownloadMetadata(const InfoHash &hash);
@@ -470,31 +470,31 @@ namespace BitTorrent
void topTorrentsQueuePos(const QVector<InfoHash> &hashes); void topTorrentsQueuePos(const QVector<InfoHash> &hashes);
void bottomTorrentsQueuePos(const QVector<InfoHash> &hashes); void bottomTorrentsQueuePos(const QVector<InfoHash> &hashes);
// TorrentHandle interface // Torrent interface
void handleTorrentSaveResumeDataRequested(const TorrentHandleImpl *torrent); void handleTorrentSaveResumeDataRequested(const TorrentImpl *torrent);
void handleTorrentShareLimitChanged(TorrentHandleImpl *const torrent); void handleTorrentShareLimitChanged(TorrentImpl *const torrent);
void handleTorrentNameChanged(TorrentHandleImpl *const torrent); void handleTorrentNameChanged(TorrentImpl *const torrent);
void handleTorrentSavePathChanged(TorrentHandleImpl *const torrent); void handleTorrentSavePathChanged(TorrentImpl *const torrent);
void handleTorrentCategoryChanged(TorrentHandleImpl *const torrent, const QString &oldCategory); void handleTorrentCategoryChanged(TorrentImpl *const torrent, const QString &oldCategory);
void handleTorrentTagAdded(TorrentHandleImpl *const torrent, const QString &tag); void handleTorrentTagAdded(TorrentImpl *const torrent, const QString &tag);
void handleTorrentTagRemoved(TorrentHandleImpl *const torrent, const QString &tag); void handleTorrentTagRemoved(TorrentImpl *const torrent, const QString &tag);
void handleTorrentSavingModeChanged(TorrentHandleImpl *const torrent); void handleTorrentSavingModeChanged(TorrentImpl *const torrent);
void handleTorrentMetadataReceived(TorrentHandleImpl *const torrent); void handleTorrentMetadataReceived(TorrentImpl *const torrent);
void handleTorrentPaused(TorrentHandleImpl *const torrent); void handleTorrentPaused(TorrentImpl *const torrent);
void handleTorrentResumed(TorrentHandleImpl *const torrent); void handleTorrentResumed(TorrentImpl *const torrent);
void handleTorrentChecked(TorrentHandleImpl *const torrent); void handleTorrentChecked(TorrentImpl *const torrent);
void handleTorrentFinished(TorrentHandleImpl *const torrent); void handleTorrentFinished(TorrentImpl *const torrent);
void handleTorrentTrackersAdded(TorrentHandleImpl *const torrent, const QVector<TrackerEntry> &newTrackers); void handleTorrentTrackersAdded(TorrentImpl *const torrent, const QVector<TrackerEntry> &newTrackers);
void handleTorrentTrackersRemoved(TorrentHandleImpl *const torrent, const QVector<TrackerEntry> &deletedTrackers); void handleTorrentTrackersRemoved(TorrentImpl *const torrent, const QVector<TrackerEntry> &deletedTrackers);
void handleTorrentTrackersChanged(TorrentHandleImpl *const torrent); void handleTorrentTrackersChanged(TorrentImpl *const torrent);
void handleTorrentUrlSeedsAdded(TorrentHandleImpl *const torrent, const QVector<QUrl> &newUrlSeeds); void handleTorrentUrlSeedsAdded(TorrentImpl *const torrent, const QVector<QUrl> &newUrlSeeds);
void handleTorrentUrlSeedsRemoved(TorrentHandleImpl *const torrent, const QVector<QUrl> &urlSeeds); void handleTorrentUrlSeedsRemoved(TorrentImpl *const torrent, const QVector<QUrl> &urlSeeds);
void handleTorrentResumeDataReady(TorrentHandleImpl *const torrent, const std::shared_ptr<lt::entry> &data); void handleTorrentResumeDataReady(TorrentImpl *const torrent, const std::shared_ptr<lt::entry> &data);
void handleTorrentTrackerReply(TorrentHandleImpl *const torrent, const QString &trackerUrl); void handleTorrentTrackerReply(TorrentImpl *const torrent, const QString &trackerUrl);
void handleTorrentTrackerWarning(TorrentHandleImpl *const torrent, const QString &trackerUrl); void handleTorrentTrackerWarning(TorrentImpl *const torrent, const QString &trackerUrl);
void handleTorrentTrackerError(TorrentHandleImpl *const torrent, const QString &trackerUrl); void handleTorrentTrackerError(TorrentImpl *const torrent, const QString &trackerUrl);
bool addMoveTorrentStorageJob(TorrentHandleImpl *torrent, const QString &newPath, MoveStorageMode mode); bool addMoveTorrentStorageJob(TorrentImpl *torrent, const QString &newPath, MoveStorageMode mode);
void findIncompleteFiles(const TorrentInfo &torrentInfo, const QString &savePath) const; void findIncompleteFiles(const TorrentInfo &torrentInfo, const QString &savePath) const;
@@ -504,37 +504,37 @@ namespace BitTorrent
void categoryRemoved(const QString &categoryName); void categoryRemoved(const QString &categoryName);
void downloadFromUrlFailed(const QString &url, const QString &reason); void downloadFromUrlFailed(const QString &url, const QString &reason);
void downloadFromUrlFinished(const QString &url); void downloadFromUrlFinished(const QString &url);
void fullDiskError(TorrentHandle *torrent, const QString &msg); void fullDiskError(Torrent *torrent, const QString &msg);
void IPFilterParsed(bool error, int ruleCount); void IPFilterParsed(bool error, int ruleCount);
void loadTorrentFailed(const QString &error); void loadTorrentFailed(const QString &error);
void metadataDownloaded(const TorrentInfo &info); void metadataDownloaded(const TorrentInfo &info);
void recursiveTorrentDownloadPossible(TorrentHandle *torrent); void recursiveTorrentDownloadPossible(Torrent *torrent);
void speedLimitModeChanged(bool alternative); void speedLimitModeChanged(bool alternative);
void statsUpdated(); void statsUpdated();
void subcategoriesSupportChanged(); void subcategoriesSupportChanged();
void tagAdded(const QString &tag); void tagAdded(const QString &tag);
void tagRemoved(const QString &tag); void tagRemoved(const QString &tag);
void torrentAboutToBeRemoved(TorrentHandle *torrent); void torrentAboutToBeRemoved(Torrent *torrent);
void torrentAdded(TorrentHandle *torrent); void torrentAdded(Torrent *torrent);
void torrentCategoryChanged(TorrentHandle *torrent, const QString &oldCategory); void torrentCategoryChanged(Torrent *torrent, const QString &oldCategory);
void torrentFinished(TorrentHandle *torrent); void torrentFinished(Torrent *torrent);
void torrentFinishedChecking(TorrentHandle *torrent); void torrentFinishedChecking(Torrent *torrent);
void torrentLoaded(TorrentHandle *torrent); void torrentLoaded(Torrent *torrent);
void torrentMetadataReceived(TorrentHandle *torrent); void torrentMetadataReceived(Torrent *torrent);
void torrentPaused(TorrentHandle *torrent); void torrentPaused(Torrent *torrent);
void torrentResumed(TorrentHandle *torrent); void torrentResumed(Torrent *torrent);
void torrentSavePathChanged(TorrentHandle *torrent); void torrentSavePathChanged(Torrent *torrent);
void torrentSavingModeChanged(TorrentHandle *torrent); void torrentSavingModeChanged(Torrent *torrent);
void torrentsUpdated(const QVector<TorrentHandle *> &torrents); void torrentsUpdated(const QVector<Torrent *> &torrents);
void torrentTagAdded(TorrentHandle *torrent, const QString &tag); void torrentTagAdded(Torrent *torrent, const QString &tag);
void torrentTagRemoved(TorrentHandle *torrent, const QString &tag); void torrentTagRemoved(Torrent *torrent, const QString &tag);
void trackerError(TorrentHandle *torrent, const QString &tracker); void trackerError(Torrent *torrent, const QString &tracker);
void trackerlessStateChanged(TorrentHandle *torrent, bool trackerless); void trackerlessStateChanged(Torrent *torrent, bool trackerless);
void trackersAdded(TorrentHandle *torrent, const QVector<TrackerEntry> &trackers); void trackersAdded(Torrent *torrent, const QVector<TrackerEntry> &trackers);
void trackersChanged(TorrentHandle *torrent); void trackersChanged(Torrent *torrent);
void trackersRemoved(TorrentHandle *torrent, const QVector<TrackerEntry> &trackers); void trackersRemoved(Torrent *torrent, const QVector<TrackerEntry> &trackers);
void trackerSuccess(TorrentHandle *torrent, const QString &tracker); void trackerSuccess(Torrent *torrent, const QString &tracker);
void trackerWarning(TorrentHandle *torrent, const QString &tracker); void trackerWarning(Torrent *torrent, const QString &tracker);
private slots: private slots:
void configureDeferred(); void configureDeferred();
@@ -604,7 +604,7 @@ namespace BitTorrent
bool addTorrent_impl(const std::variant<MagnetUri, TorrentInfo> &source, const AddTorrentParams &addTorrentParams); bool addTorrent_impl(const std::variant<MagnetUri, TorrentInfo> &source, const AddTorrentParams &addTorrentParams);
void updateSeedingLimitTimer(); void updateSeedingLimitTimer();
void exportTorrentFile(const TorrentHandle *torrent, TorrentExportFolder folder = TorrentExportFolder::Regular); void exportTorrentFile(const Torrent *torrent, TorrentExportFolder folder = TorrentExportFolder::Regular);
void handleAlert(const lt::alert *a); void handleAlert(const lt::alert *a);
void dispatchTorrentAlert(const lt::alert *a); void dispatchTorrentAlert(const lt::alert *a);
@@ -629,7 +629,7 @@ namespace BitTorrent
void handleStorageMovedFailedAlert(const lt::storage_moved_failed_alert *p); void handleStorageMovedFailedAlert(const lt::storage_moved_failed_alert *p);
void handleSocks5Alert(const lt::socks5_alert *p) const; void handleSocks5Alert(const lt::socks5_alert *p) const;
void createTorrentHandle(const lt::torrent_handle &nativeHandle); void createTorrent(const lt::torrent_handle &nativeHandle);
void saveResumeData(); void saveResumeData();
void saveTorrentsQueue(); void saveTorrentsQueue();
@@ -771,7 +771,7 @@ namespace BitTorrent
QSet<InfoHash> m_downloadedMetadata; QSet<InfoHash> m_downloadedMetadata;
QHash<InfoHash, TorrentHandleImpl *> m_torrents; QHash<InfoHash, TorrentImpl *> m_torrents;
QHash<InfoHash, LoadTorrentParams> m_loadingTorrents; QHash<InfoHash, LoadTorrentParams> m_loadingTorrents;
QHash<QString, AddTorrentParams> m_downloadedTorrents; QHash<QString, AddTorrentParams> m_downloadedTorrents;
QHash<InfoHash, RemovingTorrentData> m_removingTorrents; QHash<InfoHash, RemovingTorrentData> m_removingTorrents;

View File

@@ -27,7 +27,7 @@
* exception statement from your version. * exception statement from your version.
*/ */
#include "torrenthandle.h" #include "torrent.h"
#include <type_traits> #include <type_traits>
@@ -40,33 +40,33 @@ namespace BitTorrent
return ::qHash(static_cast<std::underlying_type_t<TorrentState>>(key), seed); return ::qHash(static_cast<std::underlying_type_t<TorrentState>>(key), seed);
} }
// TorrentHandle // Torrent
const qreal TorrentHandle::USE_GLOBAL_RATIO = -2.; const qreal Torrent::USE_GLOBAL_RATIO = -2.;
const qreal TorrentHandle::NO_RATIO_LIMIT = -1.; const qreal Torrent::NO_RATIO_LIMIT = -1.;
const int TorrentHandle::USE_GLOBAL_SEEDING_TIME = -2; const int Torrent::USE_GLOBAL_SEEDING_TIME = -2;
const int TorrentHandle::NO_SEEDING_TIME_LIMIT = -1; const int Torrent::NO_SEEDING_TIME_LIMIT = -1;
const qreal TorrentHandle::MAX_RATIO = 9999.; const qreal Torrent::MAX_RATIO = 9999.;
const int TorrentHandle::MAX_SEEDING_TIME = 525600; const int Torrent::MAX_SEEDING_TIME = 525600;
bool TorrentHandle::isResumed() const bool Torrent::isResumed() const
{ {
return !isPaused(); return !isPaused();
} }
qlonglong TorrentHandle::remainingSize() const qlonglong Torrent::remainingSize() const
{ {
return wantedSize() - completedSize(); return wantedSize() - completedSize();
} }
void TorrentHandle::toggleSequentialDownload() void Torrent::toggleSequentialDownload()
{ {
setSequentialDownload(!isSequentialDownload()); setSequentialDownload(!isSequentialDownload());
} }
void TorrentHandle::toggleFirstLastPiecePriority() void Torrent::toggleFirstLastPiecePriority()
{ {
setFirstLastPiecePriority(!hasFirstLastPiecePriority()); setFirstLastPiecePriority(!hasFirstLastPiecePriority());
} }

View File

@@ -91,7 +91,7 @@ namespace BitTorrent
uint qHash(TorrentState key, uint seed); uint qHash(TorrentState key, uint seed);
class TorrentHandle : public AbstractFileStorage class Torrent : public AbstractFileStorage
{ {
public: public:
static const qreal USE_GLOBAL_RATIO; static const qreal USE_GLOBAL_RATIO;
@@ -103,7 +103,7 @@ namespace BitTorrent
static const qreal MAX_RATIO; static const qreal MAX_RATIO;
static const int MAX_SEEDING_TIME; static const int MAX_SEEDING_TIME;
virtual ~TorrentHandle() = default; virtual ~Torrent() = default;
virtual InfoHash hash() const = 0; virtual InfoHash hash() const = 0;
virtual QString name() const = 0; virtual QString name() const = 0;

View File

@@ -46,7 +46,7 @@
#include "infohash.h" #include "infohash.h"
#include "speedmonitor.h" #include "speedmonitor.h"
#include "torrenthandle.h" #include "torrent.h"
#include "torrentinfo.h" #include "torrentinfo.h"
namespace BitTorrent namespace BitTorrent
@@ -69,8 +69,8 @@ namespace BitTorrent
bool paused = false; bool paused = false;
qreal ratioLimit = TorrentHandle::USE_GLOBAL_RATIO; qreal ratioLimit = Torrent::USE_GLOBAL_RATIO;
int seedingTimeLimit = TorrentHandle::USE_GLOBAL_SEEDING_TIME; int seedingTimeLimit = Torrent::USE_GLOBAL_SEEDING_TIME;
bool restored = false; // is existing torrent job? bool restored = false; // is existing torrent job?
}; };
@@ -87,15 +87,15 @@ namespace BitTorrent
HandleMetadata HandleMetadata
}; };
class TorrentHandleImpl final : public QObject, public TorrentHandle class TorrentImpl final : public QObject, public Torrent
{ {
Q_DISABLE_COPY(TorrentHandleImpl) Q_DISABLE_COPY(TorrentImpl)
Q_DECLARE_TR_FUNCTIONS(BitTorrent::TorrentHandleImpl) Q_DECLARE_TR_FUNCTIONS(BitTorrent::TorrentImpl)
public: public:
TorrentHandleImpl(Session *session, lt::session *nativeSession TorrentImpl(Session *session, lt::session *nativeSession
, const lt::torrent_handle &nativeHandle, const LoadTorrentParams &params); , const lt::torrent_handle &nativeHandle, const LoadTorrentParams &params);
~TorrentHandleImpl() override; ~TorrentImpl() override;
bool isValid() const; bool isValid() const;

View File

@@ -29,7 +29,7 @@
#include "torrentfilter.h" #include "torrentfilter.h"
#include "bittorrent/infohash.h" #include "bittorrent/infohash.h"
#include "bittorrent/torrenthandle.h" #include "bittorrent/torrent.h"
const QString TorrentFilter::AnyCategory; const QString TorrentFilter::AnyCategory;
const InfoHashSet TorrentFilter::AnyHash {{}}; const InfoHashSet TorrentFilter::AnyHash {{}};
@@ -47,7 +47,7 @@ const TorrentFilter TorrentFilter::StalledUploadingTorrent(TorrentFilter::Stalle
const TorrentFilter TorrentFilter::StalledDownloadingTorrent(TorrentFilter::StalledDownloading); const TorrentFilter TorrentFilter::StalledDownloadingTorrent(TorrentFilter::StalledDownloading);
const TorrentFilter TorrentFilter::ErroredTorrent(TorrentFilter::Errored); const TorrentFilter TorrentFilter::ErroredTorrent(TorrentFilter::Errored);
using BitTorrent::TorrentHandle; using BitTorrent::Torrent;
TorrentFilter::TorrentFilter(const Type type, const InfoHashSet &hashSet, const QString &category, const QString &tag) TorrentFilter::TorrentFilter(const Type type, const InfoHashSet &hashSet, const QString &category, const QString &tag)
: m_type(type) : m_type(type)
@@ -146,14 +146,14 @@ bool TorrentFilter::setTag(const QString &tag)
return false; return false;
} }
bool TorrentFilter::match(const TorrentHandle *const torrent) const bool TorrentFilter::match(const Torrent *const torrent) const
{ {
if (!torrent) return false; if (!torrent) return false;
return (matchState(torrent) && matchHash(torrent) && matchCategory(torrent) && matchTag(torrent)); return (matchState(torrent) && matchHash(torrent) && matchCategory(torrent) && matchTag(torrent));
} }
bool TorrentFilter::matchState(const BitTorrent::TorrentHandle *const torrent) const bool TorrentFilter::matchState(const BitTorrent::Torrent *const torrent) const
{ {
switch (m_type) switch (m_type)
{ {
@@ -187,21 +187,21 @@ bool TorrentFilter::matchState(const BitTorrent::TorrentHandle *const torrent) c
} }
} }
bool TorrentFilter::matchHash(const BitTorrent::TorrentHandle *const torrent) const bool TorrentFilter::matchHash(const BitTorrent::Torrent *const torrent) const
{ {
if (m_hashSet == AnyHash) return true; if (m_hashSet == AnyHash) return true;
return m_hashSet.contains(torrent->hash()); return m_hashSet.contains(torrent->hash());
} }
bool TorrentFilter::matchCategory(const BitTorrent::TorrentHandle *const torrent) const bool TorrentFilter::matchCategory(const BitTorrent::Torrent *const torrent) const
{ {
if (m_category.isNull()) return true; if (m_category.isNull()) return true;
return (torrent->belongsToCategory(m_category)); return (torrent->belongsToCategory(m_category));
} }
bool TorrentFilter::matchTag(const BitTorrent::TorrentHandle *const torrent) const bool TorrentFilter::matchTag(const BitTorrent::Torrent *const torrent) const
{ {
// Empty tag is a special value to indicate we're filtering for untagged torrents. // Empty tag is a special value to indicate we're filtering for untagged torrents.
if (m_tag.isNull()) return true; if (m_tag.isNull()) return true;

View File

@@ -35,7 +35,7 @@
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
using InfoHashSet = QSet<BitTorrent::InfoHash>; using InfoHashSet = QSet<BitTorrent::InfoHash>;
@@ -88,13 +88,13 @@ public:
bool setCategory(const QString &category); bool setCategory(const QString &category);
bool setTag(const QString &tag); bool setTag(const QString &tag);
bool match(const BitTorrent::TorrentHandle *torrent) const; bool match(const BitTorrent::Torrent *torrent) const;
private: private:
bool matchState(const BitTorrent::TorrentHandle *torrent) const; bool matchState(const BitTorrent::Torrent *torrent) const;
bool matchHash(const BitTorrent::TorrentHandle *torrent) const; bool matchHash(const BitTorrent::Torrent *torrent) const;
bool matchCategory(const BitTorrent::TorrentHandle *torrent) const; bool matchCategory(const BitTorrent::Torrent *torrent) const;
bool matchTag(const BitTorrent::TorrentHandle *torrent) const; bool matchTag(const BitTorrent::Torrent *torrent) const;
Type m_type {All}; Type m_type {All};
QString m_category; QString m_category;

View File

@@ -42,7 +42,7 @@
#include "base/bittorrent/infohash.h" #include "base/bittorrent/infohash.h"
#include "base/bittorrent/magneturi.h" #include "base/bittorrent/magneturi.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/exceptions.h" #include "base/exceptions.h"
#include "base/global.h" #include "base/global.h"
#include "base/net/downloadmanager.h" #include "base/net/downloadmanager.h"
@@ -275,7 +275,7 @@ bool AddNewTorrentDialog::loadTorrentImpl()
// Prevent showing the dialog if download is already present // Prevent showing the dialog if download is already present
if (BitTorrent::Session::instance()->isKnownTorrent(infoHash)) if (BitTorrent::Session::instance()->isKnownTorrent(infoHash))
{ {
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(infoHash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(infoHash);
if (torrent) if (torrent)
{ {
if (torrent->isPrivate() || m_torrentInfo.isPrivate()) if (torrent->isPrivate() || m_torrentInfo.isPrivate())
@@ -316,7 +316,7 @@ bool AddNewTorrentDialog::loadMagnet(const BitTorrent::MagnetUri &magnetUri)
// Prevent showing the dialog if download is already present // Prevent showing the dialog if download is already present
if (BitTorrent::Session::instance()->isKnownTorrent(infoHash)) if (BitTorrent::Session::instance()->isKnownTorrent(infoHash))
{ {
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(infoHash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(infoHash);
if (torrent) if (torrent)
{ {
if (torrent->isPrivate()) if (torrent->isPrivate())

View File

@@ -32,7 +32,7 @@
#include <QIcon> #include <QIcon>
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/global.h" #include "base/global.h"
#include "uithememanager.h" #include "uithememanager.h"
@@ -336,7 +336,7 @@ void CategoryFilterModel::categoryRemoved(const QString &categoryName)
} }
} }
void CategoryFilterModel::torrentAdded(BitTorrent::TorrentHandle *const torrent) void CategoryFilterModel::torrentAdded(BitTorrent::Torrent *const torrent)
{ {
CategoryModelItem *item = findItem(torrent->category()); CategoryModelItem *item = findItem(torrent->category());
Q_ASSERT(item); Q_ASSERT(item);
@@ -345,7 +345,7 @@ void CategoryFilterModel::torrentAdded(BitTorrent::TorrentHandle *const torrent)
m_rootItem->childAt(0)->increaseTorrentsCount(); m_rootItem->childAt(0)->increaseTorrentsCount();
} }
void CategoryFilterModel::torrentAboutToBeRemoved(BitTorrent::TorrentHandle *const torrent) void CategoryFilterModel::torrentAboutToBeRemoved(BitTorrent::Torrent *const torrent)
{ {
CategoryModelItem *item = findItem(torrent->category()); CategoryModelItem *item = findItem(torrent->category());
Q_ASSERT(item); Q_ASSERT(item);
@@ -354,7 +354,7 @@ void CategoryFilterModel::torrentAboutToBeRemoved(BitTorrent::TorrentHandle *con
m_rootItem->childAt(0)->decreaseTorrentsCount(); m_rootItem->childAt(0)->decreaseTorrentsCount();
} }
void CategoryFilterModel::torrentCategoryChanged(BitTorrent::TorrentHandle *const torrent, const QString &oldCategory) void CategoryFilterModel::torrentCategoryChanged(BitTorrent::Torrent *const torrent, const QString &oldCategory)
{ {
QModelIndex i; QModelIndex i;
@@ -403,7 +403,7 @@ void CategoryFilterModel::populate()
m_rootItem->addChild(UID_ALL, new CategoryModelItem(nullptr, tr("All"), torrents.count())); m_rootItem->addChild(UID_ALL, new CategoryModelItem(nullptr, tr("All"), torrents.count()));
// Uncategorized torrents // Uncategorized torrents
using Torrent = BitTorrent::TorrentHandle; using Torrent = BitTorrent::Torrent;
m_rootItem->addChild( m_rootItem->addChild(
UID_UNCATEGORIZED UID_UNCATEGORIZED
, new CategoryModelItem( , new CategoryModelItem(
@@ -411,7 +411,7 @@ void CategoryFilterModel::populate()
, std::count_if(torrents.begin(), torrents.end() , std::count_if(torrents.begin(), torrents.end()
, [](Torrent *torrent) { return torrent->category().isEmpty(); }))); , [](Torrent *torrent) { return torrent->category().isEmpty(); })));
using Torrent = BitTorrent::TorrentHandle; using Torrent = BitTorrent::Torrent;
for (auto i = session->categories().cbegin(); i != session->categories().cend(); ++i) for (auto i = session->categories().cbegin(); i != session->categories().cend(); ++i)
{ {
const QString &category = i.key(); const QString &category = i.key();

View File

@@ -36,7 +36,7 @@ class CategoryModelItem;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
class CategoryFilterModel final : public QAbstractItemModel class CategoryFilterModel final : public QAbstractItemModel
@@ -63,9 +63,9 @@ public:
private slots: private slots:
void categoryAdded(const QString &categoryName); void categoryAdded(const QString &categoryName);
void categoryRemoved(const QString &categoryName); void categoryRemoved(const QString &categoryName);
void torrentAdded(BitTorrent::TorrentHandle *const torrent); void torrentAdded(BitTorrent::Torrent *const torrent);
void torrentAboutToBeRemoved(BitTorrent::TorrentHandle *const torrent); void torrentAboutToBeRemoved(BitTorrent::Torrent *const torrent);
void torrentCategoryChanged(BitTorrent::TorrentHandle *const torrent, const QString &oldCategory); void torrentCategoryChanged(BitTorrent::Torrent *const torrent, const QString &oldCategory);
void subcategoriesSupportChanged(); void subcategoriesSupportChanged();
private: private:

View File

@@ -58,7 +58,7 @@
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/sessionstatus.h" #include "base/bittorrent/sessionstatus.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/global.h" #include "base/global.h"
#include "base/logger.h" #include "base/logger.h"
#include "base/net/downloadmanager.h" #include "base/net/downloadmanager.h"
@@ -260,11 +260,11 @@ MainWindow::MainWindow(QWidget *parent)
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackerlessStateChanged, m_transferListFiltersWidget, &TransferListFiltersWidget::changeTrackerless); connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackerlessStateChanged, m_transferListFiltersWidget, &TransferListFiltersWidget::changeTrackerless);
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackerSuccess connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackerSuccess
, m_transferListFiltersWidget, qOverload<const BitTorrent::TorrentHandle *, const QString &>(&TransferListFiltersWidget::trackerSuccess)); , m_transferListFiltersWidget, qOverload<const BitTorrent::Torrent *, const QString &>(&TransferListFiltersWidget::trackerSuccess));
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackerError connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackerError
, m_transferListFiltersWidget, qOverload<const BitTorrent::TorrentHandle *, const QString &>(&TransferListFiltersWidget::trackerError)); , m_transferListFiltersWidget, qOverload<const BitTorrent::Torrent *, const QString &>(&TransferListFiltersWidget::trackerError));
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackerWarning connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackerWarning
, m_transferListFiltersWidget, qOverload<const BitTorrent::TorrentHandle *, const QString &>(&TransferListFiltersWidget::trackerWarning)); , m_transferListFiltersWidget, qOverload<const BitTorrent::Torrent *, const QString &>(&TransferListFiltersWidget::trackerWarning));
#ifdef Q_OS_MACOS #ifdef Q_OS_MACOS
// Increase top spacing to avoid tab overlapping // Increase top spacing to avoid tab overlapping
@@ -858,20 +858,20 @@ void MainWindow::addTorrentFailed(const QString &error) const
} }
// called when a torrent was added // called when a torrent was added
void MainWindow::torrentNew(BitTorrent::TorrentHandle *const torrent) const void MainWindow::torrentNew(BitTorrent::Torrent *const torrent) const
{ {
if (isTorrentAddedNotificationsEnabled()) if (isTorrentAddedNotificationsEnabled())
showNotificationBaloon(tr("Torrent added"), tr("'%1' was added.", "e.g: xxx.avi was added.").arg(torrent->name())); showNotificationBaloon(tr("Torrent added"), tr("'%1' was added.", "e.g: xxx.avi was added.").arg(torrent->name()));
} }
// called when a torrent has finished // called when a torrent has finished
void MainWindow::finishedTorrent(BitTorrent::TorrentHandle *const torrent) const void MainWindow::finishedTorrent(BitTorrent::Torrent *const torrent) const
{ {
showNotificationBaloon(tr("Download completion"), tr("'%1' has finished downloading.", "e.g: xxx.avi has finished downloading.").arg(torrent->name())); showNotificationBaloon(tr("Download completion"), tr("'%1' has finished downloading.", "e.g: xxx.avi has finished downloading.").arg(torrent->name()));
} }
// Notification when disk is full // Notification when disk is full
void MainWindow::fullDiskError(BitTorrent::TorrentHandle *const torrent, const QString &msg) const void MainWindow::fullDiskError(BitTorrent::Torrent *const torrent, const QString &msg) const
{ {
showNotificationBaloon(tr("I/O Error", "i.e: Input/Output Error") showNotificationBaloon(tr("I/O Error", "i.e: Input/Output Error")
, tr("An I/O error occurred for torrent '%1'.\n Reason: %2" , tr("An I/O error occurred for torrent '%1'.\n Reason: %2"
@@ -961,7 +961,7 @@ void MainWindow::displayExecutionLogTab()
// End of keyboard shortcuts slots // End of keyboard shortcuts slots
void MainWindow::askRecursiveTorrentDownloadConfirmation(BitTorrent::TorrentHandle *const torrent) void MainWindow::askRecursiveTorrentDownloadConfirmation(BitTorrent::Torrent *const torrent)
{ {
Preferences *const pref = Preferences::instance(); Preferences *const pref = Preferences::instance();
if (pref->recursiveDownloadDisabled()) return; if (pref->recursiveDownloadDisabled()) return;
@@ -1639,7 +1639,7 @@ void MainWindow::reloadSessionStats()
} }
} }
void MainWindow::reloadTorrentStats(const QVector<BitTorrent::TorrentHandle *> &torrents) void MainWindow::reloadTorrentStats(const QVector<BitTorrent::Torrent *> &torrents)
{ {
if (currentTabWidget() == m_transferListWidget) if (currentTabWidget() == m_transferListWidget)
{ {

View File

@@ -58,7 +58,7 @@ class TransferListWidget;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
namespace Net namespace Net
@@ -110,7 +110,7 @@ private slots:
void balloonClicked(); void balloonClicked();
void writeSettings(); void writeSettings();
void readSettings(); void readSettings();
void fullDiskError(BitTorrent::TorrentHandle *const torrent, const QString &msg) const; void fullDiskError(BitTorrent::Torrent *const torrent, const QString &msg) const;
void handleDownloadFromUrlFailure(const QString &, const QString &) const; void handleDownloadFromUrlFailure(const QString &, const QString &) const;
void tabChanged(int newTab); void tabChanged(int newTab);
bool defineUILockPassword(); bool defineUILockPassword();
@@ -127,12 +127,12 @@ private slots:
void displayExecutionLogTab(); void displayExecutionLogTab();
void focusSearchFilter(); void focusSearchFilter();
void reloadSessionStats(); void reloadSessionStats();
void reloadTorrentStats(const QVector<BitTorrent::TorrentHandle *> &torrents); void reloadTorrentStats(const QVector<BitTorrent::Torrent *> &torrents);
void loadPreferences(bool configureSession = true); void loadPreferences(bool configureSession = true);
void addTorrentFailed(const QString &error) const; void addTorrentFailed(const QString &error) const;
void torrentNew(BitTorrent::TorrentHandle *const torrent) const; void torrentNew(BitTorrent::Torrent *const torrent) const;
void finishedTorrent(BitTorrent::TorrentHandle *const torrent) const; void finishedTorrent(BitTorrent::Torrent *const torrent) const;
void askRecursiveTorrentDownloadConfirmation(BitTorrent::TorrentHandle *const torrent); void askRecursiveTorrentDownloadConfirmation(BitTorrent::Torrent *const torrent);
void optionsSaved(); void optionsSaved();
#if defined(Q_OS_WIN) || defined(Q_OS_MACOS) #if defined(Q_OS_WIN) || defined(Q_OS_MACOS)
void handleUpdateCheckFinished(bool updateAvailable, QString newVersion, bool invokedByUser); void handleUpdateCheckFinished(bool updateAvailable, QString newVersion, bool invokedByUser);

View File

@@ -37,7 +37,7 @@
#include <QTableView> #include <QTableView>
#include "base/bittorrent/common.h" #include "base/bittorrent/common.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/preferences.h" #include "base/preferences.h"
#include "base/utils/fs.h" #include "base/utils/fs.h"
#include "base/utils/misc.h" #include "base/utils/misc.h"
@@ -47,7 +47,7 @@
#define SETTINGS_KEY(name) "PreviewSelectDialog/" name #define SETTINGS_KEY(name) "PreviewSelectDialog/" name
PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, const BitTorrent::TorrentHandle *torrent) PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, const BitTorrent::Torrent *torrent)
: QDialog(parent) : QDialog(parent)
, m_ui(new Ui::PreviewSelectDialog) , m_ui(new Ui::PreviewSelectDialog)
, m_torrent(torrent) , m_torrent(torrent)

View File

@@ -36,7 +36,7 @@ class QStandardItemModel;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
namespace Ui namespace Ui
{ {
@@ -60,7 +60,7 @@ public:
NB_COLUMNS NB_COLUMNS
}; };
PreviewSelectDialog(QWidget *parent, const BitTorrent::TorrentHandle *torrent); PreviewSelectDialog(QWidget *parent, const BitTorrent::Torrent *torrent);
~PreviewSelectDialog(); ~PreviewSelectDialog();
signals: signals:
@@ -78,7 +78,7 @@ private:
Ui::PreviewSelectDialog *m_ui; Ui::PreviewSelectDialog *m_ui;
QStandardItemModel *m_previewListModel; QStandardItemModel *m_previewListModel;
PreviewListDelegate *m_listDelegate; PreviewListDelegate *m_listDelegate;
const BitTorrent::TorrentHandle *m_torrent; const BitTorrent::Torrent *m_torrent;
bool m_headerStateInitialized = false; bool m_headerStateInitialized = false;
// Settings // Settings

View File

@@ -47,7 +47,7 @@
#include "base/bittorrent/peeraddress.h" #include "base/bittorrent/peeraddress.h"
#include "base/bittorrent/peerinfo.h" #include "base/bittorrent/peerinfo.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/global.h" #include "base/global.h"
#include "base/logger.h" #include "base/logger.h"
#include "base/net/geoipmanager.h" #include "base/net/geoipmanager.h"
@@ -260,7 +260,7 @@ void PeerListWidget::updatePeerCountryResolutionState()
void PeerListWidget::showPeerListMenu(const QPoint &) void PeerListWidget::showPeerListMenu(const QPoint &)
{ {
BitTorrent::TorrentHandle *const torrent = m_properties->getCurrentTorrent(); BitTorrent::Torrent *const torrent = m_properties->getCurrentTorrent();
if (!torrent) return; if (!torrent) return;
QMenu *menu = new QMenu(this); QMenu *menu = new QMenu(this);
@@ -370,7 +370,7 @@ void PeerListWidget::saveSettings() const
Preferences::instance()->setPeerListState(header()->saveState()); Preferences::instance()->setPeerListState(header()->saveState());
} }
void PeerListWidget::loadPeers(const BitTorrent::TorrentHandle *torrent) void PeerListWidget::loadPeers(const BitTorrent::Torrent *torrent)
{ {
if (!torrent) return; if (!torrent) return;
@@ -406,7 +406,7 @@ void PeerListWidget::loadPeers(const BitTorrent::TorrentHandle *torrent)
} }
} }
void PeerListWidget::updatePeer(const BitTorrent::TorrentHandle *torrent, const BitTorrent::PeerInfo &peer, bool &isNewPeer) void PeerListWidget::updatePeer(const BitTorrent::Torrent *torrent, const BitTorrent::PeerInfo &peer, bool &isNewPeer)
{ {
const PeerEndpoint peerEndpoint {peer.address(), peer.connectionType()}; const PeerEndpoint peerEndpoint {peer.address(), peer.connectionType()};
const QString peerIp = peerEndpoint.address.ip.toString(); const QString peerIp = peerEndpoint.address.ip.toString();

View File

@@ -43,7 +43,7 @@ struct PeerEndpoint;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
class PeerInfo; class PeerInfo;
} }
@@ -80,7 +80,7 @@ public:
explicit PeerListWidget(PropertiesWidget *parent); explicit PeerListWidget(PropertiesWidget *parent);
~PeerListWidget() override; ~PeerListWidget() override;
void loadPeers(const BitTorrent::TorrentHandle *torrent); void loadPeers(const BitTorrent::Torrent *torrent);
void updatePeerHostNameResolutionState(); void updatePeerHostNameResolutionState();
void updatePeerCountryResolutionState(); void updatePeerCountryResolutionState();
void clear(); void clear();
@@ -96,7 +96,7 @@ private slots:
void handleResolved(const QHostAddress &ip, const QString &hostname) const; void handleResolved(const QHostAddress &ip, const QString &hostname) const;
private: private:
void updatePeer(const BitTorrent::TorrentHandle *torrent, const BitTorrent::PeerInfo &peer, bool &isNewPeer); void updatePeer(const BitTorrent::Torrent *torrent, const BitTorrent::PeerInfo &peer, bool &isNewPeer);
void wheelEvent(QWheelEvent *event) override; void wheelEvent(QWheelEvent *event) override;

View File

@@ -38,7 +38,7 @@
#include <QToolTip> #include <QToolTip>
#include "base/indexrange.h" #include "base/indexrange.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/bittorrent/torrentinfo.h" #include "base/bittorrent/torrentinfo.h"
#include "base/utils/misc.h" #include "base/utils/misc.h"
@@ -119,7 +119,7 @@ PiecesBar::PiecesBar(QWidget *parent)
setMouseTracking(true); setMouseTracking(true);
} }
void PiecesBar::setTorrent(const BitTorrent::TorrentHandle *torrent) void PiecesBar::setTorrent(const BitTorrent::Torrent *torrent)
{ {
m_torrent = torrent; m_torrent = torrent;
if (!m_torrent) if (!m_torrent)

View File

@@ -37,7 +37,7 @@ class QHelpEvent;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
class PiecesBar : public QWidget class PiecesBar : public QWidget
@@ -49,7 +49,7 @@ class PiecesBar : public QWidget
public: public:
explicit PiecesBar(QWidget *parent = nullptr); explicit PiecesBar(QWidget *parent = nullptr);
void setTorrent(const BitTorrent::TorrentHandle *torrent); void setTorrent(const BitTorrent::Torrent *torrent);
virtual void clear(); virtual void clear();
@@ -87,7 +87,7 @@ private:
virtual bool updateImage(QImage &image) = 0; virtual bool updateImage(QImage &image) = 0;
void updatePieceColors(); void updatePieceColors();
const BitTorrent::TorrentHandle *m_torrent; const BitTorrent::Torrent *m_torrent;
QImage m_image; QImage m_image;
// buffered 256 levels gradient from bg_color to piece_color // buffered 256 levels gradient from bg_color to piece_color
QVector<QRgb> m_pieceColors; QVector<QRgb> m_pieceColors;

View File

@@ -45,7 +45,7 @@
#include "base/bittorrent/downloadpriority.h" #include "base/bittorrent/downloadpriority.h"
#include "base/bittorrent/infohash.h" #include "base/bittorrent/infohash.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/preferences.h" #include "base/preferences.h"
#include "base/unicodestrings.h" #include "base/unicodestrings.h"
#include "base/utils/fs.h" #include "base/utils/fs.h"
@@ -265,7 +265,7 @@ void PropertiesWidget::clear()
m_propListModel->model()->clear(); m_propListModel->model()->clear();
} }
BitTorrent::TorrentHandle *PropertiesWidget::getCurrentTorrent() const BitTorrent::Torrent *PropertiesWidget::getCurrentTorrent() const
{ {
return m_torrent; return m_torrent;
} }
@@ -285,25 +285,25 @@ QTreeView *PropertiesWidget::getFilesList() const
return m_ui->filesList; return m_ui->filesList;
} }
void PropertiesWidget::updateSavePath(BitTorrent::TorrentHandle *const torrent) void PropertiesWidget::updateSavePath(BitTorrent::Torrent *const torrent)
{ {
if (torrent == m_torrent) if (torrent == m_torrent)
m_ui->labelSavePathVal->setText(Utils::Fs::toNativePath(m_torrent->savePath())); m_ui->labelSavePathVal->setText(Utils::Fs::toNativePath(m_torrent->savePath()));
} }
void PropertiesWidget::loadTrackers(BitTorrent::TorrentHandle *const torrent) void PropertiesWidget::loadTrackers(BitTorrent::Torrent *const torrent)
{ {
if (torrent == m_torrent) if (torrent == m_torrent)
m_trackerList->loadTrackers(); m_trackerList->loadTrackers();
} }
void PropertiesWidget::updateTorrentInfos(BitTorrent::TorrentHandle *const torrent) void PropertiesWidget::updateTorrentInfos(BitTorrent::Torrent *const torrent)
{ {
if (torrent == m_torrent) if (torrent == m_torrent)
loadTorrentInfos(m_torrent); loadTorrentInfos(m_torrent);
} }
void PropertiesWidget::loadTorrentInfos(BitTorrent::TorrentHandle *const torrent) void PropertiesWidget::loadTorrentInfos(BitTorrent::Torrent *const torrent)
{ {
clear(); clear();
m_torrent = torrent; m_torrent = torrent;
@@ -437,7 +437,7 @@ void PropertiesWidget::loadDynamicData()
// Update ratio info // Update ratio info
const qreal ratio = m_torrent->realRatio(); const qreal ratio = m_torrent->realRatio();
m_ui->labelShareRatioVal->setText(ratio > BitTorrent::TorrentHandle::MAX_RATIO ? QString::fromUtf8(C_INFINITY) : Utils::String::fromDouble(ratio, 2)); m_ui->labelShareRatioVal->setText(ratio > BitTorrent::Torrent::MAX_RATIO ? QString::fromUtf8(C_INFINITY) : Utils::String::fromDouble(ratio, 2));
m_ui->labelSeedsVal->setText(tr("%1 (%2 total)", "%1 and %2 are numbers, e.g. 3 (10 total)") m_ui->labelSeedsVal->setText(tr("%1 (%2 total)", "%1 and %2 are numbers, e.g. 3 (10 total)")
.arg(QString::number(m_torrent->seedsCount()) .arg(QString::number(m_torrent->seedsCount())

View File

@@ -45,7 +45,7 @@ class TrackerListWidget;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
namespace Ui namespace Ui
@@ -68,24 +68,24 @@ public:
explicit PropertiesWidget(QWidget *parent); explicit PropertiesWidget(QWidget *parent);
~PropertiesWidget() override; ~PropertiesWidget() override;
BitTorrent::TorrentHandle *getCurrentTorrent() const; BitTorrent::Torrent *getCurrentTorrent() const;
TrackerListWidget *getTrackerList() const; TrackerListWidget *getTrackerList() const;
PeerListWidget *getPeerList() const; PeerListWidget *getPeerList() const;
QTreeView *getFilesList() const; QTreeView *getFilesList() const;
public slots: public slots:
void setVisibility(bool visible); void setVisibility(bool visible);
void loadTorrentInfos(BitTorrent::TorrentHandle *const torrent); void loadTorrentInfos(BitTorrent::Torrent *const torrent);
void loadDynamicData(); void loadDynamicData();
void clear(); void clear();
void readSettings(); void readSettings();
void saveSettings(); void saveSettings();
void reloadPreferences(); void reloadPreferences();
void openItem(const QModelIndex &index) const; void openItem(const QModelIndex &index) const;
void loadTrackers(BitTorrent::TorrentHandle *const torrent); void loadTrackers(BitTorrent::Torrent *const torrent);
protected slots: protected slots:
void updateTorrentInfos(BitTorrent::TorrentHandle *const torrent); void updateTorrentInfos(BitTorrent::Torrent *const torrent);
void loadUrlSeeds(); void loadUrlSeeds();
void askWebSeed(); void askWebSeed();
void deleteSelectedUrlSeeds(); void deleteSelectedUrlSeeds();
@@ -101,7 +101,7 @@ protected slots:
private slots: private slots:
void configure(); void configure();
void filterText(const QString &filter); void filterText(const QString &filter);
void updateSavePath(BitTorrent::TorrentHandle *const torrent); void updateSavePath(BitTorrent::Torrent *const torrent);
private: private:
QPushButton *getButtonFromIndex(int index); QPushButton *getButtonFromIndex(int index);
@@ -110,7 +110,7 @@ private:
QString getFullPath(const QModelIndex &index) const; QString getFullPath(const QModelIndex &index) const;
Ui::PropertiesWidget *m_ui; Ui::PropertiesWidget *m_ui;
BitTorrent::TorrentHandle *m_torrent; BitTorrent::Torrent *m_torrent;
SlideState m_state; SlideState m_state;
TorrentContentFilterModel *m_propListModel; TorrentContentFilterModel *m_propListModel;
PropListDelegate *m_propListDelegate; PropListDelegate *m_propListDelegate;

View File

@@ -41,7 +41,7 @@
#endif #endif
#include "base/bittorrent/downloadpriority.h" #include "base/bittorrent/downloadpriority.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "gui/torrentcontentmodel.h" #include "gui/torrentcontentmodel.h"
#include "propertieswidget.h" #include "propertieswidget.h"
@@ -111,7 +111,7 @@ QWidget *PropListDelegate::createEditor(QWidget *parent, const QStyleOptionViewI
if (m_properties) if (m_properties)
{ {
const BitTorrent::TorrentHandle *torrent = m_properties->getCurrentTorrent(); const BitTorrent::Torrent *torrent = m_properties->getCurrentTorrent();
if (!torrent || !torrent->hasMetadata() || torrent->isSeed()) if (!torrent || !torrent->hasMetadata() || torrent->isSeed())
return nullptr; return nullptr;
} }

View File

@@ -46,7 +46,7 @@
#include "base/bittorrent/peerinfo.h" #include "base/bittorrent/peerinfo.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/bittorrent/trackerentry.h" #include "base/bittorrent/trackerentry.h"
#include "base/global.h" #include "base/global.h"
#include "base/preferences.h" #include "base/preferences.h"
@@ -172,7 +172,7 @@ void TrackerListWidget::setRowColor(const int row, const QColor &color)
void TrackerListWidget::moveSelectionUp() void TrackerListWidget::moveSelectionUp()
{ {
BitTorrent::TorrentHandle *const torrent = m_properties->getCurrentTorrent(); BitTorrent::Torrent *const torrent = m_properties->getCurrentTorrent();
if (!torrent) if (!torrent)
{ {
clear(); clear();
@@ -218,7 +218,7 @@ void TrackerListWidget::moveSelectionUp()
void TrackerListWidget::moveSelectionDown() void TrackerListWidget::moveSelectionDown()
{ {
BitTorrent::TorrentHandle *const torrent = m_properties->getCurrentTorrent(); BitTorrent::Torrent *const torrent = m_properties->getCurrentTorrent();
if (!torrent) if (!torrent)
{ {
clear(); clear();
@@ -281,7 +281,7 @@ void TrackerListWidget::clear()
m_LSDItem->setText(COL_MSG, ""); m_LSDItem->setText(COL_MSG, "");
} }
void TrackerListWidget::loadStickyItems(const BitTorrent::TorrentHandle *torrent) void TrackerListWidget::loadStickyItems(const BitTorrent::Torrent *torrent)
{ {
const QString working {tr("Working")}; const QString working {tr("Working")};
const QString disabled {tr("Disabled")}; const QString disabled {tr("Disabled")};
@@ -361,7 +361,7 @@ void TrackerListWidget::loadStickyItems(const BitTorrent::TorrentHandle *torrent
void TrackerListWidget::loadTrackers() void TrackerListWidget::loadTrackers()
{ {
// Load trackers from torrent handle // Load trackers from torrent handle
const BitTorrent::TorrentHandle *torrent = m_properties->getCurrentTorrent(); const BitTorrent::Torrent *torrent = m_properties->getCurrentTorrent();
if (!torrent) return; if (!torrent) return;
loadStickyItems(torrent); loadStickyItems(torrent);
@@ -438,7 +438,7 @@ void TrackerListWidget::loadTrackers()
// Ask the user for new trackers and add them to the torrent // Ask the user for new trackers and add them to the torrent
void TrackerListWidget::askForTrackers() void TrackerListWidget::askForTrackers()
{ {
BitTorrent::TorrentHandle *const torrent = m_properties->getCurrentTorrent(); BitTorrent::Torrent *const torrent = m_properties->getCurrentTorrent();
if (!torrent) return; if (!torrent) return;
QVector<BitTorrent::TrackerEntry> trackers; QVector<BitTorrent::TrackerEntry> trackers;
@@ -466,7 +466,7 @@ void TrackerListWidget::copyTrackerUrl()
void TrackerListWidget::deleteSelectedTrackers() void TrackerListWidget::deleteSelectedTrackers()
{ {
BitTorrent::TorrentHandle *const torrent = m_properties->getCurrentTorrent(); BitTorrent::Torrent *const torrent = m_properties->getCurrentTorrent();
if (!torrent) if (!torrent)
{ {
clear(); clear();
@@ -504,7 +504,7 @@ void TrackerListWidget::deleteSelectedTrackers()
void TrackerListWidget::editSelectedTracker() void TrackerListWidget::editSelectedTracker()
{ {
BitTorrent::TorrentHandle *const torrent = m_properties->getCurrentTorrent(); BitTorrent::Torrent *const torrent = m_properties->getCurrentTorrent();
if (!torrent) return; if (!torrent) return;
const QVector<QTreeWidgetItem *> selectedTrackerItems = getSelectedTrackerItems(); const QVector<QTreeWidgetItem *> selectedTrackerItems = getSelectedTrackerItems();
@@ -555,7 +555,7 @@ void TrackerListWidget::reannounceSelected()
const QList<QTreeWidgetItem *> selItems = selectedItems(); const QList<QTreeWidgetItem *> selItems = selectedItems();
if (selItems.isEmpty()) return; if (selItems.isEmpty()) return;
BitTorrent::TorrentHandle *const torrent = m_properties->getCurrentTorrent(); BitTorrent::Torrent *const torrent = m_properties->getCurrentTorrent();
if (!torrent) return; if (!torrent) return;
const QVector<BitTorrent::TrackerEntry> trackers = torrent->trackers(); const QVector<BitTorrent::TrackerEntry> trackers = torrent->trackers();
@@ -585,7 +585,7 @@ void TrackerListWidget::reannounceSelected()
void TrackerListWidget::showTrackerListMenu(const QPoint &) void TrackerListWidget::showTrackerListMenu(const QPoint &)
{ {
BitTorrent::TorrentHandle *const torrent = m_properties->getCurrentTorrent(); BitTorrent::Torrent *const torrent = m_properties->getCurrentTorrent();
if (!torrent) return; if (!torrent) return;
QMenu *menu = new QMenu(this); QMenu *menu = new QMenu(this);
@@ -617,7 +617,7 @@ void TrackerListWidget::showTrackerListMenu(const QPoint &)
const QAction *reannounceAllAct = menu->addAction(UIThemeManager::instance()->getIcon("view-refresh"), tr("Force reannounce to all trackers")); const QAction *reannounceAllAct = menu->addAction(UIThemeManager::instance()->getIcon("view-refresh"), tr("Force reannounce to all trackers"));
connect(reannounceAllAct, &QAction::triggered, this, [this]() connect(reannounceAllAct, &QAction::triggered, this, [this]()
{ {
BitTorrent::TorrentHandle *h = m_properties->getCurrentTorrent(); BitTorrent::Torrent *h = m_properties->getCurrentTorrent();
h->forceReannounce(); h->forceReannounce();
h->forceDHTAnnounce(); h->forceDHTAnnounce();
}); });

View File

@@ -35,7 +35,7 @@ class PropertiesWidget;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
class TrackerListWidget : public QTreeWidget class TrackerListWidget : public QTreeWidget
@@ -70,7 +70,7 @@ public slots:
void moveSelectionDown(); void moveSelectionDown();
void clear(); void clear();
void loadStickyItems(const BitTorrent::TorrentHandle *torrent); void loadStickyItems(const BitTorrent::Torrent *torrent);
void loadTrackers(); void loadTrackers();
void askForTrackers(); void askForTrackers();
void copyTrackerUrl(); void copyTrackerUrl();

View File

@@ -32,14 +32,14 @@
#include <QMessageBox> #include <QMessageBox>
#include <QStringList> #include <QStringList>
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/bittorrent/trackerentry.h" #include "base/bittorrent/trackerentry.h"
#include "base/global.h" #include "base/global.h"
#include "base/net/downloadmanager.h" #include "base/net/downloadmanager.h"
#include "gui/uithememanager.h" #include "gui/uithememanager.h"
#include "ui_trackersadditiondialog.h" #include "ui_trackersadditiondialog.h"
TrackersAdditionDialog::TrackersAdditionDialog(QWidget *parent, BitTorrent::TorrentHandle *const torrent) TrackersAdditionDialog::TrackersAdditionDialog(QWidget *parent, BitTorrent::Torrent *const torrent)
: QDialog(parent) : QDialog(parent)
, m_ui(new Ui::TrackersAdditionDialog()) , m_ui(new Ui::TrackersAdditionDialog())
, m_torrent(torrent) , m_torrent(torrent)
@@ -129,7 +129,7 @@ void TrackersAdditionDialog::torrentListDownloadFinished(const Net::DownloadResu
QMessageBox::information(this, tr("No change"), tr("No additional trackers were found."), QMessageBox::Ok); QMessageBox::information(this, tr("No change"), tr("No additional trackers were found."), QMessageBox::Ok);
} }
QStringList TrackersAdditionDialog::askForTrackers(QWidget *parent, BitTorrent::TorrentHandle *const torrent) QStringList TrackersAdditionDialog::askForTrackers(QWidget *parent, BitTorrent::Torrent *const torrent)
{ {
QStringList trackers; QStringList trackers;
TrackersAdditionDialog dlg(parent, torrent); TrackersAdditionDialog dlg(parent, torrent);

View File

@@ -35,7 +35,7 @@ class QString;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
namespace Net namespace Net
@@ -53,11 +53,11 @@ class TrackersAdditionDialog : public QDialog
Q_OBJECT Q_OBJECT
public: public:
TrackersAdditionDialog(QWidget *parent, BitTorrent::TorrentHandle *const torrent); TrackersAdditionDialog(QWidget *parent, BitTorrent::Torrent *const torrent);
~TrackersAdditionDialog(); ~TrackersAdditionDialog();
QStringList newTrackers() const; QStringList newTrackers() const;
static QStringList askForTrackers(QWidget *parent, BitTorrent::TorrentHandle *const torrent); static QStringList askForTrackers(QWidget *parent, BitTorrent::Torrent *const torrent);
public slots: public slots:
void on_uTorrentListButton_clicked(); void on_uTorrentListButton_clicked();
@@ -65,5 +65,5 @@ public slots:
private: private:
Ui::TrackersAdditionDialog *m_ui; Ui::TrackersAdditionDialog *m_ui;
BitTorrent::TorrentHandle *const m_torrent; BitTorrent::Torrent *const m_torrent;
}; };

View File

@@ -33,7 +33,7 @@
#include "base/bittorrent/cachestatus.h" #include "base/bittorrent/cachestatus.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/sessionstatus.h" #include "base/bittorrent/sessionstatus.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/global.h" #include "base/global.h"
#include "base/utils/misc.h" #include "base/utils/misc.h"
#include "base/utils/string.h" #include "base/utils/string.h"

View File

@@ -34,7 +34,7 @@
#include <QVector> #include <QVector>
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/global.h" #include "base/global.h"
#include "uithememanager.h" #include "uithememanager.h"
@@ -203,7 +203,7 @@ void TagFilterModel::tagRemoved(const QString &tag)
endRemoveRows(); endRemoveRows();
} }
void TagFilterModel::torrentTagAdded(BitTorrent::TorrentHandle *const torrent, const QString &tag) void TagFilterModel::torrentTagAdded(BitTorrent::Torrent *const torrent, const QString &tag)
{ {
if (torrent->tags().count() == 1) if (torrent->tags().count() == 1)
untaggedItem()->decreaseTorrentsCount(); untaggedItem()->decreaseTorrentsCount();
@@ -217,7 +217,7 @@ void TagFilterModel::torrentTagAdded(BitTorrent::TorrentHandle *const torrent, c
emit dataChanged(i, i); emit dataChanged(i, i);
} }
void TagFilterModel::torrentTagRemoved(BitTorrent::TorrentHandle *const torrent, const QString &tag) void TagFilterModel::torrentTagRemoved(BitTorrent::Torrent *const torrent, const QString &tag)
{ {
if (torrent->tags().empty()) if (torrent->tags().empty())
untaggedItem()->increaseTorrentsCount(); untaggedItem()->increaseTorrentsCount();
@@ -232,7 +232,7 @@ void TagFilterModel::torrentTagRemoved(BitTorrent::TorrentHandle *const torrent,
emit dataChanged(i, i); emit dataChanged(i, i);
} }
void TagFilterModel::torrentAdded(BitTorrent::TorrentHandle *const torrent) void TagFilterModel::torrentAdded(BitTorrent::Torrent *const torrent)
{ {
allTagsItem()->increaseTorrentsCount(); allTagsItem()->increaseTorrentsCount();
@@ -244,7 +244,7 @@ void TagFilterModel::torrentAdded(BitTorrent::TorrentHandle *const torrent)
item->increaseTorrentsCount(); item->increaseTorrentsCount();
} }
void TagFilterModel::torrentAboutToBeRemoved(BitTorrent::TorrentHandle *const torrent) void TagFilterModel::torrentAboutToBeRemoved(BitTorrent::Torrent *const torrent)
{ {
allTagsItem()->decreaseTorrentsCount(); allTagsItem()->decreaseTorrentsCount();
@@ -266,7 +266,7 @@ QString TagFilterModel::tagDisplayName(const QString &tag)
void TagFilterModel::populate() void TagFilterModel::populate()
{ {
using Torrent = BitTorrent::TorrentHandle; using Torrent = BitTorrent::Torrent;
const auto *session = BitTorrent::Session::instance(); const auto *session = BitTorrent::Session::instance();
const auto torrents = session->torrents(); const auto torrents = session->torrents();

View File

@@ -37,7 +37,7 @@ class TagModelItem;
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
class TagFilterModel final : public QAbstractListModel class TagFilterModel final : public QAbstractListModel
@@ -62,10 +62,10 @@ public:
private slots: private slots:
void tagAdded(const QString &tag); void tagAdded(const QString &tag);
void tagRemoved(const QString &tag); void tagRemoved(const QString &tag);
void torrentTagAdded(BitTorrent::TorrentHandle *const torrent, const QString &tag); void torrentTagAdded(BitTorrent::Torrent *const torrent, const QString &tag);
void torrentTagRemoved(BitTorrent::TorrentHandle *const, const QString &tag); void torrentTagRemoved(BitTorrent::Torrent *const, const QString &tag);
void torrentAdded(BitTorrent::TorrentHandle *const torrent); void torrentAdded(BitTorrent::Torrent *const torrent);
void torrentAboutToBeRemoved(BitTorrent::TorrentHandle *const torrent); void torrentAboutToBeRemoved(BitTorrent::Torrent *const torrent);
private: private:
static QString tagDisplayName(const QString &tag); static QString tagDisplayName(const QString &tag);

View File

@@ -40,7 +40,7 @@
#include "base/bittorrent/abstractfilestorage.h" #include "base/bittorrent/abstractfilestorage.h"
#include "base/bittorrent/common.h" #include "base/bittorrent/common.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/bittorrent/torrentinfo.h" #include "base/bittorrent/torrentinfo.h"
#include "base/exceptions.h" #include "base/exceptions.h"
#include "base/global.h" #include "base/global.h"

View File

@@ -33,7 +33,7 @@
namespace BitTorrent namespace BitTorrent
{ {
class AbstractFileStorage; class AbstractFileStorage;
class TorrentHandle; class Torrent;
class TorrentInfo; class TorrentInfo;
} }

View File

@@ -246,8 +246,8 @@ void TorrentCreatorDialog::handleCreationSuccess(const QString &path, const QStr
params.skipChecking = true; params.skipChecking = true;
if (m_ui->checkIgnoreShareLimits->isChecked()) if (m_ui->checkIgnoreShareLimits->isChecked())
{ {
params.ratioLimit = BitTorrent::TorrentHandle::NO_RATIO_LIMIT; params.ratioLimit = BitTorrent::Torrent::NO_RATIO_LIMIT;
params.seedingTimeLimit = BitTorrent::TorrentHandle::NO_SEEDING_TIME_LIMIT; params.seedingTimeLimit = BitTorrent::Torrent::NO_SEEDING_TIME_LIMIT;
} }
params.useAutoTMM = false; // otherwise if it is on by default, it will overwrite `savePath` to the default save path params.useAutoTMM = false; // otherwise if it is on by default, it will overwrite `savePath` to the default save path

View File

@@ -33,7 +33,7 @@
#include "base/bittorrent/infohash.h" #include "base/bittorrent/infohash.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/global.h" #include "base/global.h"
#include "base/unicodestrings.h" #include "base/unicodestrings.h"
#include "ui_torrentoptionsdialog.h" #include "ui_torrentoptionsdialog.h"
@@ -53,7 +53,7 @@ namespace
} }
} }
TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QVector<BitTorrent::TorrentHandle *> &torrents) TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QVector<BitTorrent::Torrent *> &torrents)
: QDialog {parent} : QDialog {parent}
, m_ui {new Ui::TorrentOptionsDialog} , m_ui {new Ui::TorrentOptionsDialog}
, m_storeDialogSize {SETTINGS_KEY("Size")} , m_storeDialogSize {SETTINGS_KEY("Size")}
@@ -76,7 +76,7 @@ TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QVector<BitTor
const bool isFirstTorrentLSDDisabled = torrents[0]->isLSDDisabled(); const bool isFirstTorrentLSDDisabled = torrents[0]->isLSDDisabled();
m_torrentHashes.reserve(torrents.size()); m_torrentHashes.reserve(torrents.size());
for (const BitTorrent::TorrentHandle *torrent : torrents) for (const BitTorrent::Torrent *torrent : torrents)
{ {
m_torrentHashes << torrent->hash(); m_torrentHashes << torrent->hash();
if (allSameUpLimit) if (allSameUpLimit)
@@ -180,8 +180,8 @@ TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QVector<BitTor
} }
const bool useGlobalValue = allSameRatio && allSameSeedingTime const bool useGlobalValue = allSameRatio && allSameSeedingTime
&& (firstTorrentRatio == BitTorrent::TorrentHandle::USE_GLOBAL_RATIO) && (firstTorrentRatio == BitTorrent::Torrent::USE_GLOBAL_RATIO)
&& (firstTorrentSeedingTime == BitTorrent::TorrentHandle::USE_GLOBAL_SEEDING_TIME); && (firstTorrentSeedingTime == BitTorrent::Torrent::USE_GLOBAL_SEEDING_TIME);
if (!allSameRatio || !allSameSeedingTime) if (!allSameRatio || !allSameSeedingTime)
{ {
@@ -193,8 +193,8 @@ TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QVector<BitTor
{ {
m_ui->radioUseGlobalShareLimits->setChecked(true); m_ui->radioUseGlobalShareLimits->setChecked(true);
} }
else if ((firstTorrentRatio == BitTorrent::TorrentHandle::NO_RATIO_LIMIT) else if ((firstTorrentRatio == BitTorrent::Torrent::NO_RATIO_LIMIT)
&& (firstTorrentSeedingTime == BitTorrent::TorrentHandle::NO_SEEDING_TIME_LIMIT)) && (firstTorrentSeedingTime == BitTorrent::Torrent::NO_SEEDING_TIME_LIMIT))
{ {
m_ui->radioNoLimit->setChecked(true); m_ui->radioNoLimit->setChecked(true);
} }
@@ -288,7 +288,7 @@ void TorrentOptionsDialog::accept()
const auto *session = BitTorrent::Session::instance(); const auto *session = BitTorrent::Session::instance();
for (const BitTorrent::InfoHash &hash : asConst(m_torrentHashes)) for (const BitTorrent::InfoHash &hash : asConst(m_torrentHashes))
{ {
BitTorrent::TorrentHandle *torrent = session->findTorrent(hash); BitTorrent::Torrent *torrent = session->findTorrent(hash);
if (!torrent) continue; if (!torrent) continue;
if (m_initialValues.upSpeedLimit != m_ui->spinUploadLimit->value()) if (m_initialValues.upSpeedLimit != m_ui->spinUploadLimit->value())
@@ -324,10 +324,10 @@ qreal TorrentOptionsDialog::getRatio() const
return MIXED_SHARE_LIMITS; return MIXED_SHARE_LIMITS;
if (m_ui->radioUseGlobalShareLimits->isChecked()) if (m_ui->radioUseGlobalShareLimits->isChecked())
return BitTorrent::TorrentHandle::USE_GLOBAL_RATIO; return BitTorrent::Torrent::USE_GLOBAL_RATIO;
if (m_ui->radioNoLimit->isChecked() || !m_ui->checkMaxRatio->isChecked()) if (m_ui->radioNoLimit->isChecked() || !m_ui->checkMaxRatio->isChecked())
return BitTorrent::TorrentHandle::NO_RATIO_LIMIT; return BitTorrent::Torrent::NO_RATIO_LIMIT;
return m_ui->spinRatioLimit->value(); return m_ui->spinRatioLimit->value();
} }
@@ -338,10 +338,10 @@ int TorrentOptionsDialog::getSeedingTime() const
return MIXED_SHARE_LIMITS; return MIXED_SHARE_LIMITS;
if (m_ui->radioUseGlobalShareLimits->isChecked()) if (m_ui->radioUseGlobalShareLimits->isChecked())
return BitTorrent::TorrentHandle::USE_GLOBAL_SEEDING_TIME; return BitTorrent::Torrent::USE_GLOBAL_SEEDING_TIME;
if (m_ui->radioNoLimit->isChecked() || !m_ui->checkMaxTime->isChecked()) if (m_ui->radioNoLimit->isChecked() || !m_ui->checkMaxTime->isChecked())
return BitTorrent::TorrentHandle::NO_SEEDING_TIME_LIMIT; return BitTorrent::Torrent::NO_SEEDING_TIME_LIMIT;
return m_ui->spinTimeLimit->value(); return m_ui->spinTimeLimit->value();
} }

View File

@@ -35,7 +35,7 @@
namespace BitTorrent namespace BitTorrent
{ {
class InfoHash; class InfoHash;
class TorrentHandle; class Torrent;
} }
namespace Ui namespace Ui
@@ -49,7 +49,7 @@ class TorrentOptionsDialog final : public QDialog
Q_DISABLE_COPY(TorrentOptionsDialog) Q_DISABLE_COPY(TorrentOptionsDialog)
public: public:
explicit TorrentOptionsDialog(QWidget *parent, const QVector<BitTorrent::TorrentHandle *> &torrents); explicit TorrentOptionsDialog(QWidget *parent, const QVector<BitTorrent::Torrent *> &torrents);
~TorrentOptionsDialog() override; ~TorrentOptionsDialog() override;
public slots: public slots:

View File

@@ -40,7 +40,7 @@
#include "base/bittorrent/infohash.h" #include "base/bittorrent/infohash.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/bittorrent/trackerentry.h" #include "base/bittorrent/trackerentry.h"
#include "base/global.h" #include "base/global.h"
#include "base/logger.h" #include "base/logger.h"
@@ -240,8 +240,8 @@ void StatusFilterWidget::updateTorrentNumbers()
int nbStalledDownloading = 0; int nbStalledDownloading = 0;
int nbErrored = 0; int nbErrored = 0;
const QVector<BitTorrent::TorrentHandle *> torrents = BitTorrent::Session::instance()->torrents(); const QVector<BitTorrent::Torrent *> torrents = BitTorrent::Session::instance()->torrents();
for (const BitTorrent::TorrentHandle *torrent : torrents) for (const BitTorrent::Torrent *torrent : torrents)
{ {
if (torrent->isDownloading()) if (torrent->isDownloading())
++nbDownloading; ++nbDownloading;
@@ -288,9 +288,9 @@ void StatusFilterWidget::applyFilter(int row)
transferList->applyStatusFilter(row); transferList->applyStatusFilter(row);
} }
void StatusFilterWidget::handleNewTorrent(BitTorrent::TorrentHandle *const) {} void StatusFilterWidget::handleNewTorrent(BitTorrent::Torrent *const) {}
void StatusFilterWidget::torrentAboutToBeDeleted(BitTorrent::TorrentHandle *const) {} void StatusFilterWidget::torrentAboutToBeDeleted(BitTorrent::Torrent *const) {}
TrackerFiltersList::TrackerFiltersList(QWidget *parent, TransferListWidget *transferList, const bool downloadFavicon) TrackerFiltersList::TrackerFiltersList(QWidget *parent, TransferListWidget *transferList, const bool downloadFavicon)
: BaseFilterWidget(parent, transferList) : BaseFilterWidget(parent, transferList)
@@ -577,7 +577,7 @@ void TrackerFiltersList::applyFilter(const int row)
transferList->applyTrackerFilter(getInfoHashes(row)); transferList->applyTrackerFilter(getInfoHashes(row));
} }
void TrackerFiltersList::handleNewTorrent(BitTorrent::TorrentHandle *const torrent) void TrackerFiltersList::handleNewTorrent(BitTorrent::Torrent *const torrent)
{ {
const BitTorrent::InfoHash hash {torrent->hash()}; const BitTorrent::InfoHash hash {torrent->hash()};
const QVector<BitTorrent::TrackerEntry> trackers {torrent->trackers()}; const QVector<BitTorrent::TrackerEntry> trackers {torrent->trackers()};
@@ -591,7 +591,7 @@ void TrackerFiltersList::handleNewTorrent(BitTorrent::TorrentHandle *const torre
item(ALL_ROW)->setText(tr("All (%1)", "this is for the tracker filter").arg(++m_totalTorrents)); item(ALL_ROW)->setText(tr("All (%1)", "this is for the tracker filter").arg(++m_totalTorrents));
} }
void TrackerFiltersList::torrentAboutToBeDeleted(BitTorrent::TorrentHandle *const torrent) void TrackerFiltersList::torrentAboutToBeDeleted(BitTorrent::Torrent *const torrent)
{ {
const BitTorrent::InfoHash hash {torrent->hash()}; const BitTorrent::InfoHash hash {torrent->hash()};
const QVector<BitTorrent::TrackerEntry> trackers {torrent->trackers()}; const QVector<BitTorrent::TrackerEntry> trackers {torrent->trackers()};
@@ -742,34 +742,34 @@ void TransferListFiltersWidget::setDownloadTrackerFavicon(bool value)
m_trackerFilters->setDownloadTrackerFavicon(value); m_trackerFilters->setDownloadTrackerFavicon(value);
} }
void TransferListFiltersWidget::addTrackers(const BitTorrent::TorrentHandle *torrent, const QVector<BitTorrent::TrackerEntry> &trackers) void TransferListFiltersWidget::addTrackers(const BitTorrent::Torrent *torrent, const QVector<BitTorrent::TrackerEntry> &trackers)
{ {
for (const BitTorrent::TrackerEntry &tracker : trackers) for (const BitTorrent::TrackerEntry &tracker : trackers)
m_trackerFilters->addItem(tracker.url(), torrent->hash()); m_trackerFilters->addItem(tracker.url(), torrent->hash());
} }
void TransferListFiltersWidget::removeTrackers(const BitTorrent::TorrentHandle *torrent, const QVector<BitTorrent::TrackerEntry> &trackers) void TransferListFiltersWidget::removeTrackers(const BitTorrent::Torrent *torrent, const QVector<BitTorrent::TrackerEntry> &trackers)
{ {
for (const BitTorrent::TrackerEntry &tracker : trackers) for (const BitTorrent::TrackerEntry &tracker : trackers)
m_trackerFilters->removeItem(tracker.url(), torrent->hash()); m_trackerFilters->removeItem(tracker.url(), torrent->hash());
} }
void TransferListFiltersWidget::changeTrackerless(const BitTorrent::TorrentHandle *torrent, const bool trackerless) void TransferListFiltersWidget::changeTrackerless(const BitTorrent::Torrent *torrent, const bool trackerless)
{ {
m_trackerFilters->changeTrackerless(trackerless, torrent->hash()); m_trackerFilters->changeTrackerless(trackerless, torrent->hash());
} }
void TransferListFiltersWidget::trackerSuccess(const BitTorrent::TorrentHandle *torrent, const QString &tracker) void TransferListFiltersWidget::trackerSuccess(const BitTorrent::Torrent *torrent, const QString &tracker)
{ {
emit trackerSuccess(torrent->hash(), tracker); emit trackerSuccess(torrent->hash(), tracker);
} }
void TransferListFiltersWidget::trackerWarning(const BitTorrent::TorrentHandle *torrent, const QString &tracker) void TransferListFiltersWidget::trackerWarning(const BitTorrent::Torrent *torrent, const QString &tracker)
{ {
emit trackerWarning(torrent->hash(), tracker); emit trackerWarning(torrent->hash(), tracker);
} }
void TransferListFiltersWidget::trackerError(const BitTorrent::TorrentHandle *torrent, const QString &tracker) void TransferListFiltersWidget::trackerError(const BitTorrent::Torrent *torrent, const QString &tracker)
{ {
emit trackerError(torrent->hash(), tracker); emit trackerError(torrent->hash(), tracker);
} }

View File

@@ -40,7 +40,7 @@ class TransferListWidget;
namespace BitTorrent namespace BitTorrent
{ {
class InfoHash; class InfoHash;
class TorrentHandle; class Torrent;
class TrackerEntry; class TrackerEntry;
} }
@@ -69,8 +69,8 @@ protected:
private slots: private slots:
virtual void showMenu(const QPoint &) = 0; virtual void showMenu(const QPoint &) = 0;
virtual void applyFilter(int row) = 0; virtual void applyFilter(int row) = 0;
virtual void handleNewTorrent(BitTorrent::TorrentHandle *const) = 0; virtual void handleNewTorrent(BitTorrent::Torrent *const) = 0;
virtual void torrentAboutToBeDeleted(BitTorrent::TorrentHandle *const) = 0; virtual void torrentAboutToBeDeleted(BitTorrent::Torrent *const) = 0;
}; };
class StatusFilterWidget final : public BaseFilterWidget class StatusFilterWidget final : public BaseFilterWidget
@@ -90,8 +90,8 @@ private:
// No need to redeclare them here as slots. // No need to redeclare them here as slots.
void showMenu(const QPoint &) override; void showMenu(const QPoint &) override;
void applyFilter(int row) override; void applyFilter(int row) override;
void handleNewTorrent(BitTorrent::TorrentHandle *const) override; void handleNewTorrent(BitTorrent::Torrent *const) override;
void torrentAboutToBeDeleted(BitTorrent::TorrentHandle *const) override; void torrentAboutToBeDeleted(BitTorrent::Torrent *const) override;
}; };
class TrackerFiltersList final : public BaseFilterWidget class TrackerFiltersList final : public BaseFilterWidget
@@ -122,8 +122,8 @@ private:
// No need to redeclare them here as slots. // No need to redeclare them here as slots.
void showMenu(const QPoint &) override; void showMenu(const QPoint &) override;
void applyFilter(int row) override; void applyFilter(int row) override;
void handleNewTorrent(BitTorrent::TorrentHandle *const torrent) override; void handleNewTorrent(BitTorrent::Torrent *const torrent) override;
void torrentAboutToBeDeleted(BitTorrent::TorrentHandle *const torrent) override; void torrentAboutToBeDeleted(BitTorrent::Torrent *const torrent) override;
QString trackerFromRow(int row) const; QString trackerFromRow(int row) const;
int rowFromTracker(const QString &tracker) const; int rowFromTracker(const QString &tracker) const;
QSet<BitTorrent::InfoHash> getInfoHashes(int row) const; QSet<BitTorrent::InfoHash> getInfoHashes(int row) const;
@@ -150,12 +150,12 @@ public:
void setDownloadTrackerFavicon(bool value); void setDownloadTrackerFavicon(bool value);
public slots: public slots:
void addTrackers(const BitTorrent::TorrentHandle *torrent, const QVector<BitTorrent::TrackerEntry> &trackers); void addTrackers(const BitTorrent::Torrent *torrent, const QVector<BitTorrent::TrackerEntry> &trackers);
void removeTrackers(const BitTorrent::TorrentHandle *torrent, const QVector<BitTorrent::TrackerEntry> &trackers); void removeTrackers(const BitTorrent::Torrent *torrent, const QVector<BitTorrent::TrackerEntry> &trackers);
void changeTrackerless(const BitTorrent::TorrentHandle *torrent, bool trackerless); void changeTrackerless(const BitTorrent::Torrent *torrent, bool trackerless);
void trackerSuccess(const BitTorrent::TorrentHandle *torrent, const QString &tracker); void trackerSuccess(const BitTorrent::Torrent *torrent, const QString &tracker);
void trackerWarning(const BitTorrent::TorrentHandle *torrent, const QString &tracker); void trackerWarning(const BitTorrent::Torrent *torrent, const QString &tracker);
void trackerError(const BitTorrent::TorrentHandle *torrent, const QString &tracker); void trackerError(const BitTorrent::Torrent *torrent, const QString &tracker);
signals: signals:
void trackerSuccess(const BitTorrent::InfoHash &hash, const QString &tracker); void trackerSuccess(const BitTorrent::InfoHash &hash, const QString &tracker);

View File

@@ -36,7 +36,7 @@
#include <QPalette> #include <QPalette>
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/global.h" #include "base/global.h"
#include "base/preferences.h" #include "base/preferences.h"
#include "base/unicodestrings.h" #include "base/unicodestrings.h"
@@ -133,7 +133,7 @@ TransferListModel::TransferListModel(QObject *parent)
// Load the torrents // Load the torrents
using namespace BitTorrent; using namespace BitTorrent;
for (TorrentHandle *const torrent : asConst(Session::instance()->torrents())) for (Torrent *const torrent : asConst(Session::instance()->torrents()))
addTorrent(torrent); addTorrent(torrent);
// Listen for torrent changes // Listen for torrent changes
@@ -234,7 +234,7 @@ QVariant TransferListModel::headerData(int section, Qt::Orientation orientation,
return {}; return {};
} }
QString TransferListModel::displayValue(const BitTorrent::TorrentHandle *torrent, const int column) const QString TransferListModel::displayValue(const BitTorrent::Torrent *torrent, const int column) const
{ {
bool hideValues = false; bool hideValues = false;
if (m_hideZeroValuesMode == HideZeroValuesMode::Always) if (m_hideZeroValuesMode == HideZeroValuesMode::Always)
@@ -276,7 +276,7 @@ QString TransferListModel::displayValue(const BitTorrent::TorrentHandle *torrent
if (hideValues && (value <= 0)) if (hideValues && (value <= 0))
return {}; return {};
return ((static_cast<int>(value) == -1) || (value > BitTorrent::TorrentHandle::MAX_RATIO)) return ((static_cast<int>(value) == -1) || (value > BitTorrent::Torrent::MAX_RATIO))
? QString::fromUtf8(C_INFINITY) : Utils::String::fromDouble(value, 2); ? QString::fromUtf8(C_INFINITY) : Utils::String::fromDouble(value, 2);
}; };
@@ -399,7 +399,7 @@ QString TransferListModel::displayValue(const BitTorrent::TorrentHandle *torrent
return {}; return {};
} }
QVariant TransferListModel::internalValue(const BitTorrent::TorrentHandle *torrent, const int column, const bool alt) const QVariant TransferListModel::internalValue(const BitTorrent::Torrent *torrent, const int column, const bool alt) const
{ {
switch (column) switch (column)
{ {
@@ -474,7 +474,7 @@ QVariant TransferListModel::data(const QModelIndex &index, const int role) const
{ {
if (!index.isValid()) return {}; if (!index.isValid()) return {};
const BitTorrent::TorrentHandle *torrent = m_torrentList.value(index.row()); const BitTorrent::Torrent *torrent = m_torrentList.value(index.row());
if (!torrent) return {}; if (!torrent) return {};
switch (role) switch (role)
@@ -537,7 +537,7 @@ bool TransferListModel::setData(const QModelIndex &index, const QVariant &value,
{ {
if (!index.isValid() || (role != Qt::DisplayRole)) return false; if (!index.isValid() || (role != Qt::DisplayRole)) return false;
BitTorrent::TorrentHandle *const torrent = m_torrentList.value(index.row()); BitTorrent::Torrent *const torrent = m_torrentList.value(index.row());
if (!torrent) return false; if (!torrent) return false;
// Category and Name columns can be edited // Category and Name columns can be edited
@@ -556,7 +556,7 @@ bool TransferListModel::setData(const QModelIndex &index, const QVariant &value,
return true; return true;
} }
void TransferListModel::addTorrent(BitTorrent::TorrentHandle *const torrent) void TransferListModel::addTorrent(BitTorrent::Torrent *const torrent)
{ {
Q_ASSERT(!m_torrentMap.contains(torrent)); Q_ASSERT(!m_torrentMap.contains(torrent));
@@ -576,14 +576,14 @@ Qt::ItemFlags TransferListModel::flags(const QModelIndex &index) const
return QAbstractListModel::flags(index) | Qt::ItemIsEditable; return QAbstractListModel::flags(index) | Qt::ItemIsEditable;
} }
BitTorrent::TorrentHandle *TransferListModel::torrentHandle(const QModelIndex &index) const BitTorrent::Torrent *TransferListModel::torrentHandle(const QModelIndex &index) const
{ {
if (!index.isValid()) return nullptr; if (!index.isValid()) return nullptr;
return m_torrentList.value(index.row()); return m_torrentList.value(index.row());
} }
void TransferListModel::handleTorrentAboutToBeRemoved(BitTorrent::TorrentHandle *const torrent) void TransferListModel::handleTorrentAboutToBeRemoved(BitTorrent::Torrent *const torrent)
{ {
const int row = m_torrentMap.value(torrent, -1); const int row = m_torrentMap.value(torrent, -1);
Q_ASSERT(row >= 0); Q_ASSERT(row >= 0);
@@ -599,7 +599,7 @@ void TransferListModel::handleTorrentAboutToBeRemoved(BitTorrent::TorrentHandle
endRemoveRows(); endRemoveRows();
} }
void TransferListModel::handleTorrentStatusUpdated(BitTorrent::TorrentHandle *const torrent) void TransferListModel::handleTorrentStatusUpdated(BitTorrent::Torrent *const torrent)
{ {
const int row = m_torrentMap.value(torrent, -1); const int row = m_torrentMap.value(torrent, -1);
Q_ASSERT(row >= 0); Q_ASSERT(row >= 0);
@@ -607,13 +607,13 @@ void TransferListModel::handleTorrentStatusUpdated(BitTorrent::TorrentHandle *co
emit dataChanged(index(row, 0), index(row, columnCount() - 1)); emit dataChanged(index(row, 0), index(row, columnCount() - 1));
} }
void TransferListModel::handleTorrentsUpdated(const QVector<BitTorrent::TorrentHandle *> &torrents) void TransferListModel::handleTorrentsUpdated(const QVector<BitTorrent::Torrent *> &torrents)
{ {
const int columns = (columnCount() - 1); const int columns = (columnCount() - 1);
if (torrents.size() <= (m_torrentList.size() * 0.5)) if (torrents.size() <= (m_torrentList.size() * 0.5))
{ {
for (BitTorrent::TorrentHandle *const torrent : torrents) for (BitTorrent::Torrent *const torrent : torrents)
{ {
const int row = m_torrentMap.value(torrent, -1); const int row = m_torrentMap.value(torrent, -1);
Q_ASSERT(row >= 0); Q_ASSERT(row >= 0);

View File

@@ -34,7 +34,7 @@
#include <QHash> #include <QHash>
#include <QList> #include <QList>
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
namespace BitTorrent namespace BitTorrent
{ {
@@ -99,21 +99,21 @@ public:
QVariant headerData(int section, Qt::Orientation orientation, int role) const override; QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
Qt::ItemFlags flags(const QModelIndex &index) const override; Qt::ItemFlags flags(const QModelIndex &index) const override;
BitTorrent::TorrentHandle *torrentHandle(const QModelIndex &index) const; BitTorrent::Torrent *torrentHandle(const QModelIndex &index) const;
private slots: private slots:
void addTorrent(BitTorrent::TorrentHandle *const torrent); void addTorrent(BitTorrent::Torrent *const torrent);
void handleTorrentAboutToBeRemoved(BitTorrent::TorrentHandle *const torrent); void handleTorrentAboutToBeRemoved(BitTorrent::Torrent *const torrent);
void handleTorrentStatusUpdated(BitTorrent::TorrentHandle *const torrent); void handleTorrentStatusUpdated(BitTorrent::Torrent *const torrent);
void handleTorrentsUpdated(const QVector<BitTorrent::TorrentHandle *> &torrents); void handleTorrentsUpdated(const QVector<BitTorrent::Torrent *> &torrents);
private: private:
void configure(); void configure();
QString displayValue(const BitTorrent::TorrentHandle *torrent, int column) const; QString displayValue(const BitTorrent::Torrent *torrent, int column) const;
QVariant internalValue(const BitTorrent::TorrentHandle *torrent, int column, bool alt = false) const; QVariant internalValue(const BitTorrent::Torrent *torrent, int column, bool alt = false) const;
QList<BitTorrent::TorrentHandle *> m_torrentList; // maps row number to torrent handle QList<BitTorrent::Torrent *> m_torrentList; // maps row number to torrent handle
QHash<BitTorrent::TorrentHandle *, int> m_torrentMap; // maps torrent handle to row number QHash<BitTorrent::Torrent *, int> m_torrentMap; // maps torrent handle to row number
const QHash<BitTorrent::TorrentState, QString> m_statusStrings; const QHash<BitTorrent::TorrentState, QString> m_statusStrings;
// row text colors // row text colors
const QHash<BitTorrent::TorrentState, QColor> m_stateThemeColors; const QHash<BitTorrent::TorrentState, QColor> m_stateThemeColors;

View File

@@ -31,7 +31,7 @@
#include <QDateTime> #include <QDateTime>
#include "base/bittorrent/infohash.h" #include "base/bittorrent/infohash.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/global.h" #include "base/global.h"
#include "base/types.h" #include "base/types.h"
#include "base/utils/string.h" #include "base/utils/string.h"
@@ -292,7 +292,7 @@ bool TransferListSortModel::matchFilter(const int sourceRow, const QModelIndex &
const auto *model = qobject_cast<TransferListModel *>(sourceModel()); const auto *model = qobject_cast<TransferListModel *>(sourceModel());
if (!model) return false; if (!model) return false;
const BitTorrent::TorrentHandle *torrent = model->torrentHandle(model->index(sourceRow, 0, sourceParent)); const BitTorrent::Torrent *torrent = model->torrentHandle(model->index(sourceRow, 0, sourceParent));
if (!torrent) return false; if (!torrent) return false;
return m_filter.match(torrent); return m_filter.match(torrent);

View File

@@ -46,7 +46,7 @@
#include "base/bittorrent/infohash.h" #include "base/bittorrent/infohash.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/bittorrent/trackerentry.h" #include "base/bittorrent/trackerentry.h"
#include "base/global.h" #include "base/global.h"
#include "base/logger.h" #include "base/logger.h"
@@ -77,16 +77,16 @@
namespace namespace
{ {
QVector<BitTorrent::InfoHash> extractHashes(const QVector<BitTorrent::TorrentHandle *> &torrents) QVector<BitTorrent::InfoHash> extractHashes(const QVector<BitTorrent::Torrent *> &torrents)
{ {
QVector<BitTorrent::InfoHash> hashes; QVector<BitTorrent::InfoHash> hashes;
hashes.reserve(torrents.size()); hashes.reserve(torrents.size());
for (const BitTorrent::TorrentHandle *torrent : torrents) for (const BitTorrent::Torrent *torrent : torrents)
hashes << torrent->hash(); hashes << torrent->hash();
return hashes; return hashes;
} }
bool torrentContainsPreviewableFiles(const BitTorrent::TorrentHandle *const torrent) bool torrentContainsPreviewableFiles(const BitTorrent::Torrent *const torrent)
{ {
if (!torrent->hasMetadata()) if (!torrent->hasMetadata())
return false; return false;
@@ -100,7 +100,7 @@ namespace
return false; return false;
} }
void openDestinationFolder(const BitTorrent::TorrentHandle *const torrent) void openDestinationFolder(const BitTorrent::Torrent *const torrent)
{ {
#ifdef Q_OS_MACOS #ifdef Q_OS_MACOS
MacUtils::openFiles({torrent->contentPath(true)}); MacUtils::openFiles({torrent->contentPath(true)});
@@ -112,11 +112,11 @@ namespace
#endif #endif
} }
void removeTorrents(const QVector<BitTorrent::TorrentHandle *> &torrents, const bool isDeleteFileSelected) void removeTorrents(const QVector<BitTorrent::Torrent *> &torrents, const bool isDeleteFileSelected)
{ {
auto *session = BitTorrent::Session::instance(); auto *session = BitTorrent::Session::instance();
const DeleteOption deleteOption = isDeleteFileSelected ? TorrentAndFiles : Torrent; const DeleteOption deleteOption = isDeleteFileSelected ? DeleteTorrentAndFiles : DeleteTorrent;
for (const BitTorrent::TorrentHandle *torrent : torrents) for (const BitTorrent::Torrent *torrent : torrents)
session->deleteTorrent(torrent->hash(), deleteOption); session->deleteTorrent(torrent->hash(), deleteOption);
} }
} }
@@ -271,7 +271,7 @@ void TransferListWidget::torrentDoubleClicked()
if ((selectedIndexes.size() != 1) || !selectedIndexes.first().isValid()) return; if ((selectedIndexes.size() != 1) || !selectedIndexes.first().isValid()) return;
const QModelIndex index = m_listModel->index(mapToSource(selectedIndexes.first()).row()); const QModelIndex index = m_listModel->index(mapToSource(selectedIndexes.first()).row());
BitTorrent::TorrentHandle *const torrent = m_listModel->torrentHandle(index); BitTorrent::Torrent *const torrent = m_listModel->torrentHandle(index);
if (!torrent) return; if (!torrent) return;
int action; int action;
@@ -307,22 +307,22 @@ void TransferListWidget::torrentDoubleClicked()
} }
} }
QVector<BitTorrent::TorrentHandle *> TransferListWidget::getSelectedTorrents() const QVector<BitTorrent::Torrent *> TransferListWidget::getSelectedTorrents() const
{ {
const QModelIndexList selectedRows = selectionModel()->selectedRows(); const QModelIndexList selectedRows = selectionModel()->selectedRows();
QVector<BitTorrent::TorrentHandle *> torrents; QVector<BitTorrent::Torrent *> torrents;
torrents.reserve(selectedRows.size()); torrents.reserve(selectedRows.size());
for (const QModelIndex &index : selectedRows) for (const QModelIndex &index : selectedRows)
torrents << m_listModel->torrentHandle(mapToSource(index)); torrents << m_listModel->torrentHandle(mapToSource(index));
return torrents; return torrents;
} }
QVector<BitTorrent::TorrentHandle *> TransferListWidget::getVisibleTorrents() const QVector<BitTorrent::Torrent *> TransferListWidget::getVisibleTorrents() const
{ {
const int visibleTorrentsCount = m_sortFilterModel->rowCount(); const int visibleTorrentsCount = m_sortFilterModel->rowCount();
QVector<BitTorrent::TorrentHandle *> torrents; QVector<BitTorrent::Torrent *> torrents;
torrents.reserve(visibleTorrentsCount); torrents.reserve(visibleTorrentsCount);
for (int i = 0; i < visibleTorrentsCount; ++i) for (int i = 0; i < visibleTorrentsCount; ++i)
torrents << m_listModel->torrentHandle(mapToSource(m_sortFilterModel->index(i, 0))); torrents << m_listModel->torrentHandle(mapToSource(m_sortFilterModel->index(i, 0)));
@@ -331,7 +331,7 @@ QVector<BitTorrent::TorrentHandle *> TransferListWidget::getVisibleTorrents() co
void TransferListWidget::setSelectedTorrentsLocation() void TransferListWidget::setSelectedTorrentsLocation()
{ {
const QVector<BitTorrent::TorrentHandle *> torrents = getSelectedTorrents(); const QVector<BitTorrent::Torrent *> torrents = getSelectedTorrents();
if (torrents.isEmpty()) return; if (torrents.isEmpty()) return;
const QString oldLocation = torrents[0]->savePath(); const QString oldLocation = torrents[0]->savePath();
@@ -340,49 +340,49 @@ void TransferListWidget::setSelectedTorrentsLocation()
if (newLocation.isEmpty() || !QDir(newLocation).exists()) return; if (newLocation.isEmpty() || !QDir(newLocation).exists()) return;
// Actually move storage // Actually move storage
for (BitTorrent::TorrentHandle *const torrent : torrents) for (BitTorrent::Torrent *const torrent : torrents)
torrent->move(Utils::Fs::expandPathAbs(newLocation)); torrent->move(Utils::Fs::expandPathAbs(newLocation));
} }
void TransferListWidget::pauseAllTorrents() void TransferListWidget::pauseAllTorrents()
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(BitTorrent::Session::instance()->torrents())) for (BitTorrent::Torrent *const torrent : asConst(BitTorrent::Session::instance()->torrents()))
torrent->pause(); torrent->pause();
} }
void TransferListWidget::resumeAllTorrents() void TransferListWidget::resumeAllTorrents()
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(BitTorrent::Session::instance()->torrents())) for (BitTorrent::Torrent *const torrent : asConst(BitTorrent::Session::instance()->torrents()))
torrent->resume(); torrent->resume();
} }
void TransferListWidget::startSelectedTorrents() void TransferListWidget::startSelectedTorrents()
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
torrent->resume(); torrent->resume();
} }
void TransferListWidget::forceStartSelectedTorrents() void TransferListWidget::forceStartSelectedTorrents()
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
torrent->resume(BitTorrent::TorrentOperatingMode::Forced); torrent->resume(BitTorrent::TorrentOperatingMode::Forced);
} }
void TransferListWidget::startVisibleTorrents() void TransferListWidget::startVisibleTorrents()
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(getVisibleTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getVisibleTorrents()))
torrent->resume(); torrent->resume();
} }
void TransferListWidget::pauseSelectedTorrents() void TransferListWidget::pauseSelectedTorrents()
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
torrent->pause(); torrent->pause();
} }
void TransferListWidget::pauseVisibleTorrents() void TransferListWidget::pauseVisibleTorrents()
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(getVisibleTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getVisibleTorrents()))
torrent->pause(); torrent->pause();
} }
@@ -400,7 +400,7 @@ void TransferListWidget::deleteSelectedTorrents(const bool deleteLocalFiles)
{ {
if (m_mainWindow->currentTabWidget() != this) return; if (m_mainWindow->currentTabWidget() != this) return;
const QVector<BitTorrent::TorrentHandle *> torrents = getSelectedTorrents(); const QVector<BitTorrent::Torrent *> torrents = getSelectedTorrents();
if (torrents.empty()) return; if (torrents.empty()) return;
if (Preferences::instance()->confirmTorrentDeletion()) if (Preferences::instance()->confirmTorrentDeletion())
@@ -423,7 +423,7 @@ void TransferListWidget::deleteSelectedTorrents(const bool deleteLocalFiles)
void TransferListWidget::deleteVisibleTorrents() void TransferListWidget::deleteVisibleTorrents()
{ {
const QVector<BitTorrent::TorrentHandle *> torrents = getVisibleTorrents(); const QVector<BitTorrent::Torrent *> torrents = getVisibleTorrents();
if (torrents.empty()) return; if (torrents.empty()) return;
if (Preferences::instance()->confirmTorrentDeletion()) if (Preferences::instance()->confirmTorrentDeletion())
@@ -473,7 +473,7 @@ void TransferListWidget::bottomQueuePosSelectedTorrents()
void TransferListWidget::copySelectedMagnetURIs() const void TransferListWidget::copySelectedMagnetURIs() const
{ {
QStringList magnetUris; QStringList magnetUris;
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
magnetUris << torrent->createMagnetURI(); magnetUris << torrent->createMagnetURI();
qApp->clipboard()->setText(magnetUris.join('\n')); qApp->clipboard()->setText(magnetUris.join('\n'));
@@ -482,7 +482,7 @@ void TransferListWidget::copySelectedMagnetURIs() const
void TransferListWidget::copySelectedNames() const void TransferListWidget::copySelectedNames() const
{ {
QStringList torrentNames; QStringList torrentNames;
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
torrentNames << torrent->name(); torrentNames << torrent->name();
qApp->clipboard()->setText(torrentNames.join('\n')); qApp->clipboard()->setText(torrentNames.join('\n'));
@@ -491,7 +491,7 @@ void TransferListWidget::copySelectedNames() const
void TransferListWidget::copySelectedHashes() const void TransferListWidget::copySelectedHashes() const
{ {
QStringList torrentHashes; QStringList torrentHashes;
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
torrentHashes << torrent->hash(); torrentHashes << torrent->hash();
qApp->clipboard()->setText(torrentHashes.join('\n')); qApp->clipboard()->setText(torrentHashes.join('\n'));
@@ -510,14 +510,14 @@ void TransferListWidget::openSelectedTorrentsFolder() const
#ifdef Q_OS_MACOS #ifdef Q_OS_MACOS
// On macOS you expect both the files and folders to be opened in their parent // On macOS you expect both the files and folders to be opened in their parent
// folders prehilighted for opening, so we use a custom method. // folders prehilighted for opening, so we use a custom method.
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
{ {
QString path = torrent->contentPath(true); QString path = torrent->contentPath(true);
pathsList.insert(path); pathsList.insert(path);
} }
MacUtils::openFiles(pathsList); MacUtils::openFiles(pathsList);
#else #else
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
{ {
QString path = torrent->contentPath(true); QString path = torrent->contentPath(true);
if (!pathsList.contains(path)) if (!pathsList.contains(path))
@@ -534,7 +534,7 @@ void TransferListWidget::openSelectedTorrentsFolder() const
void TransferListWidget::previewSelectedTorrents() void TransferListWidget::previewSelectedTorrents()
{ {
for (const BitTorrent::TorrentHandle *torrent : asConst(getSelectedTorrents())) for (const BitTorrent::Torrent *torrent : asConst(getSelectedTorrents()))
{ {
if (torrentContainsPreviewableFiles(torrent)) if (torrentContainsPreviewableFiles(torrent))
{ {
@@ -553,7 +553,7 @@ void TransferListWidget::previewSelectedTorrents()
void TransferListWidget::setTorrentOptions() void TransferListWidget::setTorrentOptions()
{ {
const QVector<BitTorrent::TorrentHandle *> selectedTorrents = getSelectedTorrents(); const QVector<BitTorrent::Torrent *> selectedTorrents = getSelectedTorrents();
if (selectedTorrents.empty()) return; if (selectedTorrents.empty()) return;
auto dialog = new TorrentOptionsDialog {this, selectedTorrents}; auto dialog = new TorrentOptionsDialog {this, selectedTorrents};
@@ -569,13 +569,13 @@ void TransferListWidget::recheckSelectedTorrents()
if (ret != QMessageBox::Yes) return; if (ret != QMessageBox::Yes) return;
} }
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
torrent->forceRecheck(); torrent->forceRecheck();
} }
void TransferListWidget::reannounceSelectedTorrents() void TransferListWidget::reannounceSelectedTorrents()
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
torrent->forceReannounce(); torrent->forceReannounce();
} }
@@ -627,7 +627,7 @@ void TransferListWidget::displayDLHoSMenu(const QPoint&)
void TransferListWidget::setSelectedTorrentsSuperSeeding(const bool enabled) const void TransferListWidget::setSelectedTorrentsSuperSeeding(const bool enabled) const
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
{ {
if (torrent->hasMetadata()) if (torrent->hasMetadata())
torrent->setSuperSeeding(enabled); torrent->setSuperSeeding(enabled);
@@ -636,19 +636,19 @@ void TransferListWidget::setSelectedTorrentsSuperSeeding(const bool enabled) con
void TransferListWidget::setSelectedTorrentsSequentialDownload(const bool enabled) const void TransferListWidget::setSelectedTorrentsSequentialDownload(const bool enabled) const
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
torrent->setSequentialDownload(enabled); torrent->setSequentialDownload(enabled);
} }
void TransferListWidget::setSelectedFirstLastPiecePrio(const bool enabled) const void TransferListWidget::setSelectedFirstLastPiecePrio(const bool enabled) const
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
torrent->setFirstLastPiecePriority(enabled); torrent->setFirstLastPiecePriority(enabled);
} }
void TransferListWidget::setSelectedAutoTMMEnabled(const bool enabled) const void TransferListWidget::setSelectedAutoTMMEnabled(const bool enabled) const
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
torrent->setAutoTMMEnabled(enabled); torrent->setAutoTMMEnabled(enabled);
} }
@@ -668,14 +668,14 @@ void TransferListWidget::askAddTagsForSelection()
void TransferListWidget::editTorrentTrackers() void TransferListWidget::editTorrentTrackers()
{ {
const QVector<BitTorrent::TorrentHandle *> torrents = getSelectedTorrents(); const QVector<BitTorrent::Torrent *> torrents = getSelectedTorrents();
QVector<BitTorrent::TrackerEntry> commonTrackers; QVector<BitTorrent::TrackerEntry> commonTrackers;
if (!torrents.empty()) if (!torrents.empty())
{ {
commonTrackers = torrents[0]->trackers(); commonTrackers = torrents[0]->trackers();
for (const BitTorrent::TorrentHandle *torrent : torrents) for (const BitTorrent::Torrent *torrent : torrents)
{ {
QSet<BitTorrent::TrackerEntry> trackerSet; QSet<BitTorrent::TrackerEntry> trackerSet;
@@ -694,7 +694,7 @@ void TransferListWidget::editTorrentTrackers()
connect(trackerDialog, &QDialog::accepted, this, [torrents, trackerDialog]() connect(trackerDialog, &QDialog::accepted, this, [torrents, trackerDialog]()
{ {
for (BitTorrent::TorrentHandle *torrent : torrents) for (BitTorrent::Torrent *torrent : torrents)
torrent->replaceTrackers(trackerDialog->trackers()); torrent->replaceTrackers(trackerDialog->trackers());
}); });
@@ -737,11 +737,11 @@ QStringList TransferListWidget::askTagsForSelection(const QString &dialogTitle)
return tags; return tags;
} }
void TransferListWidget::applyToSelectedTorrents(const std::function<void (BitTorrent::TorrentHandle *const)> &fn) void TransferListWidget::applyToSelectedTorrents(const std::function<void (BitTorrent::Torrent *const)> &fn)
{ {
for (const QModelIndex &index : asConst(selectionModel()->selectedRows())) for (const QModelIndex &index : asConst(selectionModel()->selectedRows()))
{ {
BitTorrent::TorrentHandle *const torrent = m_listModel->torrentHandle(mapToSource(index)); BitTorrent::Torrent *const torrent = m_listModel->torrentHandle(mapToSource(index));
Q_ASSERT(torrent); Q_ASSERT(torrent);
fn(torrent); fn(torrent);
} }
@@ -753,7 +753,7 @@ void TransferListWidget::renameSelectedTorrent()
if ((selectedIndexes.size() != 1) || !selectedIndexes.first().isValid()) return; if ((selectedIndexes.size() != 1) || !selectedIndexes.first().isValid()) return;
const QModelIndex mi = m_listModel->index(mapToSource(selectedIndexes.first()).row(), TransferListModel::TR_NAME); const QModelIndex mi = m_listModel->index(mapToSource(selectedIndexes.first()).row(), TransferListModel::TR_NAME);
BitTorrent::TorrentHandle *const torrent = m_listModel->torrentHandle(mi); BitTorrent::Torrent *const torrent = m_listModel->torrentHandle(mi);
if (!torrent) return; if (!torrent) return;
// Ask for a new Name // Ask for a new Name
@@ -775,17 +775,17 @@ void TransferListWidget::setSelectionCategory(const QString &category)
void TransferListWidget::addSelectionTag(const QString &tag) void TransferListWidget::addSelectionTag(const QString &tag)
{ {
applyToSelectedTorrents([&tag](BitTorrent::TorrentHandle *const torrent) { torrent->addTag(tag); }); applyToSelectedTorrents([&tag](BitTorrent::Torrent *const torrent) { torrent->addTag(tag); });
} }
void TransferListWidget::removeSelectionTag(const QString &tag) void TransferListWidget::removeSelectionTag(const QString &tag)
{ {
applyToSelectedTorrents([&tag](BitTorrent::TorrentHandle *const torrent) { torrent->removeTag(tag); }); applyToSelectedTorrents([&tag](BitTorrent::Torrent *const torrent) { torrent->removeTag(tag); });
} }
void TransferListWidget::clearSelectionTags() void TransferListWidget::clearSelectionTags()
{ {
applyToSelectedTorrents([](BitTorrent::TorrentHandle *const torrent) { torrent->removeAllTags(); }); applyToSelectedTorrents([](BitTorrent::Torrent *const torrent) { torrent->removeAllTags(); });
} }
void TransferListWidget::displayListMenu(const QPoint &) void TransferListWidget::displayListMenu(const QPoint &)
@@ -866,7 +866,7 @@ void TransferListWidget::displayListMenu(const QPoint &)
{ {
// Get the file name // Get the file name
// Get handle and pause the torrent // Get handle and pause the torrent
const BitTorrent::TorrentHandle *torrent = m_listModel->torrentHandle(mapToSource(index)); const BitTorrent::Torrent *torrent = m_listModel->torrentHandle(mapToSource(index));
if (!torrent) continue; if (!torrent) continue;
if (firstCategory.isEmpty() && first) if (firstCategory.isEmpty() && first)
@@ -1100,7 +1100,7 @@ void TransferListWidget::displayListMenu(const QPoint &)
void TransferListWidget::currentChanged(const QModelIndex &current, const QModelIndex&) void TransferListWidget::currentChanged(const QModelIndex &current, const QModelIndex&)
{ {
qDebug("CURRENT CHANGED"); qDebug("CURRENT CHANGED");
BitTorrent::TorrentHandle *torrent = nullptr; BitTorrent::Torrent *torrent = nullptr;
if (current.isValid()) if (current.isValid())
{ {
torrent = m_listModel->torrentHandle(mapToSource(current)); torrent = m_listModel->torrentHandle(mapToSource(current));

View File

@@ -40,7 +40,7 @@ class TransferListSortModel;
namespace BitTorrent namespace BitTorrent
{ {
class InfoHash; class InfoHash;
class TorrentHandle; class Torrent;
} }
class TransferListWidget final : public QTreeView class TransferListWidget final : public QTreeView
@@ -96,7 +96,7 @@ protected:
QModelIndex mapToSource(const QModelIndex &index) const; QModelIndex mapToSource(const QModelIndex &index) const;
QModelIndex mapFromSource(const QModelIndex &index) const; QModelIndex mapFromSource(const QModelIndex &index) const;
bool loadSettings(); bool loadSettings();
QVector<BitTorrent::TorrentHandle *> getSelectedTorrents() const; QVector<BitTorrent::Torrent *> getSelectedTorrents() const;
protected slots: protected slots:
void torrentDoubleClicked(); void torrentDoubleClicked();
@@ -110,7 +110,7 @@ protected slots:
void saveSettings(); void saveSettings();
signals: signals:
void currentTorrentChanged(BitTorrent::TorrentHandle *const torrent); void currentTorrentChanged(BitTorrent::Torrent *const torrent);
private: private:
void wheelEvent(QWheelEvent *event) override; void wheelEvent(QWheelEvent *event) override;
@@ -118,8 +118,8 @@ private:
void editTorrentTrackers(); void editTorrentTrackers();
void confirmRemoveAllTagsForSelection(); void confirmRemoveAllTagsForSelection();
QStringList askTagsForSelection(const QString &dialogTitle); QStringList askTagsForSelection(const QString &dialogTitle);
void applyToSelectedTorrents(const std::function<void (BitTorrent::TorrentHandle *const)> &fn); void applyToSelectedTorrents(const std::function<void (BitTorrent::Torrent *const)> &fn);
QVector<BitTorrent::TorrentHandle *> getVisibleTorrents() const; QVector<BitTorrent::Torrent *> getVisibleTorrents() const;
TransferListDelegate *m_listDelegate; TransferListDelegate *m_listDelegate;
TransferListModel *m_listModel; TransferListModel *m_listModel;

View File

@@ -33,7 +33,7 @@
#include <QVector> #include <QVector>
#include "base/bittorrent/infohash.h" #include "base/bittorrent/infohash.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/bittorrent/trackerentry.h" #include "base/bittorrent/trackerentry.h"
#include "base/utils/fs.h" #include "base/utils/fs.h"
@@ -83,7 +83,7 @@ namespace
} }
} }
QVariantMap serialize(const BitTorrent::TorrentHandle &torrent) QVariantMap serialize(const BitTorrent::Torrent &torrent)
{ {
QVariantMap ret = QVariantMap ret =
{ {
@@ -136,7 +136,7 @@ QVariantMap serialize(const BitTorrent::TorrentHandle &torrent)
}; };
const qreal ratio = torrent.realRatio(); const qreal ratio = torrent.realRatio();
ret[KEY_TORRENT_RATIO] = (ratio > BitTorrent::TorrentHandle::MAX_RATIO) ? -1 : ratio; ret[KEY_TORRENT_RATIO] = (ratio > BitTorrent::Torrent::MAX_RATIO) ? -1 : ratio;
if (torrent.isPaused() || torrent.isChecking()) if (torrent.isPaused() || torrent.isChecking())
{ {

View File

@@ -32,7 +32,7 @@
namespace BitTorrent namespace BitTorrent
{ {
class TorrentHandle; class Torrent;
} }
// Torrent keys // Torrent keys
@@ -82,4 +82,4 @@ const char KEY_TORRENT_AUTO_TORRENT_MANAGEMENT[] = "auto_tmm";
const char KEY_TORRENT_TIME_ACTIVE[] = "time_active"; const char KEY_TORRENT_TIME_ACTIVE[] = "time_active";
const char KEY_TORRENT_AVAILABILITY[] = "availability"; const char KEY_TORRENT_AVAILABILITY[] = "availability";
QVariantMap serialize(const BitTorrent::TorrentHandle &torrent); QVariantMap serialize(const BitTorrent::Torrent &torrent);

View File

@@ -38,7 +38,7 @@
#include "base/bittorrent/peeraddress.h" #include "base/bittorrent/peeraddress.h"
#include "base/bittorrent/peerinfo.h" #include "base/bittorrent/peerinfo.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/bittorrent/trackerentry.h" #include "base/bittorrent/trackerentry.h"
#include "base/global.h" #include "base/global.h"
#include "base/net/geoipmanager.h" #include "base/net/geoipmanager.h"
@@ -458,7 +458,7 @@ void SyncController::maindataAction()
QVariantHash torrents; QVariantHash torrents;
QHash<QString, QStringList> trackers; QHash<QString, QStringList> trackers;
for (const BitTorrent::TorrentHandle *torrent : asConst(session->torrents())) for (const BitTorrent::Torrent *torrent : asConst(session->torrents()))
{ {
const BitTorrent::InfoHash torrentHash = torrent->hash(); const BitTorrent::InfoHash torrentHash = torrent->hash();
@@ -542,7 +542,7 @@ void SyncController::torrentPeersAction()
auto lastAcceptedResponse = sessionManager()->session()->getData(QLatin1String("syncTorrentPeersLastAcceptedResponse")).toMap(); auto lastAcceptedResponse = sessionManager()->session()->getData(QLatin1String("syncTorrentPeersLastAcceptedResponse")).toMap();
const QString hash {params()["hash"]}; const QString hash {params()["hash"]};
const BitTorrent::TorrentHandle *torrent = BitTorrent::Session::instance()->findTorrent(hash); const BitTorrent::Torrent *torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);

View File

@@ -45,7 +45,7 @@
#include "base/bittorrent/peeraddress.h" #include "base/bittorrent/peeraddress.h"
#include "base/bittorrent/peerinfo.h" #include "base/bittorrent/peerinfo.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrent.h"
#include "base/bittorrent/torrentinfo.h" #include "base/bittorrent/torrentinfo.h"
#include "base/bittorrent/trackerentry.h" #include "base/bittorrent/trackerentry.h"
#include "base/global.h" #include "base/global.h"
@@ -118,25 +118,25 @@ namespace
{ {
using Utils::String::parseBool; using Utils::String::parseBool;
void applyToTorrents(const QStringList &hashes, const std::function<void (BitTorrent::TorrentHandle *torrent)> &func) void applyToTorrents(const QStringList &hashes, const std::function<void (BitTorrent::Torrent *torrent)> &func)
{ {
if ((hashes.size() == 1) && (hashes[0] == QLatin1String("all"))) if ((hashes.size() == 1) && (hashes[0] == QLatin1String("all")))
{ {
for (BitTorrent::TorrentHandle *const torrent : asConst(BitTorrent::Session::instance()->torrents())) for (BitTorrent::Torrent *const torrent : asConst(BitTorrent::Session::instance()->torrents()))
func(torrent); func(torrent);
} }
else else
{ {
for (const QString &hash : hashes) for (const QString &hash : hashes)
{ {
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (torrent) if (torrent)
func(torrent); func(torrent);
} }
} }
} }
QJsonArray getStickyTrackers(const BitTorrent::TorrentHandle *const torrent) QJsonArray getStickyTrackers(const BitTorrent::Torrent *const torrent)
{ {
int seedsDHT = 0, seedsPeX = 0, seedsLSD = 0, leechesDHT = 0, leechesPeX = 0, leechesLSD = 0; int seedsDHT = 0, seedsPeX = 0, seedsLSD = 0, leechesDHT = 0, leechesPeX = 0, leechesLSD = 0;
for (const BitTorrent::PeerInfo &peer : asConst(torrent->peers())) for (const BitTorrent::PeerInfo &peer : asConst(torrent->peers()))
@@ -263,7 +263,7 @@ void TorrentsController::infoAction()
const TorrentFilter torrentFilter(filter, (hashes.isEmpty() ? TorrentFilter::AnyHash : hashSet), category); const TorrentFilter torrentFilter(filter, (hashes.isEmpty() ? TorrentFilter::AnyHash : hashSet), category);
QVariantList torrentList; QVariantList torrentList;
for (const BitTorrent::TorrentHandle *torrent : asConst(BitTorrent::Session::instance()->torrents())) for (const BitTorrent::Torrent *torrent : asConst(BitTorrent::Session::instance()->torrents()))
{ {
if (torrentFilter.match(torrent)) if (torrentFilter.match(torrent))
torrentList.append(serialize(*torrent)); torrentList.append(serialize(*torrent));
@@ -372,7 +372,7 @@ void TorrentsController::propertiesAction()
requireParams({"hash"}); requireParams({"hash"});
const QString hash {params()["hash"]}; const QString hash {params()["hash"]};
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -401,7 +401,7 @@ void TorrentsController::propertiesAction()
dataDict[KEY_PROP_PEERS] = torrent->leechsCount(); dataDict[KEY_PROP_PEERS] = torrent->leechsCount();
dataDict[KEY_PROP_PEERS_TOTAL] = torrent->totalLeechersCount(); dataDict[KEY_PROP_PEERS_TOTAL] = torrent->totalLeechersCount();
const qreal ratio = torrent->realRatio(); const qreal ratio = torrent->realRatio();
dataDict[KEY_PROP_RATIO] = ratio > BitTorrent::TorrentHandle::MAX_RATIO ? -1 : ratio; dataDict[KEY_PROP_RATIO] = ratio > BitTorrent::Torrent::MAX_RATIO ? -1 : ratio;
dataDict[KEY_PROP_REANNOUNCE] = torrent->nextAnnounce(); dataDict[KEY_PROP_REANNOUNCE] = torrent->nextAnnounce();
dataDict[KEY_PROP_TOTAL_SIZE] = torrent->totalSize(); dataDict[KEY_PROP_TOTAL_SIZE] = torrent->totalSize();
dataDict[KEY_PROP_PIECES_NUM] = torrent->piecesCount(); dataDict[KEY_PROP_PIECES_NUM] = torrent->piecesCount();
@@ -443,7 +443,7 @@ void TorrentsController::trackersAction()
requireParams({"hash"}); requireParams({"hash"});
const QString hash {params()["hash"]}; const QString hash {params()["hash"]};
const BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); const BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -479,7 +479,7 @@ void TorrentsController::webseedsAction()
requireParams({"hash"}); requireParams({"hash"});
const QString hash {params()["hash"]}; const QString hash {params()["hash"]};
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -510,7 +510,7 @@ void TorrentsController::filesAction()
requireParams({"hash"}); requireParams({"hash"});
const QString hash {params()["hash"]}; const QString hash {params()["hash"]};
const BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); const BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -556,7 +556,7 @@ void TorrentsController::pieceHashesAction()
requireParams({"hash"}); requireParams({"hash"});
const QString hash {params()["hash"]}; const QString hash {params()["hash"]};
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -578,7 +578,7 @@ void TorrentsController::pieceStatesAction()
requireParams({"hash"}); requireParams({"hash"});
const QString hash {params()["hash"]}; const QString hash {params()["hash"]};
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -684,7 +684,7 @@ void TorrentsController::addTrackersAction()
requireParams({"hash", "urls"}); requireParams({"hash", "urls"});
const QString hash = params()["hash"]; const QString hash = params()["hash"];
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -706,7 +706,7 @@ void TorrentsController::editTrackerAction()
const QString origUrl = params()["origUrl"]; const QString origUrl = params()["origUrl"];
const QString newUrl = params()["newUrl"]; const QString newUrl = params()["newUrl"];
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -746,7 +746,7 @@ void TorrentsController::removeTrackersAction()
requireParams({"hash", "urls"}); requireParams({"hash", "urls"});
const QString hash = params()["hash"]; const QString hash = params()["hash"];
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -791,7 +791,7 @@ void TorrentsController::addPeersAction()
QJsonObject results; QJsonObject results;
applyToTorrents(hashes, [peers, peerList, &results](BitTorrent::TorrentHandle *const torrent) applyToTorrents(hashes, [peers, peerList, &results](BitTorrent::Torrent *const torrent)
{ {
const int peersAdded = std::count_if(peerList.cbegin(), peerList.cend(), [torrent](const BitTorrent::PeerAddress &peer) const int peersAdded = std::count_if(peerList.cbegin(), peerList.cend(), [torrent](const BitTorrent::PeerAddress &peer)
{ {
@@ -813,7 +813,7 @@ void TorrentsController::pauseAction()
requireParams({"hashes"}); requireParams({"hashes"});
const QStringList hashes = params()["hashes"].split('|'); const QStringList hashes = params()["hashes"].split('|');
applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->pause(); }); applyToTorrents(hashes, [](BitTorrent::Torrent *const torrent) { torrent->pause(); });
} }
void TorrentsController::resumeAction() void TorrentsController::resumeAction()
@@ -821,7 +821,7 @@ void TorrentsController::resumeAction()
requireParams({"hashes"}); requireParams({"hashes"});
const QStringList hashes = params()["hashes"].split('|'); const QStringList hashes = params()["hashes"].split('|');
applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->resume(); }); applyToTorrents(hashes, [](BitTorrent::Torrent *const torrent) { torrent->resume(); });
} }
void TorrentsController::filePrioAction() void TorrentsController::filePrioAction()
@@ -837,7 +837,7 @@ void TorrentsController::filePrioAction()
if (!BitTorrent::isValidDownloadPriority(priority)) if (!BitTorrent::isValidDownloadPriority(priority))
throw APIError(APIErrorType::BadParams, tr("Priority is not valid")); throw APIError(APIErrorType::BadParams, tr("Priority is not valid"));
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
if (!torrent->hasMetadata()) if (!torrent->hasMetadata())
@@ -874,7 +874,7 @@ void TorrentsController::uploadLimitAction()
for (const QString &hash : hashes) for (const QString &hash : hashes)
{ {
int limit = -1; int limit = -1;
const BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); const BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (torrent) if (torrent)
limit = torrent->uploadLimit(); limit = torrent->uploadLimit();
map[hash] = limit; map[hash] = limit;
@@ -892,7 +892,7 @@ void TorrentsController::downloadLimitAction()
for (const QString &hash : hashes) for (const QString &hash : hashes)
{ {
int limit = -1; int limit = -1;
const BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); const BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (torrent) if (torrent)
limit = torrent->downloadLimit(); limit = torrent->downloadLimit();
map[hash] = limit; map[hash] = limit;
@@ -910,7 +910,7 @@ void TorrentsController::setUploadLimitAction()
limit = -1; limit = -1;
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
applyToTorrents(hashes, [limit](BitTorrent::TorrentHandle *const torrent) { torrent->setUploadLimit(limit); }); applyToTorrents(hashes, [limit](BitTorrent::Torrent *const torrent) { torrent->setUploadLimit(limit); });
} }
void TorrentsController::setDownloadLimitAction() void TorrentsController::setDownloadLimitAction()
@@ -922,7 +922,7 @@ void TorrentsController::setDownloadLimitAction()
limit = -1; limit = -1;
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
applyToTorrents(hashes, [limit](BitTorrent::TorrentHandle *const torrent) { torrent->setDownloadLimit(limit); }); applyToTorrents(hashes, [limit](BitTorrent::Torrent *const torrent) { torrent->setDownloadLimit(limit); });
} }
void TorrentsController::setShareLimitsAction() void TorrentsController::setShareLimitsAction()
@@ -933,7 +933,7 @@ void TorrentsController::setShareLimitsAction()
const qlonglong seedingTimeLimit = params()["seedingTimeLimit"].toLongLong(); const qlonglong seedingTimeLimit = params()["seedingTimeLimit"].toLongLong();
const QStringList hashes = params()["hashes"].split('|'); const QStringList hashes = params()["hashes"].split('|');
applyToTorrents(hashes, [ratioLimit, seedingTimeLimit](BitTorrent::TorrentHandle *const torrent) applyToTorrents(hashes, [ratioLimit, seedingTimeLimit](BitTorrent::Torrent *const torrent)
{ {
torrent->setRatioLimit(ratioLimit); torrent->setRatioLimit(ratioLimit);
torrent->setSeedingTimeLimit(seedingTimeLimit); torrent->setSeedingTimeLimit(seedingTimeLimit);
@@ -945,7 +945,7 @@ void TorrentsController::toggleSequentialDownloadAction()
requireParams({"hashes"}); requireParams({"hashes"});
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->toggleSequentialDownload(); }); applyToTorrents(hashes, [](BitTorrent::Torrent *const torrent) { torrent->toggleSequentialDownload(); });
} }
void TorrentsController::toggleFirstLastPiecePrioAction() void TorrentsController::toggleFirstLastPiecePrioAction()
@@ -953,7 +953,7 @@ void TorrentsController::toggleFirstLastPiecePrioAction()
requireParams({"hashes"}); requireParams({"hashes"});
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->toggleFirstLastPiecePriority(); }); applyToTorrents(hashes, [](BitTorrent::Torrent *const torrent) { torrent->toggleFirstLastPiecePriority(); });
} }
void TorrentsController::setSuperSeedingAction() void TorrentsController::setSuperSeedingAction()
@@ -962,7 +962,7 @@ void TorrentsController::setSuperSeedingAction()
const bool value {parseBool(params()["value"]).value_or(false)}; const bool value {parseBool(params()["value"]).value_or(false)};
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
applyToTorrents(hashes, [value](BitTorrent::TorrentHandle *const torrent) { torrent->setSuperSeeding(value); }); applyToTorrents(hashes, [value](BitTorrent::Torrent *const torrent) { torrent->setSuperSeeding(value); });
} }
void TorrentsController::setForceStartAction() void TorrentsController::setForceStartAction()
@@ -971,7 +971,7 @@ void TorrentsController::setForceStartAction()
const bool value {parseBool(params()["value"]).value_or(false)}; const bool value {parseBool(params()["value"]).value_or(false)};
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
applyToTorrents(hashes, [value](BitTorrent::TorrentHandle *const torrent) applyToTorrents(hashes, [value](BitTorrent::Torrent *const torrent)
{ {
torrent->resume(value ? BitTorrent::TorrentOperatingMode::Forced : BitTorrent::TorrentOperatingMode::AutoManaged); torrent->resume(value ? BitTorrent::TorrentOperatingMode::Forced : BitTorrent::TorrentOperatingMode::AutoManaged);
}); });
@@ -983,8 +983,8 @@ void TorrentsController::deleteAction()
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
const DeleteOption deleteOption = parseBool(params()["deleteFiles"]).value_or(false) const DeleteOption deleteOption = parseBool(params()["deleteFiles"]).value_or(false)
? TorrentAndFiles : Torrent; ? DeleteTorrentAndFiles : DeleteTorrent;
applyToTorrents(hashes, [deleteOption](const BitTorrent::TorrentHandle *torrent) applyToTorrents(hashes, [deleteOption](const BitTorrent::Torrent *torrent)
{ {
BitTorrent::Session::instance()->deleteTorrent(torrent->hash(), deleteOption); BitTorrent::Session::instance()->deleteTorrent(torrent->hash(), deleteOption);
}); });
@@ -1052,7 +1052,7 @@ void TorrentsController::setLocationAction()
if (!QFileInfo(newLocation).isWritable()) if (!QFileInfo(newLocation).isWritable())
throw APIError(APIErrorType::AccessDenied, tr("Cannot write to directory")); throw APIError(APIErrorType::AccessDenied, tr("Cannot write to directory"));
applyToTorrents(hashes, [newLocation](BitTorrent::TorrentHandle *const torrent) applyToTorrents(hashes, [newLocation](BitTorrent::Torrent *const torrent)
{ {
LogMsg(tr("WebUI Set location: moving \"%1\", from \"%2\" to \"%3\"") LogMsg(tr("WebUI Set location: moving \"%1\", from \"%2\" to \"%3\"")
.arg(torrent->name(), Utils::Fs::toNativePath(torrent->savePath()), Utils::Fs::toNativePath(newLocation))); .arg(torrent->name(), Utils::Fs::toNativePath(torrent->savePath()), Utils::Fs::toNativePath(newLocation)));
@@ -1070,7 +1070,7 @@ void TorrentsController::renameAction()
if (name.isEmpty()) if (name.isEmpty())
throw APIError(APIErrorType::Conflict, tr("Incorrect torrent name")); throw APIError(APIErrorType::Conflict, tr("Incorrect torrent name"));
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -1085,7 +1085,7 @@ void TorrentsController::setAutoManagementAction()
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
const bool isEnabled {parseBool(params()["enable"]).value_or(false)}; const bool isEnabled {parseBool(params()["enable"]).value_or(false)};
applyToTorrents(hashes, [isEnabled](BitTorrent::TorrentHandle *const torrent) applyToTorrents(hashes, [isEnabled](BitTorrent::Torrent *const torrent)
{ {
torrent->setAutoTMMEnabled(isEnabled); torrent->setAutoTMMEnabled(isEnabled);
}); });
@@ -1096,7 +1096,7 @@ void TorrentsController::recheckAction()
requireParams({"hashes"}); requireParams({"hashes"});
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->forceRecheck(); }); applyToTorrents(hashes, [](BitTorrent::Torrent *const torrent) { torrent->forceRecheck(); });
} }
void TorrentsController::reannounceAction() void TorrentsController::reannounceAction()
@@ -1104,7 +1104,7 @@ void TorrentsController::reannounceAction()
requireParams({"hashes"}); requireParams({"hashes"});
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->forceReannounce(); }); applyToTorrents(hashes, [](BitTorrent::Torrent *const torrent) { torrent->forceReannounce(); });
} }
void TorrentsController::setCategoryAction() void TorrentsController::setCategoryAction()
@@ -1114,7 +1114,7 @@ void TorrentsController::setCategoryAction()
const QStringList hashes {params()["hashes"].split('|')}; const QStringList hashes {params()["hashes"].split('|')};
const QString category {params()["category"]}; const QString category {params()["category"]};
applyToTorrents(hashes, [category](BitTorrent::TorrentHandle *const torrent) applyToTorrents(hashes, [category](BitTorrent::Torrent *const torrent)
{ {
if (!torrent->setCategory(category)) if (!torrent->setCategory(category))
throw APIError(APIErrorType::Conflict, tr("Incorrect category name")); throw APIError(APIErrorType::Conflict, tr("Incorrect category name"));
@@ -1188,7 +1188,7 @@ void TorrentsController::addTagsAction()
for (const QString &tag : tags) for (const QString &tag : tags)
{ {
const QString tagTrimmed {tag.trimmed()}; const QString tagTrimmed {tag.trimmed()};
applyToTorrents(hashes, [&tagTrimmed](BitTorrent::TorrentHandle *const torrent) applyToTorrents(hashes, [&tagTrimmed](BitTorrent::Torrent *const torrent)
{ {
torrent->addTag(tagTrimmed); torrent->addTag(tagTrimmed);
}); });
@@ -1205,7 +1205,7 @@ void TorrentsController::removeTagsAction()
for (const QString &tag : tags) for (const QString &tag : tags)
{ {
const QString tagTrimmed {tag.trimmed()}; const QString tagTrimmed {tag.trimmed()};
applyToTorrents(hashes, [&tagTrimmed](BitTorrent::TorrentHandle *const torrent) applyToTorrents(hashes, [&tagTrimmed](BitTorrent::Torrent *const torrent)
{ {
torrent->removeTag(tagTrimmed); torrent->removeTag(tagTrimmed);
}); });
@@ -1213,7 +1213,7 @@ void TorrentsController::removeTagsAction()
if (tags.isEmpty()) if (tags.isEmpty())
{ {
applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) applyToTorrents(hashes, [](BitTorrent::Torrent *const torrent)
{ {
torrent->removeAllTags(); torrent->removeAllTags();
}); });
@@ -1252,7 +1252,7 @@ void TorrentsController::renameFileAction()
requireParams({"hash", "oldPath", "newPath"}); requireParams({"hash", "oldPath", "newPath"});
const QString hash = params()["hash"]; const QString hash = params()["hash"];
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);
@@ -1274,7 +1274,7 @@ void TorrentsController::renameFolderAction()
requireParams({"hash", "oldPath", "newPath"}); requireParams({"hash", "oldPath", "newPath"});
const QString hash = params()["hash"]; const QString hash = params()["hash"];
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
if (!torrent) if (!torrent)
throw APIError(APIErrorType::NotFound); throw APIError(APIErrorType::NotFound);