From afb9ebcd999e2f290ddf81f13ce4a5b4126c40c2 Mon Sep 17 00:00:00 2001
From: Sefa Eyeoglu <contact@scrumplex.net>
Date: Mon, 8 Aug 2022 23:40:25 +0200
Subject: fix: distinguish Coremods

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
---
 launcher/ui/pages/instance/ModFolderPage.cpp | 50 ++++++++++++++--------------
 launcher/ui/pages/instance/ModFolderPage.h   |  8 ++++-
 2 files changed, 32 insertions(+), 26 deletions(-)

(limited to 'launcher/ui')

diff --git a/launcher/ui/pages/instance/ModFolderPage.cpp b/launcher/ui/pages/instance/ModFolderPage.cpp
index 1b2cde0c..45678db1 100644
--- a/launcher/ui/pages/instance/ModFolderPage.cpp
+++ b/launcher/ui/pages/instance/ModFolderPage.cpp
@@ -112,10 +112,6 @@ ModFolderPage::ModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel>
     }
 }
 
-CoreModFolderPage::CoreModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel> mods, QWidget* parent)
-    : ModFolderPage(inst, mods, parent)
-{}
-
 void ModFolderPage::runningStateChanged(bool running)
 {
     ExternalResourcesPage::runningStateChanged(running);
@@ -128,27 +124,6 @@ bool ModFolderPage::shouldDisplay() const
     return true;
 }
 
-bool CoreModFolderPage::shouldDisplay() const
-{
-    if (ModFolderPage::shouldDisplay()) {
-        auto inst = dynamic_cast<MinecraftInstance*>(m_instance);
-        if (!inst)
-            return true;
-
-        auto version = inst->getPackProfile();
-
-        if (!version)
-            return true;
-        if (!version->getComponent("net.minecraftforge"))
-            return false;
-        if (!version->getComponent("net.minecraft"))
-            return false;
-        if (version->getComponent("net.minecraft")->getReleaseDateTime() < g_VersionFilterData.legacyCutoffDate)
-            return true;
-    }
-    return false;
-}
-
 void ModFolderPage::installMods()
 {
     if (!m_controlsEnabled)
@@ -252,3 +227,28 @@ void ModFolderPage::updateMods()
         m_model->update();
     }
 }
+
+CoreModFolderPage::CoreModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel> mods, QWidget* parent)
+    : ModFolderPage(inst, mods, parent)
+{}
+
+bool CoreModFolderPage::shouldDisplay() const
+{
+    if (ModFolderPage::shouldDisplay()) {
+        auto inst = dynamic_cast<MinecraftInstance*>(m_instance);
+        if (!inst)
+            return true;
+
+        auto version = inst->getPackProfile();
+
+        if (!version)
+            return true;
+        if (!version->getComponent("net.minecraftforge"))
+            return false;
+        if (!version->getComponent("net.minecraft"))
+            return false;
+        if (version->getComponent("net.minecraft")->getReleaseDateTime() < g_VersionFilterData.legacyCutoffDate)
+            return true;
+    }
+    return false;
+}
diff --git a/launcher/ui/pages/instance/ModFolderPage.h b/launcher/ui/pages/instance/ModFolderPage.h
index 93889707..7e305951 100644
--- a/launcher/ui/pages/instance/ModFolderPage.h
+++ b/launcher/ui/pages/instance/ModFolderPage.h
@@ -64,5 +64,11 @@ class CoreModFolderPage : public ModFolderPage {
    public:
     explicit CoreModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel> mods, QWidget* parent = 0);
     virtual ~CoreModFolderPage() = default;
-    virtual bool shouldDisplay() const;
+
+    virtual QString displayName() const override { return tr("Core mods"); }
+    virtual QIcon icon() const override { return APPLICATION->getThemedIcon("coremods"); }
+    virtual QString id() const override { return "coremods"; }
+    virtual QString helpPage() const override { return "Core-mods"; }
+
+    virtual bool shouldDisplay() const override;
 };
-- 
cgit