From 1be60010739f59157f4ddd344a3878396f33471f Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Thu, 24 Apr 2014 15:45:24 +0400 Subject: [PATCH] fixed PY-12451 Interpreter added from project creation dialog is not set as project interpreter --- .../jetbrains/python/PythonSdkChooserCombo.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/python/ide/src/com/jetbrains/python/PythonSdkChooserCombo.java b/python/ide/src/com/jetbrains/python/PythonSdkChooserCombo.java index 36946f33cfda..0fc3a0f7d8c0 100644 --- a/python/ide/src/com/jetbrains/python/PythonSdkChooserCombo.java +++ b/python/ide/src/com/jetbrains/python/PythonSdkChooserCombo.java @@ -15,10 +15,13 @@ */ package com.jetbrains.python; +import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.SdkType; import com.intellij.openapi.projectRoots.impl.SdkListCellRenderer; +import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.IconLoader; import com.intellij.ui.CollectionComboBoxModel; @@ -41,6 +44,7 @@ import java.util.List; */ public class PythonSdkChooserCombo extends ComboboxWithBrowseButton { private final List myChangedListeners = ContainerUtil.createLockFreeCopyOnWriteList(); + private static final Logger LOG = Logger.getInstance("#com.jetbrains.python.PythonSdkChooserCombo"); @SuppressWarnings("unchecked") public PythonSdkChooserCombo(final Project project, List sdks, final Condition acceptableSdkCondition) { @@ -81,6 +85,16 @@ public class PythonSdkChooserCombo extends ComboboxWithBrowseButton { @Override public void consume(@Nullable Sdk sdk) { if(sdk == null) return; + final ProjectSdksModel projectSdksModel = interpreterList.getModel(); + if (projectSdksModel.findSdk(sdk) == null) { + projectSdksModel.addSdk(sdk); + try { + projectSdksModel.apply(); + } + catch (ConfigurationException e) { + LOG.error("Error adding new python interpreter " + e.getMessage()); + } + } //noinspection unchecked getComboBox().setModel(new CollectionComboBoxModel(interpreterList.getAllPythonSdks(), sdk)); }