diff --git a/platform/platform-api/src/com/intellij/ide/ui/ThemesListProvider.kt b/platform/platform-api/src/com/intellij/ide/ui/ThemeListProvider.kt similarity index 82% rename from platform/platform-api/src/com/intellij/ide/ui/ThemesListProvider.kt rename to platform/platform-api/src/com/intellij/ide/ui/ThemeListProvider.kt index 42cb24a95d62..2b206f738bf6 100644 --- a/platform/platform-api/src/com/intellij/ide/ui/ThemesListProvider.kt +++ b/platform/platform-api/src/com/intellij/ide/ui/ThemeListProvider.kt @@ -10,9 +10,9 @@ import org.jetbrains.annotations.ApiStatus * Provides all available LaFs sorted and grouped for popups/combobox lists */ @ApiStatus.Internal -interface ThemesListProvider { +interface ThemeListProvider { companion object { - fun getInstance(): ThemesListProvider = ApplicationManager.getApplication().service() + fun getInstance(): ThemeListProvider = ApplicationManager.getApplication().service() } /** diff --git a/platform/platform-impl/src/com/intellij/ide/actions/QuickChangeLookAndFeel.java b/platform/platform-impl/src/com/intellij/ide/actions/QuickChangeLookAndFeel.java index 99d2da75c338..fbb7c1db47af 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/QuickChangeLookAndFeel.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/QuickChangeLookAndFeel.java @@ -5,7 +5,7 @@ import com.intellij.icons.AllIcons; import com.intellij.ide.IdeBundle; import com.intellij.ide.ui.LafManager; import com.intellij.ide.ui.LafManagerListener; -import com.intellij.ide.ui.ThemesListProvider; +import com.intellij.ide.ui.ThemeListProvider; import com.intellij.ide.ui.laf.UIThemeLookAndFeelInfo; import com.intellij.ide.ui.laf.darcula.DarculaInstaller; import com.intellij.openapi.Disposable; @@ -37,7 +37,7 @@ public final class QuickChangeLookAndFeel extends QuickSwitchSchemeAction implem protected void fillActions(Project project, @NotNull DefaultActionGroup group, @NotNull DataContext dataContext) { UIThemeLookAndFeelInfo initialLaf = LafManager.getInstance().getCurrentUIThemeLookAndFeel(); - for (List list : ThemesListProvider.Companion.getInstance().getShownThemes()) { + for (List list : ThemeListProvider.Companion.getInstance().getShownThemes()) { if (group.getChildrenCount() > 0) group.addSeparator(); for (UIManager.LookAndFeelInfo lf : list) group.add(new LafChangeAction(lf, initialLaf == lf)); } 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 3b9f694af0f8..142a78ac8afe 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 @@ -436,7 +436,7 @@ class LafManagerImpl(private val coroutineScope: CoroutineScope) : LafManager(), private val allReferences: List get() { val result = ArrayList() - for (group in ThemesListProvider.getInstance().getShownThemes()) { + for (group in ThemeListProvider.getInstance().getShownThemes()) { if (!result.isEmpty()) { result.add(SEPARATOR) } @@ -916,7 +916,7 @@ class LafManagerImpl(private val coroutineScope: CoroutineScope) : LafManager(), get() { val lightLaFs = ArrayList() val darkLaFs = ArrayList() - for (lafInfo in ThemesListProvider.getInstance().getShownThemes().flatten()) { + for (lafInfo in ThemeListProvider.getInstance().getShownThemes().flatten()) { if (lafInfo.theme.isDark) { darkLaFs.add(lafInfo) } 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 new file mode 100644 index 000000000000..3eca936d8783 --- /dev/null +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/ThemeListProviderImpl.kt @@ -0,0 +1,20 @@ +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.ide.ui.laf + +import com.intellij.ide.ui.LafManager +import com.intellij.ide.ui.TargetUIType +import com.intellij.ide.ui.ThemeListProvider +import com.intellij.ui.ExperimentalUI + +private class ThemeListProviderImpl : ThemeListProvider { + override fun getShownThemes(): List> { + val lafManager = LafManager.getInstance() as? LafManagerImpl ?: return emptyList() + val result = mutableListOf>() + if (ExperimentalUI.isNewUI()) { + result.add(lafManager.getThemeListForTargetUI(TargetUIType.NEW).sortedBy { it.name }) + } + result.add((lafManager.getThemeListForTargetUI(TargetUIType.CLASSIC).filterNot { it.theme.id == "IntelliJ" } + + lafManager.getThemeListForTargetUI(TargetUIType.UNSPECIFIED)).sortedBy { it.name }) + return result + } +} \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/ThemesListProviderImpl.kt b/platform/platform-impl/src/com/intellij/ide/ui/laf/ThemesListProviderImpl.kt deleted file mode 100644 index 634b7ba2e7d4..000000000000 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/ThemesListProviderImpl.kt +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.ide.ui.laf - -import com.intellij.ide.ui.LafManager -import com.intellij.ide.ui.TargetUIType -import com.intellij.ide.ui.ThemesListProvider -import com.intellij.ui.ExperimentalUI - -class ThemesListProviderImpl : ThemesListProvider { - override fun getShownThemes(): List> { - val lmi = LafManager.getInstance() as? LafManagerImpl ?: return listOf() - val result = mutableListOf>() - - if (ExperimentalUI.isNewUI()) { - result.add(lmi.getThemeListForTargetUI(TargetUIType.NEW).sortedBy { it.name }) - } - result.add((lmi.getThemeListForTargetUI(TargetUIType.CLASSIC).filterNot { it.theme.id == "IntelliJ" } - + lmi.getThemeListForTargetUI(TargetUIType.UNSPECIFIED)).sortedBy { it.name }) - return result - } - -} \ No newline at end of file diff --git a/platform/platform-resources/src/META-INF/PlatformLangComponents.xml b/platform/platform-resources/src/META-INF/PlatformLangComponents.xml index f66ded097ea3..cd12c0dafa5c 100644 --- a/platform/platform-resources/src/META-INF/PlatformLangComponents.xml +++ b/platform/platform-resources/src/META-INF/PlatformLangComponents.xml @@ -48,8 +48,8 @@ serviceImplementation="com.intellij.ide.ui.laf.LafManagerImpl" headlessImplementation="com.intellij.ide.ui.laf.HeadlessLafManagerImpl"/> - +