diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index ac5cd8f4f..a7c983c1e 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -774,6 +774,7 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv)
m_settings->registerSetting("ModMetadataDisabled", false);
m_settings->registerSetting("ModDependenciesDisabled", false);
m_settings->registerSetting("SkipModpackUpdatePrompt", false);
+ m_settings->registerSetting("ShowModIncompat", false);
// Minecraft offline player name
m_settings->registerSetting("LastOfflinePlayerName", "");
diff --git a/launcher/minecraft/mod/ResourceFolderModel.cpp b/launcher/minecraft/mod/ResourceFolderModel.cpp
index ed0e07574..2899b4eee 100644
--- a/launcher/minecraft/mod/ResourceFolderModel.cpp
+++ b/launcher/minecraft/mod/ResourceFolderModel.cpp
@@ -503,7 +503,7 @@ bool ResourceFolderModel::validateIndex(const QModelIndex& index) const
// and they only delegate to the superclass for compatible columns
QBrush ResourceFolderModel::rowBackground(int row) const
{
- if (m_resources[row]->hasIssues()) {
+ if (APPLICATION->settings()->get("ShowModIncompat").toBool() && m_resources[row]->hasIssues()) {
return { QColor(255, 0, 0, 40) };
} else {
return {};
@@ -538,8 +538,10 @@ QVariant ResourceFolderModel::data(const QModelIndex& index, int role) const
QString tooltip = m_resources[row]->internal_id();
if (column == NameColumn) {
- for (const QString& issue : at(row).issues()) {
- tooltip += "\n" + issue;
+ if (APPLICATION->settings()->get("ShowModIncompat").toBool()) {
+ for (const QString& issue : at(row).issues()) {
+ tooltip += "\n" + issue;
+ }
}
if (at(row).isSymLinkUnder(instDirPath())) {
@@ -559,7 +561,7 @@ QVariant ResourceFolderModel::data(const QModelIndex& index, int role) const
}
case Qt::DecorationRole: {
if (column == NameColumn) {
- if (at(row).hasIssues()) {
+ if (APPLICATION->settings()->get("ShowModIncompat").toBool() && at(row).hasIssues()) {
return QIcon::fromTheme("status-bad");
} else if (at(row).isSymLinkUnder(instDirPath()) || at(row).isMoreThanOneHardLink()) {
return QIcon::fromTheme("status-yellow");
diff --git a/launcher/ui/pages/global/LauncherPage.cpp b/launcher/ui/pages/global/LauncherPage.cpp
index 7a0f11c83..d6d15a2c4 100644
--- a/launcher/ui/pages/global/LauncherPage.cpp
+++ b/launcher/ui/pages/global/LauncherPage.cpp
@@ -244,6 +244,7 @@ void LauncherPage::applySettings()
// Mods
s->set("ModMetadataDisabled", !ui->metadataEnableBtn->isChecked());
s->set("ModDependenciesDisabled", !ui->dependenciesEnableBtn->isChecked());
+ s->set("ShowModIncompat", ui->showModIncompatCheckBox->isChecked());
s->set("SkipModpackUpdatePrompt", !ui->modpackUpdatePromptBtn->isChecked());
}
void LauncherPage::loadSettings()
@@ -293,6 +294,7 @@ void LauncherPage::loadSettings()
ui->metadataEnableBtn->setChecked(!s->get("ModMetadataDisabled").toBool());
ui->metadataWarningLabel->setHidden(ui->metadataEnableBtn->isChecked());
ui->dependenciesEnableBtn->setChecked(!s->get("ModDependenciesDisabled").toBool());
+ ui->showModIncompatCheckBox->setChecked(s->get("ShowModIncompat").toBool());
ui->modpackUpdatePromptBtn->setChecked(!s->get("SkipModpackUpdatePrompt").toBool());
}
diff --git a/launcher/ui/pages/global/LauncherPage.ui b/launcher/ui/pages/global/LauncherPage.ui
index 0debe3f4d..1e7686e5f 100644
--- a/launcher/ui/pages/global/LauncherPage.ui
+++ b/launcher/ui/pages/global/LauncherPage.ui
@@ -41,9 +41,9 @@
0
- 0
+ -149
746
- 1194
+ 1222
@@ -418,6 +418,16 @@
+ -
+
+
+ Currently this just shows mods which are not marked as compatible with the current Minecraft version.
+
+
+ Detect and show mod incompatibilities (experimental)
+
+
+
-
@@ -671,7 +681,7 @@
-
+