refactor(RD): add helper in ResourceModel to find current sorting

Signed-off-by: flow <flowlnlnln@gmail.com>
This commit is contained in:
flow 2022-12-23 17:28:42 -03:00
parent 563fe8d515
commit c3f0139f76
No known key found for this signature in database
GPG Key ID: 8D0F221F0A59F469
3 changed files with 18 additions and 8 deletions

View File

@ -21,20 +21,13 @@ ResourceAPI::SearchArgs ModModel::createSearchArguments()
Q_ASSERT(m_filter);
std::optional<std::list<Version>> versions{};
std::optional<ResourceAPI::SortingMethod> sort{};
{ // Version filter
if (!m_filter->versions.empty())
versions = m_filter->versions;
}
{ // Sorting method
auto sorting_methods = getSortingMethods();
auto method = std::find_if(sorting_methods.begin(), sorting_methods.end(),
[this](auto const& e) { return m_current_sort_index == e.index; });
if (method != sorting_methods.end())
sort = *method;
}
auto sort = getCurrentSortingMethodByIndex();
return { ModPlatform::ResourceType::MOD, m_next_search_offset, m_search_term, sort, profile->getModLoaders(), versions };
}

View File

@ -222,6 +222,21 @@ void ResourceModel::runInfoJob(Task::Ptr ptr)
m_current_info_job.run();
}
std::optional<ResourceAPI::SortingMethod> ResourceModel::getCurrentSortingMethodByIndex() const
{
std::optional<ResourceAPI::SortingMethod> sort{};
{ // Find sorting method by ID
auto sorting_methods = getSortingMethods();
auto method = std::find_if(sorting_methods.constBegin(), sorting_methods.constEnd(),
[this](auto const& e) { return m_current_sort_index == e.index; });
if (method != sorting_methods.constEnd())
sort = *method;
}
return sort;
}
std::optional<QIcon> ResourceModel::getIcon(QModelIndex& index, const QUrl& url)
{
QPixmap pixmap;

View File

@ -84,6 +84,8 @@ class ResourceModel : public QAbstractListModel {
void runSearchJob(NetJob::Ptr);
void runInfoJob(Task::Ptr);
[[nodiscard]] auto getCurrentSortingMethodByIndex() const -> std::optional<ResourceAPI::SortingMethod>;
protected:
const BaseInstance& m_base_instance;