apply in case of detected sdk

This commit is contained in:
Ekaterina Tuzova
2014-02-12 15:12:40 +04:00
parent 5df90d47ce
commit 9d897149ec
2 changed files with 24 additions and 15 deletions
@@ -236,7 +236,11 @@ public class PyActiveSdkConfigurable implements UnnamedConfigurable {
@Override
public void run() {
final Sdk sdk = SdkConfigurationUtil.createAndAddSDK(item.getName(), PythonSdkType.getInstance());
SdkConfigurationUtil.setDirectoryProjectSdk(myProject, sdk);
myProjectSdksModel.removeSdk(item);
myProjectSdksModel.addSdk(sdk);
updateSdkList(true);
mySdkCombo.setSelectedItem(sdk);
setSdk(sdk);
}
}, ModalityState.any());
}
@@ -244,19 +248,7 @@ public class PyActiveSdkConfigurable implements UnnamedConfigurable {
myProjectSdksModel.addSdk(item);
myProjectSdksModel.apply(null, true);
}
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);
}
});
}
else {
ModuleRootModificationUtil.setModuleSdk(myModule, selectedSdk);
}
final Sdk selectedSdk = setSdk(item);
final Sdk prevSdk = ProjectRootManager.getInstance(myProject).getProjectSdk();
// update string literals if different LanguageLevel was selected
@@ -275,6 +267,23 @@ public class PyActiveSdkConfigurable implements UnnamedConfigurable {
rehighlightStrings(myProject);
}
private Sdk setSdk(Sdk item) {
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);
}
});
}
else {
ModuleRootModificationUtil.setModuleSdk(myModule, selectedSdk);
}
return selectedSdk;
}
public static void rehighlightStrings(final @NotNull Project project) {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
@@ -114,7 +114,7 @@ public class PyConfigurableInterpreterList {
}
});
Collection<String> sdkHomes = new ArrayList<String>();
final Collection<String> sdkHomes = new ArrayList<String>();
sdkHomes.addAll(VirtualEnvSdkFlavor.INSTANCE.suggestHomePaths());
for (PythonSdkFlavor flavor : PythonSdkFlavor.getApplicableFlavors()) {
if (flavor instanceof VirtualEnvSdkFlavor) continue;