diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.kt b/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.kt index 4dd1dc3fe613..911f9e1b7b7b 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.kt +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.kt @@ -241,6 +241,7 @@ class LafManagerImpl(private val coroutineScope: CoroutineScope) : LafManager(), } override fun loadState(element: Element) { + replaceThemeIfSelected(element) autodetect = element.getAttributeBooleanValue(ATTRIBUTE_AUTODETECT) preferredLightThemeId = element.getChild(ELEMENT_PREFERRED_LIGHT_LAF)?.getAttributeValue(ATTRIBUTE_THEME_NAME) preferredDarkThemeId = element.getChild(ELEMENT_PREFERRED_DARK_LAF)?.getAttributeValue(ATTRIBUTE_THEME_NAME) @@ -344,6 +345,22 @@ class LafManagerImpl(private val coroutineScope: CoroutineScope) : LafManager(), return element } + //IDEA-331405 Hide IntelliJ Light from new UI + private fun replaceThemeIfSelected(element: Element) { + val replacementThemeId = "ExperimentalLight" + val newThemeId = "ExperimentalLightWithLightHeader" + val prefLightThemeElement = element.getChild(ELEMENT_PREFERRED_LIGHT_LAF) + val preferredLightTheme = prefLightThemeElement?.getAttributeValue(ATTRIBUTE_THEME_NAME) + if (preferredLightTheme == replacementThemeId) { + prefLightThemeElement.setAttribute(ATTRIBUTE_THEME_NAME, newThemeId) + } + val currentThemeElement = element.getChild(ELEMENT_LAF) + val currentTheme = currentThemeElement?.getAttributeValue(ATTRIBUTE_THEME_NAME) + if (currentTheme == replacementThemeId) { + currentThemeElement.setAttribute(ATTRIBUTE_THEME_NAME, newThemeId) + } + } + override fun getInstalledLookAndFeels(): Array { return UiThemeProviderListManager.getInstance().getLaFs().map { it as UIThemeLookAndFeelInfoImpl }.toList().toTypedArray() } diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/ThemeListProviderImpl.kt b/platform/platform-impl/src/com/intellij/ide/ui/laf/ThemeListProviderImpl.kt index 9f3bbe26f30b..9a5ee274b960 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/ThemeListProviderImpl.kt +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/ThemeListProviderImpl.kt @@ -10,7 +10,8 @@ private class ThemeListProviderImpl : ThemeListProvider { val result = mutableListOf>() val uiThemeProviderListManager = UiThemeProviderListManager.getInstance() if (ExperimentalUI.isNewUI()) { - result.add(uiThemeProviderListManager.getThemeListForTargetUI(TargetUIType.NEW).sortedBy { it.name }.toList()) + result.add(uiThemeProviderListManager.getThemeListForTargetUI(TargetUIType.NEW) + .filterNot { it.id == "ExperimentalLight" }.sortedBy { it.name }.toList()) } result.add((uiThemeProviderListManager.getThemeListForTargetUI(TargetUIType.CLASSIC).filterNot { it.id == "IntelliJ" } + uiThemeProviderListManager.getThemeListForTargetUI(TargetUIType.UNSPECIFIED)).sortedBy { it.name }.toList())