aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-12-23 17:28:42 -0300
committerflow <flowlnlnln@gmail.com>2023-01-13 16:23:08 -0300
commitc3f0139f76b8aacef685c8c97d54f2098bbca5c4 (patch)
tree264a92c7fcb103bcce60c9a76c7ed87d437e9b10
parent563fe8d51529bc4c769f5a08bc037fc40cbfe852 (diff)
downloadPrismLauncher-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.cpp9
-rw-r--r--launcher/ui/pages/modplatform/ResourceModel.cpp15
-rw-r--r--launcher/ui/pages/modplatform/ResourceModel.h2
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;