diff --git a/platform/external-system-api/src/com/intellij/openapi/externalSystem/settings/ExternalProjectSettings.java b/platform/external-system-api/src/com/intellij/openapi/externalSystem/settings/ExternalProjectSettings.java index d44f4efcb920..c7a6ecbd5443 100644 --- a/platform/external-system-api/src/com/intellij/openapi/externalSystem/settings/ExternalProjectSettings.java +++ b/platform/external-system-api/src/com/intellij/openapi/externalSystem/settings/ExternalProjectSettings.java @@ -24,7 +24,7 @@ import org.jetbrains.annotations.NotNull; * @author Denis Zhdanov * @since 4/24/13 11:41 AM */ -public class ExternalProjectSettings implements Comparable { +public abstract class ExternalProjectSettings implements Comparable, Cloneable { private String myExternalProjectPath; private boolean myUseAutoImport; @@ -69,4 +69,12 @@ public class ExternalProjectSettings implements Comparable projects = ContainerUtilRt.newHashSet(settings.getLinkedProjectsSettings()); - projects.add(myControl.getProjectSettings()); - settings.setLinkedProjectsSettings(projects); + Set projects = ContainerUtilRt.newHashSet(systemSettings.getLinkedProjectsSettings()); + projects.add(projectSettings); + systemSettings.setLinkedProjectsSettings(projects); onProjectInit(project); if (externalProjectNode != null) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/settings/GradleProjectSettings.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/settings/GradleProjectSettings.java index a674a03bcd3c..369f2f9d8d80 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/settings/GradleProjectSettings.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/settings/GradleProjectSettings.java @@ -16,6 +16,7 @@ package org.jetbrains.plugins.gradle.settings; import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** @@ -43,4 +44,14 @@ public class GradleProjectSettings extends ExternalProjectSettings { public void setPreferLocalInstallationToWrapper(boolean preferLocalInstallationToWrapper) { myPreferLocalInstallationToWrapper = preferLocalInstallationToWrapper; } + + @NotNull + @Override + public ExternalProjectSettings clone() { + GradleProjectSettings result = new GradleProjectSettings(); + copyTo(result); + result.myGradleHome = myGradleHome; + result.myPreferLocalInstallationToWrapper = myPreferLocalInstallationToWrapper; + return result; + } }