aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/pages/modplatform/ModModel.cpp
diff options
context:
space:
mode:
authorDioEgizio <83089242+DioEgizio@users.noreply.github.com>2023-06-16 09:56:51 +0200
committerGitHub <noreply@github.com>2023-06-16 09:56:51 +0200
commit412349ac58be5729b72a80c2cc0b7f5342667fea (patch)
tree1a107e14453369bef323eaad82845f90e056eb8d /launcher/ui/pages/modplatform/ModModel.cpp
parent000f4386a2416c8cc2ae4871ea4aeaedd9a65e1a (diff)
parent98a07da39bbc41529b67cf515849d403280af07c (diff)
downloadPrismLauncher-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.cpp16
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