diff options
author | DioEgizio <83089242+DioEgizio@users.noreply.github.com> | 2023-06-16 09:56:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-16 09:56:51 +0200 |
commit | 412349ac58be5729b72a80c2cc0b7f5342667fea (patch) | |
tree | 1a107e14453369bef323eaad82845f90e056eb8d /launcher/ui/pages/modplatform/ModModel.cpp | |
parent | 000f4386a2416c8cc2ae4871ea4aeaedd9a65e1a (diff) | |
parent | 98a07da39bbc41529b67cf515849d403280af07c (diff) | |
download | PrismLauncher-412349ac58be5729b72a80c2cc0b7f5342667fea.tar.gz PrismLauncher-412349ac58be5729b72a80c2cc0b7f5342667fea.tar.bz2 PrismLauncher-412349ac58be5729b72a80c2cc0b7f5342667fea.zip |
Merge pull request #1135 from Trial97/installed_mods
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 |