From 53a8f264c4078d7848d6f61bc678cd1e7881510b Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Wed, 9 Apr 2014 20:16:53 +0400 Subject: [PATCH] fixed project creation with detected sdk --- .../PythonNewDirectoryProjectAction.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/python/ide/src/com/jetbrains/python/newProject/PythonNewDirectoryProjectAction.java b/python/ide/src/com/jetbrains/python/newProject/PythonNewDirectoryProjectAction.java index 37e5ce5a9fb9..dd5671b75622 100644 --- a/python/ide/src/com/jetbrains/python/newProject/PythonNewDirectoryProjectAction.java +++ b/python/ide/src/com/jetbrains/python/newProject/PythonNewDirectoryProjectAction.java @@ -17,21 +17,26 @@ package com.jetbrains.python.newProject; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonDataKeys; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; +import com.intellij.openapi.projectRoots.ProjectJdkTable; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.SdkAdditionalData; import com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil; import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel; import com.intellij.openapi.ui.DialogWrapper; +import com.intellij.openapi.util.Computable; +import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.platform.DirectoryProjectGenerator; import com.intellij.platform.NewDirectoryProjectAction; import com.jetbrains.python.configuration.PyConfigurableInterpreterList; import com.jetbrains.python.sdk.PyDetectedSdk; +import com.jetbrains.python.sdk.PySdkService; import com.jetbrains.python.sdk.PythonSdkAdditionalData; import com.jetbrains.python.sdk.PythonSdkType; @@ -56,7 +61,14 @@ public class PythonNewDirectoryProjectAction extends NewDirectoryProjectAction { mySdk = dlg.getSdk(); final ProjectSdksModel model = PyConfigurableInterpreterList.getInstance(project).getModel(); if (mySdk instanceof PyDetectedSdk) { - mySdk = SdkConfigurationUtil.createAndAddSDK(mySdk.getName(), PythonSdkType.getInstance()); + VirtualFile sdkHome = ApplicationManager.getApplication().runWriteAction(new Computable() { + @Override + public VirtualFile compute() { + return LocalFileSystem.getInstance().refreshAndFindFileByPath(mySdk.getName()); + } + }); + PySdkService.getInstance().solidifySdk(mySdk); + mySdk = SdkConfigurationUtil.setupSdk(ProjectJdkTable.getInstance().getAllJdks(), sdkHome, PythonSdkType.getInstance(), true, null, null); model.addSdk(mySdk); try { model.apply(); @@ -65,7 +77,6 @@ public class PythonNewDirectoryProjectAction extends NewDirectoryProjectAction { LOG.error("Error adding detected python interpreter " + exception.getMessage()); } } - mySdk = model.findSdk(mySdk); myInstallFramework = dlg.installFramework(); Project newProject = generateProject(project, dlg);