From 775afd6ac2788b92ecfefe8e84be4cadaa55f5ad Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Wed, 4 Apr 2007 13:58:38 +0000 Subject: [PATCH] - Implemented Start/Pause in finished list --- src/FinishedTorrents.h | 2 -- src/GUI.cpp | 71 ++++++++++++++++++++++++++++++++---------- 2 files changed, 55 insertions(+), 18 deletions(-) diff --git a/src/FinishedTorrents.h b/src/FinishedTorrents.h index 506584566..92481a6c4 100644 --- a/src/FinishedTorrents.h +++ b/src/FinishedTorrents.h @@ -52,8 +52,6 @@ class FinishedTorrents : public QWidget, public Ui::seeding{ void showProperties(const QModelIndex &index); void propertiesSelection(); void displayFinishedListMenu(const QPoint&); - - protected slots: void setRowColor(int row, const QString& color); }; diff --git a/src/GUI.cpp b/src/GUI.cpp index 6d4da84ba..6820fb49d 100644 --- a/src/GUI.cpp +++ b/src/GUI.cpp @@ -1140,25 +1140,46 @@ void GUI::pauseAll(){ // pause selected items in the list void GUI::pauseSelection(){ - QModelIndexList selectedIndexes = downloadList->selectionModel()->selectedIndexes(); + if(tabs->currentIndex() > 1) return; + QModelIndexList selectedIndexes; + bool inDownloadList = true; + if(tabs->currentIndex() == 0) { + selectedIndexes = downloadList->selectionModel()->selectedIndexes(); + } else { + selectedIndexes = finishedTorrentTab->getFinishedList()->selectionModel()->selectedIndexes(); + inDownloadList = false; + } QModelIndex index; foreach(index, selectedIndexes){ if(index.column() == NAME){ - // Get the file name - QString fileHash = DLListModel->data(DLListModel->index(index.row(), HASH)).toString(); + // Get the file hash + QString fileHash; + if(inDownloadList) + fileHash = DLListModel->data(DLListModel->index(index.row(), HASH)).toString(); + else + fileHash = finishedTorrentTab->getFinishedListModel()->data(finishedTorrentTab->getFinishedListModel()->index(index.row(), HASH)).toString(); if(!BTSession.isPaused(fileHash)){ // Pause the torrent BTSession.pauseTorrent(fileHash); // Update DL status int row = index.row(); - DLListModel->setData(DLListModel->index(row, DLSPEED), QVariant((double)0.0)); - DLListModel->setData(DLListModel->index(row, UPSPEED), QVariant((double)0.0)); - DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Paused"))); - DLListModel->setData(DLListModel->index(row, ETA), QVariant((qlonglong)-1)); + if(inDownloadList) { + DLListModel->setData(DLListModel->index(row, DLSPEED), QVariant((double)0.0)); + DLListModel->setData(DLListModel->index(row, UPSPEED), QVariant((double)0.0)); + DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Paused"))); + DLListModel->setData(DLListModel->index(row, ETA), QVariant((qlonglong)-1)); + DLListModel->setData(DLListModel->index(row, NAME), QIcon(":/Icons/skin/paused.png"), Qt::DecorationRole); + DLListModel->setData(DLListModel->index(row, SEEDSLEECH), QVariant("0/0")); + setRowColor(row, "red"); + } else { + finishedTorrentTab->getFinishedListModel()->setData(finishedTorrentTab->getFinishedListModel()->index(row, DLSPEED), QVariant((double)0.0)); + finishedTorrentTab->getFinishedListModel()->setData(finishedTorrentTab->getFinishedListModel()->index(row, UPSPEED), QVariant((double)0.0)); + finishedTorrentTab->getFinishedListModel()->setData(finishedTorrentTab->getFinishedListModel()->index(row, STATUS), QVariant(tr("Paused"))); + finishedTorrentTab->getFinishedListModel()->setData(finishedTorrentTab->getFinishedListModel()->index(row, ETA), QVariant((qlonglong)-1)); + finishedTorrentTab->getFinishedListModel()->setData(finishedTorrentTab->getFinishedListModel()->index(row, NAME), QIcon(":/Icons/skin/paused.png"), Qt::DecorationRole); + finishedTorrentTab->getFinishedListModel()->setData(finishedTorrentTab->getFinishedListModel()->index(row, SEEDSLEECH), QVariant("0/0")); + } setInfoBar(tr("'%1' paused.", "xxx.avi paused.").arg(QString(BTSession.getTorrentHandle(fileHash).name().c_str()))); - DLListModel->setData(DLListModel->index(row, NAME), QIcon(":/Icons/skin/paused.png"), Qt::DecorationRole); - DLListModel->setData(DLListModel->index(row, SEEDSLEECH), QVariant("0/0")); - setRowColor(row, "red"); } } } @@ -1184,12 +1205,24 @@ void GUI::resumeAll(){ // start selected items in the list void GUI::startSelection(){ - QModelIndexList selectedIndexes = downloadList->selectionModel()->selectedIndexes(); + if(tabs->currentIndex() > 1) return; + QModelIndexList selectedIndexes; + bool inDownloadList = true; + if(tabs->currentIndex() == 0) { + selectedIndexes = downloadList->selectionModel()->selectedIndexes(); + } else { + selectedIndexes = finishedTorrentTab->getFinishedList()->selectionModel()->selectedIndexes(); + inDownloadList = false; + } QModelIndex index; foreach(index, selectedIndexes){ if(index.column() == NAME){ - // Get the file name - QString fileHash = DLListModel->data(DLListModel->index(index.row(), HASH)).toString(); + // Get the file hash + QString fileHash; + if(inDownloadList) + fileHash = DLListModel->data(DLListModel->index(index.row(), HASH)).toString(); + else + fileHash = finishedTorrentTab->getFinishedListModel()->data(finishedTorrentTab->getFinishedListModel()->index(index.row(), HASH)).toString(); if(BTSession.isPaused(fileHash)){ // Resume the torrent BTSession.resumeTorrent(fileHash); @@ -1197,10 +1230,16 @@ void GUI::startSelection(){ QFile::remove(misc::qBittorrentPath()+"BT_backup"+QDir::separator()+fileHash+".paused"); // Update DL status int row = index.row(); - DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Connecting..."))); + if(inDownloadList) { + DLListModel->setData(DLListModel->index(row, STATUS), QVariant(tr("Connecting..."))); + DLListModel->setData(DLListModel->index(row, NAME), QVariant(QIcon(":/Icons/skin/connecting.png")), Qt::DecorationRole); + setRowColor(row, "grey"); + } else { + finishedTorrentTab->getFinishedListModel()->setData(finishedTorrentTab->getFinishedListModel()->index(row, STATUS), QVariant(tr("Finished", "i.e: Torrent has finished downloading"))); + finishedTorrentTab->getFinishedListModel()->setData(finishedTorrentTab->getFinishedListModel()->index(row, NAME), QVariant(QIcon(":/Icons/skin/seeding.png")), Qt::DecorationRole); + finishedTorrentTab->setRowColor(row, "orange"); + } setInfoBar(tr("'%1' resumed.", "e.g: xxx.avi resumed.").arg(QString(BTSession.getTorrentHandle(fileHash).name().c_str()))); - DLListModel->setData(DLListModel->index(row, NAME), QVariant(QIcon(":/Icons/skin/connecting.png")), Qt::DecorationRole); - setRowColor(row, "grey"); } } }