summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/filterlist.cpp10
-rw-r--r--src/filterlist.h2
-rw-r--r--src/mainwindow.cpp6
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
+ }});
}
}