diff --git a/src/base/torrentfilter.h b/src/base/torrentfilter.h index f9701e2d6..19092fb8e 100644 --- a/src/base/torrentfilter.h +++ b/src/base/torrentfilter.h @@ -61,7 +61,9 @@ public: StalledDownloading, Checking, Moving, - Errored + Errored, + + _Count }; // These mean any permutation, including no category / tag. diff --git a/src/gui/transferlistfilters/statusfilterwidget.cpp b/src/gui/transferlistfilters/statusfilterwidget.cpp index 0cbee461c..802b5535b 100644 --- a/src/gui/transferlistfilters/statusfilterwidget.cpp +++ b/src/gui/transferlistfilters/statusfilterwidget.cpp @@ -95,7 +95,7 @@ StatusFilterWidget::StatusFilterWidget(QWidget *parent, TransferListWidget *tran connect(pref, &Preferences::changed, this, &StatusFilterWidget::configure); const int storedRow = pref->getTransSelFilter(); - if (item((storedRow < count()) ? storedRow : 0)->isHidden()) + if (item(((storedRow >= 0) && (storedRow < count())) ? storedRow : 0)->isHidden()) setCurrentRow(TorrentFilter::All, QItemSelectionModel::SelectCurrent); else setCurrentRow(storedRow, QItemSelectionModel::SelectCurrent); diff --git a/src/gui/transferlistwidget.cpp b/src/gui/transferlistwidget.cpp index c0ca4371d..334854c95 100644 --- a/src/gui/transferlistwidget.cpp +++ b/src/gui/transferlistwidget.cpp @@ -1353,9 +1353,10 @@ void TransferListWidget::applyFilter(const QString &name, const TransferListMode m_sortFilterModel->setFilterRegularExpression(QRegularExpression(pattern, QRegularExpression::CaseInsensitiveOption)); } -void TransferListWidget::applyStatusFilter(int f) +void TransferListWidget::applyStatusFilter(const int filterIndex) { - m_sortFilterModel->setStatusFilter(static_cast(f)); + const auto filterType = static_cast(filterIndex); + m_sortFilterModel->setStatusFilter(((filterType >= TorrentFilter::All) && (filterType < TorrentFilter::_Count)) ? filterType : TorrentFilter::All); // Select first item if nothing is selected if (selectionModel()->selectedRows(0).empty() && (m_sortFilterModel->rowCount() > 0)) { diff --git a/src/gui/transferlistwidget.h b/src/gui/transferlistwidget.h index fc2610f46..5cc794e82 100644 --- a/src/gui/transferlistwidget.h +++ b/src/gui/transferlistwidget.h @@ -95,7 +95,7 @@ public slots: void previewSelectedTorrents(); void hideQueuePosColumn(bool hide); void applyFilter(const QString &name, const TransferListModel::Column &type); - void applyStatusFilter(int f); + void applyStatusFilter(int filterIndex); void applyCategoryFilter(const QString &category); void applyTagFilter(const std::optional &tag); void applyTrackerFilterAll();