From 672db6ca1f1e94a14c202fc07f0e3e366bed9657 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Mon, 25 Jul 2016 18:42:48 +0300 Subject: [PATCH] associate silently created virtual env with new project --- .../learning/PyStudyDirectoryProjectGenerator.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyDirectoryProjectGenerator.java b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyDirectoryProjectGenerator.java index 2da13df60a45..3d5e0bf51701 100644 --- a/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyDirectoryProjectGenerator.java +++ b/python/educational-python/student-python/src/com/jetbrains/edu/learning/PyStudyDirectoryProjectGenerator.java @@ -16,6 +16,8 @@ import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.projectRoots.Sdk; +import com.intellij.openapi.projectRoots.SdkAdditionalData; +import com.intellij.openapi.projectRoots.impl.ProjectJdkImpl; import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.platform.DirectoryProjectGenerator; @@ -34,6 +36,7 @@ import com.jetbrains.python.packaging.PyPackageManager; import com.jetbrains.python.psi.LanguageLevel; import com.jetbrains.python.sdk.AbstractCreateVirtualEnvDialog; import com.jetbrains.python.sdk.PyDetectedSdk; +import com.jetbrains.python.sdk.PythonSdkAdditionalData; import com.jetbrains.python.sdk.flavors.PythonSdkFlavor; import icons.InteractiveLearningPythonIcons; import org.jetbrains.annotations.Nls; @@ -207,6 +210,14 @@ public class PyStudyDirectoryProjectGenerator extends PythonProjectGenerator imp catch (ConfigurationException exception) { LOG.error("Error adding created virtual env " + exception.getMessage()); } + if (associateWithProject) { + SdkAdditionalData additionalData = createdSdk.getSdkAdditionalData(); + if (additionalData == null) { + additionalData = new PythonSdkAdditionalData(PythonSdkFlavor.getFlavor(createdSdk.getHomePath())); + ((ProjectJdkImpl)createdSdk).setSdkAdditionalData(additionalData); + } + ((PythonSdkAdditionalData)additionalData).associateWithNewProject(); + } } }); }