mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-19 21:03:30 -07:00
parent
e9d075049b
commit
30be83d445
5 changed files with 36 additions and 38 deletions
|
@ -234,13 +234,12 @@ void PropertiesWidget::updateTorrentInfos(const QTorrentHandle& _h) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertiesWidget::loadTorrentInfos(const QTorrentHandle &_h) {
|
void PropertiesWidget::loadTorrentInfos(const QTorrentHandle& _h)
|
||||||
|
{
|
||||||
clear();
|
clear();
|
||||||
h = _h;
|
h = _h;
|
||||||
if (!h.is_valid()) {
|
if (!h.is_valid())
|
||||||
clear();
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Save path
|
// Save path
|
||||||
|
@ -261,9 +260,7 @@ void PropertiesWidget::loadTorrentInfos(const QTorrentHandle &_h) {
|
||||||
PropListModel->model()->setupModelData(h.get_torrent_info());
|
PropListModel->model()->setupModelData(h.get_torrent_info());
|
||||||
filesList->setExpanded(PropListModel->index(0, 0), true);
|
filesList->setExpanded(PropListModel->index(0, 0), true);
|
||||||
}
|
}
|
||||||
} catch(invalid_handle& e) {
|
} catch(const invalid_handle& e) { }
|
||||||
|
|
||||||
}
|
|
||||||
// Load dynamic data
|
// Load dynamic data
|
||||||
loadDynamicData();
|
loadDynamicData();
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,8 +71,9 @@ void TorrentContentModel::updateFilesPriorities(const std::vector<int> &fprio)
|
||||||
std::vector<int> TorrentContentModel::getFilesPriorities() const
|
std::vector<int> TorrentContentModel::getFilesPriorities() const
|
||||||
{
|
{
|
||||||
std::vector<int> prio;
|
std::vector<int> prio;
|
||||||
for (int i=0; i<m_filesIndex.size(); ++i) {
|
prio.reserve(m_filesIndex.size());
|
||||||
prio.push_back(m_filesIndex[i]->getPriority());
|
foreach (const TorrentContentModelItem* file, m_filesIndex) {
|
||||||
|
prio.push_back(file->getPriority());
|
||||||
}
|
}
|
||||||
return prio;
|
return prio;
|
||||||
}
|
}
|
||||||
|
@ -277,22 +278,22 @@ void TorrentContentModel::setupModelData(const libtorrent::torrent_info &t)
|
||||||
|
|
||||||
// Iterate over files
|
// Iterate over files
|
||||||
for (int i=0; i<t.num_files(); ++i) {
|
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;
|
current_parent = root_folder;
|
||||||
#if LIBTORRENT_VERSION_MINOR >= 16
|
#if LIBTORRENT_VERSION_MINOR >= 16
|
||||||
QString path = QDir::cleanPath(misc::toQStringU(fentry.path)).replace("\\", "/");
|
QString path = misc::toQStringU(fentry.path);
|
||||||
#else
|
#else
|
||||||
QString path = QDir::cleanPath(misc::toQStringU(fentry.path.string())).replace("\\", "/");
|
QString path = misc::toQStringU(fentry.path.string());
|
||||||
#endif
|
#endif
|
||||||
// Iterate of parts of the path to create necessary folders
|
// Iterate of parts of the path to create necessary folders
|
||||||
QStringList pathFolders = path.split("/");
|
QStringList pathFolders = path.split(QRegExp("[/\\\\]"), QString::SkipEmptyParts);
|
||||||
pathFolders.removeAll(".unwanted");
|
pathFolders.removeLast();
|
||||||
pathFolders.takeLast();
|
|
||||||
foreach (const QString& pathPart, pathFolders) {
|
foreach (const QString& pathPart, pathFolders) {
|
||||||
|
if (pathPart == ".unwanted")
|
||||||
|
continue;
|
||||||
TorrentContentModelItem* new_parent = current_parent->childWithName(pathPart);
|
TorrentContentModelItem* new_parent = current_parent->childWithName(pathPart);
|
||||||
if (!new_parent) {
|
if (!new_parent)
|
||||||
new_parent = new TorrentContentModelItem(pathPart, current_parent);
|
new_parent = new TorrentContentModelItem(pathPart, current_parent);
|
||||||
}
|
|
||||||
current_parent = new_parent;
|
current_parent = new_parent;
|
||||||
}
|
}
|
||||||
// Actually create the file
|
// Actually create the file
|
||||||
|
|
|
@ -252,8 +252,8 @@ void TorrentContentModelItem::updatePriority()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// All child items have the same priorrity
|
// All child items have the same priority
|
||||||
// Update mine if necessary
|
// Update own if necessary
|
||||||
if (prio != getPriority())
|
if (prio != getPriority())
|
||||||
setPriority(prio);
|
setPriority(prio);
|
||||||
}
|
}
|
||||||
|
@ -285,7 +285,7 @@ void TorrentContentModelItem::appendChild(TorrentContentModelItem *item)
|
||||||
m_childItems.insert(i, item);
|
m_childItems.insert(i, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
TorrentContentModelItem* TorrentContentModelItem::child(int row)
|
TorrentContentModelItem* TorrentContentModelItem::child(int row) const
|
||||||
{
|
{
|
||||||
//Q_ASSERT(row >= 0 && row < childItems.size());
|
//Q_ASSERT(row >= 0 && row < childItems.size());
|
||||||
return m_childItems.value(row, 0);
|
return m_childItems.value(row, 0);
|
||||||
|
@ -315,7 +315,7 @@ int TorrentContentModelItem::row() const
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
TorrentContentModelItem* TorrentContentModelItem::parent()
|
TorrentContentModelItem* TorrentContentModelItem::parent() const
|
||||||
{
|
{
|
||||||
return m_parentItem;
|
return m_parentItem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,13 +80,13 @@ public:
|
||||||
bool isFolder() const;
|
bool isFolder() const;
|
||||||
|
|
||||||
void appendChild(TorrentContentModelItem *item);
|
void appendChild(TorrentContentModelItem *item);
|
||||||
TorrentContentModelItem *child(int row);
|
TorrentContentModelItem* child(int row) const;
|
||||||
int childCount() const;
|
int childCount() const;
|
||||||
int columnCount() const;
|
int columnCount() const;
|
||||||
QVariant data(int column) const;
|
QVariant data(int column) const;
|
||||||
int row() const;
|
int row() const;
|
||||||
|
|
||||||
TorrentContentModelItem *parent();
|
TorrentContentModelItem* parent() const;
|
||||||
void deleteAllChildren();
|
void deleteAllChildren();
|
||||||
const QList<TorrentContentModelItem*>& children() const;
|
const QList<TorrentContentModelItem*>& children() const;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue