From 5addfd34e2d710619b49b374c0f6cb7156a4deb9 Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Mon, 13 Nov 2017 16:09:10 +0300 Subject: [PATCH] PY-26708 Allow creating new environments in everything but PyCharm In PyCharm we have the customized new project UI that allows creating new environments from the main new project page, so having new environment options in the add interpreter dialog would be redundant. --- .../python/sdk/add/PyAddSdkDialog.kt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt b/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt index 85885bc2da94..16b8d7959675 100644 --- a/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt +++ b/python/src/com/jetbrains/python/sdk/add/PyAddSdkDialog.kt @@ -55,7 +55,7 @@ class PyAddSdkDialog(private val project: Project?, .filter { it.sdkType is PythonSdkType && !PythonSdkType.isInvalid(it) } .sortedWith(PreferredSdkComparator()) return createCardSplitter(listOf(createVirtualEnvPanel(project, sdks, newProjectPath), - createAnacondaPanel(), + createAnacondaPanel(project), PyAddSystemWideInterpreterPanel(existingSdks))) } @@ -101,10 +101,10 @@ class PyAddSdkDialog(private val project: Project?, private fun createVirtualEnvPanel(project: Project?, existingSdks: List, newProjectPath: String?): PyAddSdkPanel { - val newVirtualEnvPanel = if (project != null || PlatformUtils.isPyCharmEducational()) - PyAddNewVirtualEnvPanel(project, existingSdks, newProjectPath) - else - null + val newVirtualEnvPanel = when { + allowCreatingNewEnvironments(project) -> PyAddNewVirtualEnvPanel(project, existingSdks, newProjectPath) + else -> null + } val existingVirtualEnvPanel = PyAddExistingVirtualEnvPanel(project, existingSdks, newProjectPath) val panels = listOf(newVirtualEnvPanel, existingVirtualEnvPanel) @@ -117,9 +117,9 @@ class PyAddSdkDialog(private val project: Project?, return PyAddSdkGroupPanel("Virtualenv environment", PythonIcons.Python.Virtualenv, panels, defaultPanel) } - private fun createAnacondaPanel(): PyAddSdkPanel { + private fun createAnacondaPanel(project: Project?): PyAddSdkPanel { val newCondaEnvPanel = when { - project != null || PlatformUtils.isPyCharmEducational() -> PyAddNewCondaEnvPanel(project, existingSdks, newProjectPath) + allowCreatingNewEnvironments(project) -> PyAddNewCondaEnvPanel(project, existingSdks, newProjectPath) else -> null } val panels = listOf(newCondaEnvPanel, @@ -127,4 +127,9 @@ class PyAddSdkDialog(private val project: Project?, .filterNotNull() return PyAddSdkGroupPanel("Conda environment", PythonIcons.Python.Anaconda, panels, panels[0]) } + + companion object { + private fun allowCreatingNewEnvironments(project: Project?) = + project != null || !PlatformUtils.isPyCharm() || PlatformUtils.isPyCharmEducational() + } }