|
|
@ -155,6 +155,7 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent){ |
|
|
|
// Configure BT session according to options
|
|
|
|
// Configure BT session according to options
|
|
|
|
configureSession(true); |
|
|
|
configureSession(true); |
|
|
|
force_exit = false; |
|
|
|
force_exit = false; |
|
|
|
|
|
|
|
connect(&BTSession, SIGNAL(updateFileSize(QString)), this, SLOT(updateFileSize(QString))); |
|
|
|
// Resume unfinished torrents
|
|
|
|
// Resume unfinished torrents
|
|
|
|
BTSession.resumeUnfinishedTorrents(); |
|
|
|
BTSession.resumeUnfinishedTorrents(); |
|
|
|
// Add torrent given on command line
|
|
|
|
// Add torrent given on command line
|
|
|
@ -959,6 +960,18 @@ void GUI::on_actionDelete_triggered(){ |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
size_type GUI::torrentEffectiveSize(QString hash) const{ |
|
|
|
|
|
|
|
torrent_handle h = BTSession.getTorrentHandle(hash); |
|
|
|
|
|
|
|
torrent_info t = h.get_torrent_info(); |
|
|
|
|
|
|
|
unsigned short nbFiles = t.num_files(); |
|
|
|
|
|
|
|
size_type effective_size = 0; |
|
|
|
|
|
|
|
for(unsigned int i=0; i<nbFiles; ++i){ |
|
|
|
|
|
|
|
if(h.piece_priority(i) != 0) |
|
|
|
|
|
|
|
effective_size += t.file_at(i).size; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return effective_size; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Called when a torrent is added
|
|
|
|
// Called when a torrent is added
|
|
|
|
void GUI::torrentAdded(const QString& path, torrent_handle& h, bool fastResume){ |
|
|
|
void GUI::torrentAdded(const QString& path, torrent_handle& h, bool fastResume){ |
|
|
|
QString hash = QString(misc::toString(h.info_hash()).c_str()); |
|
|
|
QString hash = QString(misc::toString(h.info_hash()).c_str()); |
|
|
@ -970,7 +983,7 @@ void GUI::torrentAdded(const QString& path, torrent_handle& h, bool fastResume){ |
|
|
|
// Adding torrent to download list
|
|
|
|
// Adding torrent to download list
|
|
|
|
DLListModel->insertRow(row); |
|
|
|
DLListModel->insertRow(row); |
|
|
|
DLListModel->setData(DLListModel->index(row, NAME), QVariant(h.name().c_str())); |
|
|
|
DLListModel->setData(DLListModel->index(row, NAME), QVariant(h.name().c_str())); |
|
|
|
DLListModel->setData(DLListModel->index(row, SIZE), QVariant((qlonglong)h.get_torrent_info().total_size())); |
|
|
|
DLListModel->setData(DLListModel->index(row, SIZE), QVariant((qlonglong)torrentEffectiveSize(hash))); |
|
|
|
DLListModel->setData(DLListModel->index(row, DLSPEED), QVariant((double)0.)); |
|
|
|
DLListModel->setData(DLListModel->index(row, DLSPEED), QVariant((double)0.)); |
|
|
|
DLListModel->setData(DLListModel->index(row, UPSPEED), QVariant((double)0.)); |
|
|
|
DLListModel->setData(DLListModel->index(row, UPSPEED), QVariant((double)0.)); |
|
|
|
DLListModel->setData(DLListModel->index(row, SEEDSLEECH), QVariant("0/0")); |
|
|
|
DLListModel->setData(DLListModel->index(row, SEEDSLEECH), QVariant("0/0")); |
|
|
@ -1070,6 +1083,11 @@ void GUI::showProperties(const QModelIndex &index){ |
|
|
|
prop->show(); |
|
|
|
prop->show(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void GUI::updateFileSize(QString hash){ |
|
|
|
|
|
|
|
int row = getRowFromHash(hash); |
|
|
|
|
|
|
|
DLListModel->setData(DLListModel->index(row, SIZE), QVariant((qlonglong)torrentEffectiveSize(hash))); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Set BT session configuration
|
|
|
|
// Set BT session configuration
|
|
|
|
void GUI::configureSession(bool deleteOptions){ |
|
|
|
void GUI::configureSession(bool deleteOptions){ |
|
|
|
qDebug("Configuring session"); |
|
|
|
qDebug("Configuring session"); |
|
|
|