diff --git a/src/Icons/skin/unpaused.png b/src/Icons/skin/unpaused.png new file mode 100644 index 000000000..a4b0833b4 Binary files /dev/null and b/src/Icons/skin/unpaused.png differ 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();