diff options
| -rw-r--r-- | src/filterlist.cpp | 10 | ||||
| -rw-r--r-- | src/filterlist.h | 2 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 6 |
3 files changed, 12 insertions, 6 deletions
diff --git a/src/filterlist.cpp b/src/filterlist.cpp index 66a9aed0..81f8b670 100644 --- a/src/filterlist.cpp +++ b/src/filterlist.cpp @@ -203,7 +203,7 @@ void FilterList::refresh() } } -void FilterList::setSelection(std::vector<int> categories) +void FilterList::setSelection(const std::vector<Criteria>& criteria) { for (int i = 0; i < ui->filters->topLevelItemCount(); ++i) { const auto* item = dynamic_cast<CriteriaItem*>( @@ -213,9 +213,11 @@ void FilterList::setSelection(std::vector<int> categories) continue; } - if (item->id() == CategoryFactory::UpdateAvailable) { - ui->filters->setCurrentItem(ui->filters->topLevelItem(i)); - break; + for (auto&& c : criteria) { + if (item->type() == c.type && item->id() == c.id) { + ui->filters->setCurrentItem(ui->filters->topLevelItem(i)); + break; + } } } } diff --git a/src/filterlist.h b/src/filterlist.h index e98f81a9..52b90ea7 100644 --- a/src/filterlist.h +++ b/src/filterlist.h @@ -14,7 +14,7 @@ class FilterList : public QObject public: FilterList(Ui::MainWindow* ui, CategoryFactory& factory); - void setSelection(std::vector<int> categories); + void setSelection(const std::vector<ModListSortProxy::Criteria>& criteria); void clearSelection(); void refresh(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 420242ad..096ea076 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4130,7 +4130,11 @@ void MainWindow::checkModsForUpdates() false} }); - m_Filters->setSelection({CategoryFactory::UpdateAvailable}); + m_Filters->setSelection({{ + ModListSortProxy::TYPE_SPECIAL, + CategoryFactory::UpdateAvailable, + false + }}); } } |
