mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-01-23 04:54:18 +00:00
parent
e9d075049b
commit
30be83d445
@ -234,13 +234,12 @@ void PropertiesWidget::updateTorrentInfos(const QTorrentHandle& _h) {
|
||||
}
|
||||
}
|
||||
|
||||
void PropertiesWidget::loadTorrentInfos(const QTorrentHandle &_h) {
|
||||
void PropertiesWidget::loadTorrentInfos(const QTorrentHandle& _h)
|
||||
{
|
||||
clear();
|
||||
h = _h;
|
||||
if (!h.is_valid()) {
|
||||
clear();
|
||||
if (!h.is_valid())
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// Save path
|
||||
@ -261,9 +260,7 @@ void PropertiesWidget::loadTorrentInfos(const QTorrentHandle &_h) {
|
||||
PropListModel->model()->setupModelData(h.get_torrent_info());
|
||||
filesList->setExpanded(PropListModel->index(0, 0), true);
|
||||
}
|
||||
} catch(invalid_handle& e) {
|
||||
|
||||
}
|
||||
} catch(const invalid_handle& e) { }
|
||||
// Load dynamic data
|
||||
loadDynamicData();
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ void TorrentContentModel::updateFilesProgress(const std::vector<libtorrent::size
|
||||
emit dataChanged(index(0,0), index(rowCount(), columnCount()));
|
||||
}
|
||||
|
||||
void TorrentContentModel::updateFilesPriorities(const std::vector<int> &fprio)
|
||||
void TorrentContentModel::updateFilesPriorities(const std::vector<int>& fprio)
|
||||
{
|
||||
emit layoutAboutToBeChanged();
|
||||
Q_ASSERT(m_filesIndex.size() == (int)fprio.size());
|
||||
@ -71,8 +71,9 @@ void TorrentContentModel::updateFilesPriorities(const std::vector<int> &fprio)
|
||||
std::vector<int> TorrentContentModel::getFilesPriorities() const
|
||||
{
|
||||
std::vector<int> prio;
|
||||
for (int i=0; i<m_filesIndex.size(); ++i) {
|
||||
prio.push_back(m_filesIndex[i]->getPriority());
|
||||
prio.reserve(m_filesIndex.size());
|
||||
foreach (const TorrentContentModelItem* file, m_filesIndex) {
|
||||
prio.push_back(file->getPriority());
|
||||
}
|
||||
return prio;
|
||||
}
|
||||
@ -147,7 +148,7 @@ TorrentContentModelItem::FileType TorrentContentModel::getType(const QModelIndex
|
||||
|
||||
int TorrentContentModel::getFileIndex(const QModelIndex& index)
|
||||
{
|
||||
TorrentContentModelItem *item = static_cast<TorrentContentModelItem*>(index.internalPointer());
|
||||
TorrentContentModelItem* item = static_cast<TorrentContentModelItem*>(index.internalPointer());
|
||||
return item->getFileIndex();
|
||||
}
|
||||
|
||||
@ -238,7 +239,7 @@ QModelIndex TorrentContentModel::parent(const QModelIndex& index) const
|
||||
|
||||
int TorrentContentModel::rowCount(const QModelIndex& parent) const
|
||||
{
|
||||
TorrentContentModelItem *parentItem;
|
||||
TorrentContentModelItem* parentItem;
|
||||
|
||||
if (parent.column() > 0)
|
||||
return 0;
|
||||
@ -260,7 +261,7 @@ void TorrentContentModel::clear()
|
||||
endResetModel();
|
||||
}
|
||||
|
||||
void TorrentContentModel::setupModelData(const libtorrent::torrent_info &t)
|
||||
void TorrentContentModel::setupModelData(const libtorrent::torrent_info& t)
|
||||
{
|
||||
qDebug("setup model data called");
|
||||
if (t.num_files() == 0)
|
||||
@ -271,28 +272,28 @@ void TorrentContentModel::setupModelData(const libtorrent::torrent_info &t)
|
||||
qDebug("Torrent contains %d files", t.num_files());
|
||||
m_filesIndex.reserve(t.num_files());
|
||||
|
||||
TorrentContentModelItem *parent = m_rootItem;
|
||||
TorrentContentModelItem *root_folder = parent;
|
||||
TorrentContentModelItem *current_parent;
|
||||
TorrentContentModelItem* parent = m_rootItem;
|
||||
TorrentContentModelItem* root_folder = parent;
|
||||
TorrentContentModelItem* current_parent;
|
||||
|
||||
// Iterate over files
|
||||
for (int i=0; i<t.num_files(); ++i) {
|
||||
libtorrent::file_entry fentry = t.file_at(i);
|
||||
const libtorrent::file_entry& fentry = t.file_at(i);
|
||||
current_parent = root_folder;
|
||||
#if LIBTORRENT_VERSION_MINOR >= 16
|
||||
QString path = QDir::cleanPath(misc::toQStringU(fentry.path)).replace("\\", "/");
|
||||
QString path = misc::toQStringU(fentry.path);
|
||||
#else
|
||||
QString path = QDir::cleanPath(misc::toQStringU(fentry.path.string())).replace("\\", "/");
|
||||
QString path = misc::toQStringU(fentry.path.string());
|
||||
#endif
|
||||
// Iterate of parts of the path to create necessary folders
|
||||
QStringList pathFolders = path.split("/");
|
||||
pathFolders.removeAll(".unwanted");
|
||||
pathFolders.takeLast();
|
||||
foreach (const QString &pathPart, pathFolders) {
|
||||
TorrentContentModelItem *new_parent = current_parent->childWithName(pathPart);
|
||||
if (!new_parent) {
|
||||
QStringList pathFolders = path.split(QRegExp("[/\\\\]"), QString::SkipEmptyParts);
|
||||
pathFolders.removeLast();
|
||||
foreach (const QString& pathPart, pathFolders) {
|
||||
if (pathPart == ".unwanted")
|
||||
continue;
|
||||
TorrentContentModelItem* new_parent = current_parent->childWithName(pathPart);
|
||||
if (!new_parent)
|
||||
new_parent = new TorrentContentModelItem(pathPart, current_parent);
|
||||
}
|
||||
current_parent = new_parent;
|
||||
}
|
||||
// Actually create the file
|
||||
@ -304,7 +305,7 @@ void TorrentContentModel::setupModelData(const libtorrent::torrent_info &t)
|
||||
void TorrentContentModel::selectAll()
|
||||
{
|
||||
for (int i=0; i<m_rootItem->childCount(); ++i) {
|
||||
TorrentContentModelItem *child = m_rootItem->child(i);
|
||||
TorrentContentModelItem* child = m_rootItem->child(i);
|
||||
if (child->getPriority() == prio::IGNORED)
|
||||
child->setPriority(prio::NORMAL);
|
||||
}
|
||||
|
@ -70,8 +70,8 @@ public slots:
|
||||
void selectNone();
|
||||
|
||||
private:
|
||||
TorrentContentModelItem *m_rootItem;
|
||||
QVector<TorrentContentModelItem *> m_filesIndex;
|
||||
TorrentContentModelItem* m_rootItem;
|
||||
QVector<TorrentContentModelItem*> m_filesIndex;
|
||||
};
|
||||
|
||||
#endif // TORRENTCONTENTMODEL_H
|
||||
|
@ -252,15 +252,15 @@ void TorrentContentModelItem::updatePriority()
|
||||
return;
|
||||
}
|
||||
}
|
||||
// All child items have the same priorrity
|
||||
// Update mine if necessary
|
||||
// All child items have the same priority
|
||||
// Update own if necessary
|
||||
if (prio != getPriority())
|
||||
setPriority(prio);
|
||||
}
|
||||
|
||||
TorrentContentModelItem* TorrentContentModelItem::childWithName(const QString& name) const
|
||||
{
|
||||
foreach (TorrentContentModelItem *child, m_childItems) {
|
||||
foreach (TorrentContentModelItem* child, m_childItems) {
|
||||
if (child->getName() == name)
|
||||
return child;
|
||||
}
|
||||
@ -272,7 +272,7 @@ bool TorrentContentModelItem::isFolder() const
|
||||
return (m_type==FOLDER);
|
||||
}
|
||||
|
||||
void TorrentContentModelItem::appendChild(TorrentContentModelItem *item)
|
||||
void TorrentContentModelItem::appendChild(TorrentContentModelItem* item)
|
||||
{
|
||||
Q_ASSERT(item);
|
||||
Q_ASSERT(m_type != TFILE);
|
||||
@ -285,7 +285,7 @@ void TorrentContentModelItem::appendChild(TorrentContentModelItem *item)
|
||||
m_childItems.insert(i, item);
|
||||
}
|
||||
|
||||
TorrentContentModelItem* TorrentContentModelItem::child(int row)
|
||||
TorrentContentModelItem* TorrentContentModelItem::child(int row) const
|
||||
{
|
||||
//Q_ASSERT(row >= 0 && row < childItems.size());
|
||||
return m_childItems.value(row, 0);
|
||||
@ -315,7 +315,7 @@ int TorrentContentModelItem::row() const
|
||||
return 0;
|
||||
}
|
||||
|
||||
TorrentContentModelItem* TorrentContentModelItem::parent()
|
||||
TorrentContentModelItem* TorrentContentModelItem::parent() const
|
||||
{
|
||||
return m_parentItem;
|
||||
}
|
||||
|
@ -80,18 +80,18 @@ public:
|
||||
bool isFolder() const;
|
||||
|
||||
void appendChild(TorrentContentModelItem *item);
|
||||
TorrentContentModelItem *child(int row);
|
||||
TorrentContentModelItem* child(int row) const;
|
||||
int childCount() const;
|
||||
int columnCount() const;
|
||||
QVariant data(int column) const;
|
||||
int row() const;
|
||||
|
||||
TorrentContentModelItem *parent();
|
||||
TorrentContentModelItem* parent() const;
|
||||
void deleteAllChildren();
|
||||
const QList<TorrentContentModelItem*>& children() const;
|
||||
|
||||
private:
|
||||
TorrentContentModelItem *m_parentItem;
|
||||
TorrentContentModelItem* m_parentItem;
|
||||
FileType m_type;
|
||||
QList<TorrentContentModelItem*> m_childItems;
|
||||
QList<QVariant> m_itemData;
|
||||
|
Loading…
x
Reference in New Issue
Block a user