From db6af3e61afb7099080c467575490c99e34e8a1c Mon Sep 17 00:00:00 2001 From: Alexander Kuznetsov Date: Wed, 11 Jun 2025 12:25:11 +0200 Subject: [PATCH] IJPL-191321 [markdown] Always show used provider in Settings If there's only one provider available, render the combobox as disabled. GitOrigin-RevId: 6699d4d5ca2154bcddabbd7b49b4ce3d2806862a --- .../settings/MarkdownSettingsConfigurable.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/markdown/core/src/org/intellij/plugins/markdown/settings/MarkdownSettingsConfigurable.kt b/plugins/markdown/core/src/org/intellij/plugins/markdown/settings/MarkdownSettingsConfigurable.kt index f0f8c00a90dc..c6aac3130390 100644 --- a/plugins/markdown/core/src/org/intellij/plugins/markdown/settings/MarkdownSettingsConfigurable.kt +++ b/plugins/markdown/core/src/org/intellij/plugins/markdown/settings/MarkdownSettingsConfigurable.kt @@ -75,9 +75,7 @@ internal class MarkdownSettingsConfigurable(private val project: Project): Bound return panel { showPreviewUnavailableWarningIfNeeded() previewDependentOptionsBlock { - if (MarkdownHtmlPanelProvider.getAvailableProviders().size > 1) { - htmlPanelProvidersRow() - } + htmlPanelProvidersRow(MarkdownHtmlPanelProvider.getAvailableProviders()) row(MarkdownBundle.message("markdown.settings.default.layout")) { comboBox( model = EnumComboBoxModel(TextEditorWithPreview.Layout::class.java), @@ -150,10 +148,13 @@ internal class MarkdownSettingsConfigurable(private val project: Project): Bound publisher.extensionsSettingsChanged(fromSettingsDialog = true) } - private fun Panel.htmlPanelProvidersRow(): Row { + private fun Panel.htmlPanelProvidersRow(availableProviders: List): Row { + // guaranteed by MarkdownSettingsConfigurable.previewDependentOptionsBlock + require(availableProviders.isNotEmpty()) return row(MarkdownBundle.message("markdown.settings.preview.providers.label")) { - val providers = MarkdownHtmlPanelProvider.getProviders().map { it.providerInfo } - comboBox(model = DefaultComboBoxModel(providers.toTypedArray())) + val providerInfos = availableProviders.map { it.providerInfo } + comboBox(model = DefaultComboBoxModel(providerInfos.toTypedArray())) + .enabled(availableProviders.size > 1) .bindItem(settings::previewPanelProviderInfo.toNullableProperty()) .widthGroup(comboBoxWidthGroup) }