fixed PY-13860 Configure Interpreter for the project: interpreter is not set on Add ...

This commit is contained in:
Ekaterina Tuzova
2014-09-08 17:07:20 +04:00
parent fa8f537d59
commit feaca497d3
2 changed files with 9 additions and 11 deletions
@@ -298,14 +298,14 @@ public class PyActiveSdkConfigurable implements UnnamedConfigurable {
}
final Sdk prevSdk = ProjectRootManager.getInstance(myProject).getProjectSdk();
final Sdk selectedSdk = setSdk(newSdk);
setSdk(newSdk);
// update string literals if different LanguageLevel was selected
if (prevSdk != null && selectedSdk != null) {
final PythonSdkFlavor flavor1 = PythonSdkFlavor.getFlavor(selectedSdk);
if (prevSdk != null && newSdk != null) {
final PythonSdkFlavor flavor1 = PythonSdkFlavor.getFlavor(newSdk);
final PythonSdkFlavor flavor2 = PythonSdkFlavor.getFlavor(prevSdk);
if (flavor1 != null && flavor2 != null) {
final LanguageLevel languageLevel1 = flavor1.getLanguageLevel(selectedSdk);
final LanguageLevel languageLevel1 = flavor1.getLanguageLevel(newSdk);
final LanguageLevel languageLevel2 = flavor2.getLanguageLevel(prevSdk);
if ((languageLevel1.isPy3K() && languageLevel2.isPy3K()) ||
(!languageLevel1.isPy3K()) && !languageLevel2.isPy3K()) {
@@ -316,22 +316,20 @@ public class PyActiveSdkConfigurable implements UnnamedConfigurable {
rehighlightStrings(myProject);
}
private Sdk setSdk(Sdk item) {
private void setSdk(final Sdk item) {
myAddedSdks.clear();
final Sdk selectedSdk = myProjectSdksModel.findSdk(item);
if (myModule == null) {
final ProjectRootManager rootManager = ProjectRootManager.getInstance(myProject);
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public void run() {
rootManager.setProjectSdk(selectedSdk);
rootManager.setProjectSdk(item);
}
});
}
else {
ModuleRootModificationUtil.setModuleSdk(myModule, selectedSdk);
ModuleRootModificationUtil.setModuleSdk(myModule, item);
}
return selectedSdk;
}
public static void rehighlightStrings(final @NotNull Project project) {
@@ -429,8 +427,6 @@ public class PyActiveSdkConfigurable implements UnnamedConfigurable {
public void sdkAdded(Sdk sdk) {
final Object item = myConfigurable.mySdkCombo.getSelectedItem();
myConfigurable.resetSdkList();
if (item instanceof PyDetectedSdk) {
final String path = ((PyDetectedSdk)item).getHomePath();
if (path != null && path.equals(sdk.getHomePath()))
@@ -120,6 +120,8 @@ public class PythonSdkDetailsStep extends BaseListPopupStep<String> {
}
private void optionSelected(final String selectedValue) {
if (!MORE.equals(selectedValue))
Disposer.dispose(myMore.getDisposable());
if (LOCAL.equals(selectedValue)) {
createLocalSdk();
}