From d0ec2d26789687503b2029aa62f90612849e8a09 Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Mon, 2 Oct 2017 20:49:20 +0300 Subject: [PATCH] PY-22324 Split Local Interpreter into Virtual Environment and System Interpreter options --- .../jetbrains/python/sdk/add/PyAddSdkDialog.kt | 17 ++++++++--------- .../python/sdk/add/PyAddSdkGroupPanel.kt | 6 +++++- .../sdk/add/PyAddSystemWideInterpreterPanel.kt | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt index 135b0d9f084b..39fd21458f60 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt @@ -54,7 +54,8 @@ class PyAddSdkDialog(private val project: Project?, val sdks = existingSdks .filter { it.sdkType is PythonSdkType && !PythonSdkType.isInvalid(it) } .sortedWith(PreferredSdkComparator()) - return createCardSplitter(listOf(createLocalInterpreterPanel(project, sdks, newProjectPath), + return createCardSplitter(listOf(createVirtualEnvPanel(project, sdks, newProjectPath), + PyAddSystemWideInterpreterPanel(existingSdks), createAnacondaPanel())) } @@ -97,25 +98,23 @@ class PyAddSdkDialog(private val project: Project?, } } - private fun createLocalInterpreterPanel(project: Project?, - existingSdks: List, - newProjectPath: String?): PyAddSdkPanel { + private fun createVirtualEnvPanel(project: Project?, + existingSdks: List, + newProjectPath: String?): PyAddSdkPanel { val newVirtualEnvPanel = if (project != null || PlatformUtils.isPyCharmEducational()) PyAddNewVirtualEnvPanel(project, existingSdks, newProjectPath) else null val existingVirtualEnvPanel = PyAddExistingVirtualEnvPanel(project, existingSdks, newProjectPath) - val systemInterpreterPanel = PyAddSystemWideInterpreterPanel(existingSdks) val panels = listOf(newVirtualEnvPanel, - existingVirtualEnvPanel, - systemInterpreterPanel) + existingVirtualEnvPanel) .filterNotNull() val defaultPanel = when { detectVirtualEnvs(project, existingSdks).any { it.isAssociatedWithProject(project) } -> existingVirtualEnvPanel newVirtualEnvPanel != null -> newVirtualEnvPanel - else -> systemInterpreterPanel + else -> existingVirtualEnvPanel } - return PyAddSdkGroupPanel("Local interpreter", PythonIcons.Python.Python, panels, defaultPanel) + return PyAddSdkGroupPanel("Virtual environment", PythonIcons.Python.Virtualenv, panels, defaultPanel) } private fun createAnacondaPanel(): PyAddSdkPanel { diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSdkGroupPanel.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSdkGroupPanel.kt index c18f1e1a332a..db4c746c6024 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSdkGroupPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSdkGroupPanel.kt @@ -37,7 +37,11 @@ class PyAddSdkGroupPanel(name: String, init { layout = BorderLayout() - add(createRadioButtonPanel(panels, defaultPanel), BorderLayout.NORTH) + val contentPanel = when (panels.size) { + 1 -> panels[0] + else -> createRadioButtonPanel(panels, defaultPanel) + } + add(contentPanel, BorderLayout.NORTH) } override fun validateAll() = panels.filter { it.isEnabled }.flatMap { it.validateAll() } diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSystemWideInterpreterPanel.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSystemWideInterpreterPanel.kt index 3dae5772826f..98f275d21938 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSystemWideInterpreterPanel.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSystemWideInterpreterPanel.kt @@ -26,7 +26,7 @@ import java.awt.BorderLayout * @author vlan */ class PyAddSystemWideInterpreterPanel(private val existingSdks: List) : PyAddSdkPanel() { - override val panelName = "System-wide interpreter" + override val panelName = "System interpreter" private val sdkComboBox = PySdkPathChoosingComboBox(detectSystemWideSdks(existingSdks), null) init {