From b433882ac1eb91091e90b51ed298eb9d3d7fb406 Mon Sep 17 00:00:00 2001 From: Jamie Mansfield Date: Wed, 19 Oct 2022 12:49:24 +0100 Subject: [PATCH 1/2] NOISSUE Add missing QMap include This should fix the build. --- launcher/modplatform/atlauncher/ATLPackManifest.h | 1 + 1 file changed, 1 insertion(+) diff --git a/launcher/modplatform/atlauncher/ATLPackManifest.h b/launcher/modplatform/atlauncher/ATLPackManifest.h index 3a5d4240..b6536908 100644 --- a/launcher/modplatform/atlauncher/ATLPackManifest.h +++ b/launcher/modplatform/atlauncher/ATLPackManifest.h @@ -16,6 +16,7 @@ #pragma once +#include #include #include #include From dbe7d9ea2e7197946bab1faf1e15554b16a085c3 Mon Sep 17 00:00:00 2001 From: Jamie Mansfield Date: Mon, 2 May 2022 20:27:20 +0100 Subject: [PATCH 2/2] NOISSUE Display mod colours in optional mod dialog --- launcher/modplatform/atlauncher/ATLPackManifest.cpp | 9 +++++++++ launcher/modplatform/atlauncher/ATLPackManifest.h | 2 ++ .../modplatform/atlauncher/AtlOptionalModDialog.cpp | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/launcher/modplatform/atlauncher/ATLPackManifest.cpp b/launcher/modplatform/atlauncher/ATLPackManifest.cpp index fdd06087..f8f7c2f4 100644 --- a/launcher/modplatform/atlauncher/ATLPackManifest.cpp +++ b/launcher/modplatform/atlauncher/ATLPackManifest.cpp @@ -178,6 +178,7 @@ static void loadVersionMod(ATLauncher::VersionMod & p, QJsonObject & obj) { p.depends.append(Json::requireValueString(depends)); } } + p.colour = Json::ensureString(obj, QString("colour"), ""); p.warning = Json::ensureString(obj, QString("warning"), ""); p.client = Json::ensureBoolean(obj, QString("client"), false); @@ -252,6 +253,14 @@ void ATLauncher::loadVersion(PackVersion & v, QJsonObject & obj) loadVersionConfigs(v.configs, configsObj); } + if(obj.contains("colours")) { + auto colourObj = Json::requireObject(obj, "colours"); + + for (const auto &key : colourObj.keys()) { + v.colours[key] = Json::requireValueString(colourObj.value(key), "colour"); + } + } + if(obj.contains("warnings")) { auto warningsObj = Json::requireObject(obj, "warnings"); diff --git a/launcher/modplatform/atlauncher/ATLPackManifest.h b/launcher/modplatform/atlauncher/ATLPackManifest.h index b6536908..4efa4d38 100644 --- a/launcher/modplatform/atlauncher/ATLPackManifest.h +++ b/launcher/modplatform/atlauncher/ATLPackManifest.h @@ -110,6 +110,7 @@ struct VersionMod bool library; QString group; QVector depends; + QString colour; QString warning; bool client; @@ -155,6 +156,7 @@ struct PackVersion QVector mods; VersionConfigs configs; + QMap colours; QMap warnings; VersionMessages messages; }; diff --git a/launcher/ui/pages/modplatform/atlauncher/AtlOptionalModDialog.cpp b/launcher/ui/pages/modplatform/atlauncher/AtlOptionalModDialog.cpp index 153097eb..c0aaf450 100644 --- a/launcher/ui/pages/modplatform/atlauncher/AtlOptionalModDialog.cpp +++ b/launcher/ui/pages/modplatform/atlauncher/AtlOptionalModDialog.cpp @@ -73,6 +73,11 @@ QVariant AtlOptionalModListModel::data(const QModelIndex &index, int role) const return mod.description; } } + else if (role == Qt::ForegroundRole) { + if (!mod.colour.isEmpty() && m_version.colours.contains(mod.colour)) { + return QColor(QString("#%1").arg(m_version.colours[mod.colour])); + } + } else if (role == Qt::CheckStateRole) { if (index.column() == EnabledColumn) { return m_selection[mod.name] ? Qt::Checked : Qt::Unchecked;