From 89f34b4ae7b4fc81424d0805cbd2daea9de1b1ec Mon Sep 17 00:00:00 2001 From: John Sebastian Peterson Date: Sun, 21 Dec 2014 21:05:39 +0100 Subject: [PATCH] Add 'unpaused' torrent filter the inverse of paused because complete and active have an inverse --- src/Icons/skin/unpaused.png | Bin 0 -> 431 bytes src/icons.qrc | 1 + src/torrentfilterenum.h | 2 +- src/transferlistfilterswidget.cpp | 4 ++++ src/transferlistsortmodel.cpp | 3 +++ 5 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 src/Icons/skin/unpaused.png diff --git a/src/Icons/skin/unpaused.png b/src/Icons/skin/unpaused.png new file mode 100644 index 0000000000000000000000000000000000000000..a4b0833b4dd2a2210428f28b5fe6c5f8a2b3cd0f GIT binary patch literal 431 zcmV;g0Z{&lP)_Tv|5WB zl5l4Bnmsco)bl*@AL;P8uA3yuQfs|l_kBMHq9}^vcqt&IEE2>_IJ&jR#$7`&`V&A; z4sgyHV>r69CU=hH;Jy})<{85x*lC~*coHB8{2g3{ES&Bo!X)z(eAdu(p+YdBS%;ro_|Q11y3CTSnaai2Y1 zN1UnoL*v>gm5D)gDMfa7K6!qqt{Xi$pp>eB3^HgiOgm>mJQZJW32X%b9Vz<&3*TM@ zkDc(>#!*TO0J{h}J?Xto_@YkhAj~Qg!WXgV*QmDCY&Nm@TVPAmGzZ{g+xAibZ1DaN ZU;qVS+R{V+8h`)*002ovPDHLkV1jN_wMGB{ literal 0 HcmV?d00001 diff --git a/src/icons.qrc b/src/icons.qrc index b6f4593e2..928354efe 100644 --- a/src/icons.qrc +++ b/src/icons.qrc @@ -361,6 +361,7 @@ Icons/skin/tabs.gif Icons/skin/toolbox-divider.gif Icons/skin/toolbox-divider2.gif + Icons/skin/unpaused.png Icons/skin/uploading.png Icons/oxygen/system-log-out.png Icons/oxygen/go-bottom.png diff --git a/src/torrentfilterenum.h b/src/torrentfilterenum.h index 67e59b7e0..17f88af6e 100644 --- a/src/torrentfilterenum.h +++ b/src/torrentfilterenum.h @@ -32,6 +32,6 @@ #define TORRENTFILTERENUM_H namespace TorrentFilter { -enum TorrentFilter {ALL, DOWNLOADING, COMPLETED, PAUSED, ACTIVE, INACTIVE}; +enum TorrentFilter {ALL, DOWNLOADING, COMPLETED, PAUSED, UNPAUSED, ACTIVE, INACTIVE}; } #endif // TORRENTFILTERENUM_H diff --git a/src/transferlistfilterswidget.cpp b/src/transferlistfilterswidget.cpp index f52f13d5a..c247b1a15 100644 --- a/src/transferlistfilterswidget.cpp +++ b/src/transferlistfilterswidget.cpp @@ -194,6 +194,9 @@ TransferListFiltersWidget::TransferListFiltersWidget(QWidget *parent, TransferLi QListWidgetItem *paused = new QListWidgetItem(statusFilters); paused->setData(Qt::DisplayRole, QVariant(tr("Paused") + " (0)")); paused->setData(Qt::DecorationRole, QIcon(":/Icons/skin/paused.png")); + QListWidgetItem *unpaused = new QListWidgetItem(statusFilters); + unpaused->setData(Qt::DisplayRole, QVariant(tr("Unpaused") + " (0)")); + unpaused->setData(Qt::DecorationRole, QIcon(":/Icons/skin/unpaused.png")); QListWidgetItem *active = new QListWidgetItem(statusFilters); active->setData(Qt::DisplayRole, QVariant(tr("Active") + " (0)")); active->setData(Qt::DecorationRole, QIcon(":/Icons/skin/filteractive.png")); @@ -265,6 +268,7 @@ void TransferListFiltersWidget::updateTorrentNumbers() { statusFilters->item(TorrentFilter::DOWNLOADING)->setData(Qt::DisplayRole, QVariant(tr("Downloading")+" ("+QString::number(report.nb_downloading)+")")); statusFilters->item(TorrentFilter::COMPLETED)->setData(Qt::DisplayRole, QVariant(tr("Completed")+" ("+QString::number(report.nb_seeding)+")")); statusFilters->item(TorrentFilter::PAUSED)->setData(Qt::DisplayRole, QVariant(tr("Paused")+" ("+QString::number(report.nb_paused)+")")); + statusFilters->item(TorrentFilter::UNPAUSED)->setData(Qt::DisplayRole, QVariant(tr("Unpaused")+" ("+QString::number(report.nb_active+report.nb_inactive-report.nb_paused)+")")); statusFilters->item(TorrentFilter::ACTIVE)->setData(Qt::DisplayRole, QVariant(tr("Active")+" ("+QString::number(report.nb_active)+")")); statusFilters->item(TorrentFilter::INACTIVE)->setData(Qt::DisplayRole, QVariant(tr("Inactive")+" ("+QString::number(report.nb_inactive)+")")); } diff --git a/src/transferlistsortmodel.cpp b/src/transferlistsortmodel.cpp index 56e5cf79c..890b44208 100644 --- a/src/transferlistsortmodel.cpp +++ b/src/transferlistsortmodel.cpp @@ -222,6 +222,9 @@ bool TransferListSortModel::matchStatusFilter(int sourceRow, const QModelIndex & case TorrentFilter::PAUSED: return (state == TorrentModelItem::STATE_PAUSED_UP || state == TorrentModelItem::STATE_PAUSED_DL); + case TorrentFilter::UNPAUSED: + return (state != TorrentModelItem::STATE_PAUSED_UP && state != TorrentModelItem::STATE_PAUSED_DL); + case TorrentFilter::ACTIVE: if (state == TorrentModelItem::STATE_STALLED_DL) { const qulonglong up_speed = model->index(sourceRow, TorrentModelItem::TR_UPSPEED, sourceParent).data().toULongLong();