diff --git a/python/python-community-configure/src/com/jetbrains/python/newProject/steps/ProjectSpecificSettingsStep.java b/python/python-community-configure/src/com/jetbrains/python/newProject/steps/ProjectSpecificSettingsStep.java index 5e748cbcee96..8031237595f9 100644 --- a/python/python-community-configure/src/com/jetbrains/python/newProject/steps/ProjectSpecificSettingsStep.java +++ b/python/python-community-configure/src/com/jetbrains/python/newProject/steps/ProjectSpecificSettingsStep.java @@ -267,7 +267,7 @@ public class ProjectSpecificSettingsStep extends ProjectSettingsStepBase i locationPanel.add(location, BorderLayout.CENTER); panel.add(locationPanel); - panel.add(createInterpretersPanel()); + panel.add(createInterpretersPanel(((PythonProjectGenerator)myProjectGenerator).getPreferredEnvironmentType())); final JPanel basePanelExtension = ((PythonProjectGenerator)myProjectGenerator).extendBasePanel(); if (basePanelExtension != null) { @@ -280,7 +280,7 @@ public class ProjectSpecificSettingsStep extends ProjectSettingsStepBase i } @NotNull - private JPanel createInterpretersPanel() { + private JPanel createInterpretersPanel(@Nullable final String preferredEnvironment) { final JPanel container = new JPanel(new BorderLayout()); final JPanel decoratorPanel = new JPanel(new VerticalFlowLayout()); @@ -288,7 +288,7 @@ public class ProjectSpecificSettingsStep extends ProjectSettingsStepBase i final Sdk preferredSdk = getPreferredSdk(existingSdks); final String newProjectPath = getNewProjectPath(); - final PyAddNewEnvironmentPanel newEnvironmentPanel = new PyAddNewEnvironmentPanel(existingSdks, newProjectPath); + final PyAddNewEnvironmentPanel newEnvironmentPanel = new PyAddNewEnvironmentPanel(existingSdks, newProjectPath, preferredEnvironment); final PyAddExistingSdkPanel existingSdkPanel = new PyAddExistingSdkPanel(null, existingSdks, newProjectPath, preferredSdk); final PyAddSdkPanel defaultPanel = PySdkSettings.getInstance().getUseNewEnvironmentForNewProject() ? diff --git a/python/python-community-configure/src/com/jetbrains/python/newProject/steps/PyAddNewEnvironmentPanel.kt b/python/python-community-configure/src/com/jetbrains/python/newProject/steps/PyAddNewEnvironmentPanel.kt index a90a7dab88de..5971c93da16c 100644 --- a/python/python-community-configure/src/com/jetbrains/python/newProject/steps/PyAddNewEnvironmentPanel.kt +++ b/python/python-community-configure/src/com/jetbrains/python/newProject/steps/PyAddNewEnvironmentPanel.kt @@ -17,7 +17,7 @@ import javax.swing.JList /** * @author vlan */ -class PyAddNewEnvironmentPanel(existingSdks: List, newProjectPath: String?) : PyAddSdkPanel() { +class PyAddNewEnvironmentPanel(existingSdks: List, newProjectPath: String?, preferredType: String?) : PyAddSdkPanel() { override val panelName = "New environment using" override val nameExtensionComponent: JComboBox @@ -32,7 +32,7 @@ class PyAddNewEnvironmentPanel(existingSdks: List, newProjectPath: String?) private val panels = listOf(PyAddNewVirtualEnvPanel(null, existingSdks, newProjectPath), PyAddNewCondaEnvPanel(null, existingSdks, newProjectPath)) - var selectedPanel = panels.find { it.envName == PySdkSettings.instance.preferredEnvironmentType } ?: panels[0] + var selectedPanel = panels.find { it.envName == preferredType ?: PySdkSettings.instance.preferredEnvironmentType } ?: panels[0] private val listeners = mutableListOf() diff --git a/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java b/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java index 36ea2aa46dd7..a64cb4017757 100644 --- a/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java +++ b/python/src/com/jetbrains/python/newProject/PythonProjectGenerator.java @@ -320,6 +320,11 @@ public abstract class PythonProjectGenerator ext return errorDescription; } + @Nullable + public String getPreferredEnvironmentType() { + return null; + } + /** * To be thrown if project can't be created on this sdk *