Add preliminary support of libtorrent v1.2

libtorrent v1.2 should be built with deprecated features enabled.
This commit is contained in:
Vladimir Golovnev (Glassez) 2019-03-06 08:58:07 +03:00
parent 20f2c86d25
commit ead078a38e
No known key found for this signature in database
GPG key ID: 52A2C7DEE2DFA6F7
37 changed files with 646 additions and 370 deletions

View file

@ -50,7 +50,7 @@
#include <QPixmapCache>
#endif
#include "base/bittorrent/filepriority.h"
#include "base/bittorrent/downloadpriority.h"
#include "base/global.h"
#include "base/utils/misc.h"
#include "base/utils/fs.h"
@ -239,7 +239,7 @@ void TorrentContentModel::updateFilesProgress(const QVector<qreal> &fp)
emit dataChanged(index(0, 0), index(rowCount(), columnCount()));
}
void TorrentContentModel::updateFilesPriorities(const QVector<int> &fprio)
void TorrentContentModel::updateFilesPriorities(const QVector<BitTorrent::DownloadPriority> &fprio)
{
Q_ASSERT(m_filesIndex.size() == fprio.size());
// XXX: Why is this necessary?
@ -248,7 +248,7 @@ void TorrentContentModel::updateFilesPriorities(const QVector<int> &fprio)
emit layoutAboutToBeChanged();
for (int i = 0; i < fprio.size(); ++i)
m_filesIndex[i]->setPriority(static_cast<BitTorrent::FilePriority>(fprio[i]));
m_filesIndex[i]->setPriority(static_cast<BitTorrent::DownloadPriority>(fprio[i]));
emit dataChanged(index(0, 0), index(rowCount(), columnCount()));
}
@ -266,12 +266,12 @@ void TorrentContentModel::updateFilesAvailability(const QVector<qreal> &fa)
emit dataChanged(index(0, 0), index(rowCount(), columnCount()));
}
QVector<int> TorrentContentModel::getFilePriorities() const
QVector<BitTorrent::DownloadPriority> TorrentContentModel::getFilePriorities() const
{
QVector<int> prio;
QVector<BitTorrent::DownloadPriority> prio;
prio.reserve(m_filesIndex.size());
for (const TorrentContentModelFile *file : asConst(m_filesIndex))
prio.push_back(static_cast<int>(file->priority()));
prio.push_back(file->priority());
return prio;
}
@ -279,7 +279,7 @@ bool TorrentContentModel::allFiltered() const
{
return std::all_of(m_filesIndex.cbegin(), m_filesIndex.cend(), [](const TorrentContentModelFile *fileItem)
{
return (fileItem->priority() == BitTorrent::FilePriority::Ignored);
return (fileItem->priority() == BitTorrent::DownloadPriority::Ignored);
});
}
@ -300,11 +300,11 @@ bool TorrentContentModel::setData(const QModelIndex &index, const QVariant &valu
auto *item = static_cast<TorrentContentModelItem*>(index.internalPointer());
qDebug("setData(%s, %d", qUtf8Printable(item->name()), value.toInt());
if (static_cast<int>(item->priority()) != value.toInt()) {
BitTorrent::FilePriority prio = BitTorrent::FilePriority::Normal;
BitTorrent::DownloadPriority prio = BitTorrent::DownloadPriority::Normal;
if (value.toInt() == Qt::PartiallyChecked)
prio = BitTorrent::FilePriority::Mixed;
prio = BitTorrent::DownloadPriority::Mixed;
else if (value.toInt() == Qt::Unchecked)
prio = BitTorrent::FilePriority::Ignored;
prio = BitTorrent::DownloadPriority::Ignored;
item->setPriority(prio);
// Update folders progress in the tree
@ -324,7 +324,7 @@ bool TorrentContentModel::setData(const QModelIndex &index, const QVariant &valu
item->setName(value.toString());
break;
case TorrentContentModelItem::COL_PRIO:
item->setPriority(static_cast<BitTorrent::FilePriority>(value.toInt()));
item->setPriority(static_cast<BitTorrent::DownloadPriority>(value.toInt()));
break;
default:
return false;
@ -366,9 +366,9 @@ QVariant TorrentContentModel::data(const QModelIndex &index, int role) const
}
if ((index.column() == TorrentContentModelItem::COL_NAME) && (role == Qt::CheckStateRole)) {
if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == static_cast<int>(BitTorrent::FilePriority::Ignored))
if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == static_cast<int>(BitTorrent::DownloadPriority::Ignored))
return Qt::Unchecked;
if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == static_cast<int>(BitTorrent::FilePriority::Mixed))
if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == static_cast<int>(BitTorrent::DownloadPriority::Mixed))
return Qt::PartiallyChecked;
return Qt::Checked;
}
@ -503,8 +503,8 @@ void TorrentContentModel::selectAll()
{
for (int i = 0; i < m_rootItem->childCount(); ++i) {
TorrentContentModelItem* child = m_rootItem->child(i);
if (child->priority() == BitTorrent::FilePriority::Ignored)
child->setPriority(BitTorrent::FilePriority::Normal);
if (child->priority() == BitTorrent::DownloadPriority::Ignored)
child->setPriority(BitTorrent::DownloadPriority::Normal);
}
emit dataChanged(index(0, 0), index(rowCount(), columnCount()));
}
@ -512,6 +512,6 @@ void TorrentContentModel::selectAll()
void TorrentContentModel::selectNone()
{
for (int i = 0; i < m_rootItem->childCount(); ++i)
m_rootItem->child(i)->setPriority(BitTorrent::FilePriority::Ignored);
m_rootItem->child(i)->setPriority(BitTorrent::DownloadPriority::Ignored);
emit dataChanged(index(0, 0), index(rowCount(), columnCount()));
}