diff options
author | Trial97 <alexandru.tripon97@gmail.com> | 2023-06-21 09:14:58 +0300 |
---|---|---|
committer | Trial97 <alexandru.tripon97@gmail.com> | 2023-06-21 09:14:58 +0300 |
commit | ba609f3600e17704f358b28dd3d5ee14319cc98c (patch) | |
tree | fcc118d7450cd6ab52af1348a73e868e981657dd /launcher/ui/pages/modplatform/ModModel.cpp | |
parent | be0df38453977c37ae8b6b241e82ace41149fdcc (diff) | |
parent | ca659136e2dc5f987bb5646eff0d8a7dd1b90774 (diff) | |
download | PrismLauncher-ba609f3600e17704f358b28dd3d5ee14319cc98c.tar.gz PrismLauncher-ba609f3600e17704f358b28dd3d5ee14319cc98c.tar.bz2 PrismLauncher-ba609f3600e17704f358b28dd3d5ee14319cc98c.zip |
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into visit_mod_page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
Diffstat (limited to 'launcher/ui/pages/modplatform/ModModel.cpp')
-rw-r--r-- | launcher/ui/pages/modplatform/ModModel.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/launcher/ui/pages/modplatform/ModModel.cpp b/launcher/ui/pages/modplatform/ModModel.cpp index afd8b292..b7537890 100644 --- a/launcher/ui/pages/modplatform/ModModel.cpp +++ b/launcher/ui/pages/modplatform/ModModel.cpp @@ -6,12 +6,14 @@ #include "minecraft/MinecraftInstance.h" #include "minecraft/PackProfile.h" +#include "minecraft/mod/ModFolderModel.h" #include <QMessageBox> +#include <algorithm> namespace ResourceDownload { -ModModel::ModModel(BaseInstance const& base_inst, ResourceAPI* api) : ResourceModel(api), m_base_instance(base_inst) {} +ModModel::ModModel(BaseInstance& base_inst, ResourceAPI* api) : ResourceModel(api), m_base_instance(base_inst) {} /******** Make data requests ********/ @@ -24,7 +26,7 @@ ResourceAPI::SearchArgs ModModel::createSearchArguments() std::optional<std::list<Version>> versions{}; - { // Version filter + { // Version filter if (!m_filter->versions.empty()) versions = m_filter->versions; } @@ -67,4 +69,14 @@ void ModModel::searchWithTerm(const QString& term, unsigned int sort, bool filte refresh(); } +bool ModModel::isPackInstalled(ModPlatform::IndexedPack::Ptr pack) const +{ + auto allMods = static_cast<MinecraftInstance&>(m_base_instance).loaderModList()->allMods(); + return std::any_of(allMods.cbegin(), allMods.cend(), [pack](Mod* mod) { + if (auto meta = mod->metadata(); meta) + return meta->provider == pack->provider && meta->project_id == pack->addonId; + return false; + }); +} + } // namespace ResourceDownload |