diff options
author | flow <flowlnlnln@gmail.com> | 2022-12-23 17:28:42 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2023-01-13 16:23:08 -0300 |
commit | c3f0139f76b8aacef685c8c97d54f2098bbca5c4 (patch) | |
tree | 264a92c7fcb103bcce60c9a76c7ed87d437e9b10 | |
parent | 563fe8d51529bc4c769f5a08bc037fc40cbfe852 (diff) | |
download | PrismLauncher-c3f0139f76b8aacef685c8c97d54f2098bbca5c4.tar.gz PrismLauncher-c3f0139f76b8aacef685c8c97d54f2098bbca5c4.tar.bz2 PrismLauncher-c3f0139f76b8aacef685c8c97d54f2098bbca5c4.zip |
refactor(RD): add helper in ResourceModel to find current sorting
Signed-off-by: flow <flowlnlnln@gmail.com>
-rw-r--r-- | launcher/ui/pages/modplatform/ModModel.cpp | 9 | ||||
-rw-r--r-- | launcher/ui/pages/modplatform/ResourceModel.cpp | 15 | ||||
-rw-r--r-- | launcher/ui/pages/modplatform/ResourceModel.h | 2 |
3 files changed, 18 insertions, 8 deletions
diff --git a/launcher/ui/pages/modplatform/ModModel.cpp b/launcher/ui/pages/modplatform/ModModel.cpp index 29cb2132..beb8aec1 100644 --- a/launcher/ui/pages/modplatform/ModModel.cpp +++ b/launcher/ui/pages/modplatform/ModModel.cpp @@ -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 }; } diff --git a/launcher/ui/pages/modplatform/ResourceModel.cpp b/launcher/ui/pages/modplatform/ResourceModel.cpp index 5bbd39d3..d9c30912 100644 --- a/launcher/ui/pages/modplatform/ResourceModel.cpp +++ b/launcher/ui/pages/modplatform/ResourceModel.cpp @@ -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; diff --git a/launcher/ui/pages/modplatform/ResourceModel.h b/launcher/ui/pages/modplatform/ResourceModel.h index 5f9ce36d..05aa6a94 100644 --- a/launcher/ui/pages/modplatform/ResourceModel.h +++ b/launcher/ui/pages/modplatform/ResourceModel.h @@ -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; |