From e4abcd94432f865d5a12f1580d766620ba7c8fc6 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Fri, 17 Oct 2014 11:11:24 +0200 Subject: [PATCH] lastProjectLocation is not roamable, so, must be moved to RecentProjectsManager --- .../ide/util/projectWizard/WizardContext.java | 2 +- .../src/com/intellij/ide/GeneralSettings.java | 13 +++++++++---- .../com/intellij/ide/RecentProjectsManagerBase.java | 13 +++++++++++++ .../src/com/intellij/ide/impl/ProjectUtil.java | 5 +++-- .../platform/NewDirectoryProjectAction.java | 3 ++- .../newProject/actions/GenerateProjectCallback.java | 3 ++- 6 files changed, 30 insertions(+), 9 deletions(-) diff --git a/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java b/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java index 6f23ac69f745..a59a354870a5 100644 --- a/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java +++ b/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java @@ -93,7 +93,7 @@ public class WizardContext extends UserDataHolderBase { if (myProjectFileDirectory != null) { return myProjectFileDirectory; } - final String lastProjectLocation = GeneralSettings.getInstance().getLastProjectCreationLocation(); + final String lastProjectLocation = RecentProjectsManagerBase.getInstance().getLastProjectCreationLocation(); if (lastProjectLocation != null) { return lastProjectLocation.replace('/', File.separatorChar); } diff --git a/platform/platform-api/src/com/intellij/ide/GeneralSettings.java b/platform/platform-api/src/com/intellij/ide/GeneralSettings.java index f60ec2cd6bf1..cc1b7faac979 100644 --- a/platform/platform-api/src/com/intellij/ide/GeneralSettings.java +++ b/platform/platform-api/src/com/intellij/ide/GeneralSettings.java @@ -48,7 +48,6 @@ public class GeneralSettings implements NamedJDOMExternalizable, ExportableAppli private final PropertyChangeSupport myPropertyChangeSupport; private boolean myUseDefaultBrowser = true; private boolean myConfirmExtractFiles = true; - private String myLastProjectLocation; private boolean mySearchInBackground; private boolean myConfirmExit = true; private int myConfirmOpenNewProject = OPEN_PROJECT_ASK; @@ -103,15 +102,21 @@ public class GeneralSettings implements NamedJDOMExternalizable, ExportableAppli return myBrowserPath; } + @SuppressWarnings("unused") + @Deprecated /** - * @return a path pointing to a directory where the last project was created or null if not available + * Use RecentProjectsManagerBase */ public String getLastProjectCreationLocation() { - return myLastProjectLocation; + return null; } + @SuppressWarnings("unused") + @Deprecated + /** + * Use RecentProjectsManagerBase + */ public void setLastProjectCreationLocation(String lastProjectLocation) { - myLastProjectLocation = lastProjectLocation; } public void setBrowserPath(String browserPath) { diff --git a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java index 7991c3af0104..c8b2cf467ec5 100644 --- a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java +++ b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java @@ -57,6 +57,8 @@ public abstract class RecentProjectsManagerBase implements ProjectManagerListene public Map names = ContainerUtil.newLinkedHashMap(); public String lastPath; + public String lastProjectLocation; + void validateRecentProjects() { //noinspection StatementWithEmptyBody while (recentPaths.remove(null)) ; @@ -126,6 +128,17 @@ public abstract class RecentProjectsManagerBase implements ProjectManagerListene } } + /** + * @return a path pointing to a directory where the last project was created or null if not available + */ + public String getLastProjectCreationLocation() { + return myState.lastProjectLocation; + } + + public void setLastProjectCreationLocation(String lastProjectLocation) { + myState.lastProjectLocation = lastProjectLocation; + } + public String getLastProjectPath() { synchronized (myStateLock) { return myState.lastPath; diff --git a/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java b/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java index 492a2c513477..f2fd1a07046f 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java @@ -18,6 +18,7 @@ package com.intellij.ide.impl; import com.intellij.CommonBundle; import com.intellij.ide.GeneralSettings; import com.intellij.ide.IdeBundle; +import com.intellij.ide.RecentProjectsManagerBase; import com.intellij.ide.highlighter.ProjectFileType; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ApplicationNamesInfo; @@ -75,7 +76,7 @@ public class ProjectUtil { LOG.info(e); return; } - GeneralSettings.getInstance().setLastProjectCreationLocation(path.replace(File.separatorChar, '/')); + RecentProjectsManagerBase.getInstance().setLastProjectCreationLocation(path.replace(File.separatorChar, '/')); } /** @@ -275,7 +276,7 @@ public class ProjectUtil { } public static String getBaseDir() { - final String lastProjectLocation = GeneralSettings.getInstance().getLastProjectCreationLocation(); + final String lastProjectLocation = RecentProjectsManagerBase.getInstance().getLastProjectCreationLocation(); if (lastProjectLocation != null) { return lastProjectLocation.replace('/', File.separatorChar); } diff --git a/platform/platform-impl/src/com/intellij/platform/NewDirectoryProjectAction.java b/platform/platform-impl/src/com/intellij/platform/NewDirectoryProjectAction.java index ee55679bdea6..25c754a156aa 100644 --- a/platform/platform-impl/src/com/intellij/platform/NewDirectoryProjectAction.java +++ b/platform/platform-impl/src/com/intellij/platform/NewDirectoryProjectAction.java @@ -16,6 +16,7 @@ package com.intellij.platform; import com.intellij.ide.GeneralSettings; +import com.intellij.ide.RecentProjectsManagerBase; import com.intellij.idea.ActionsBundle; import com.intellij.internal.statistic.UsageTrigger; import com.intellij.internal.statistic.beans.ConvertUsagesUtil; @@ -96,7 +97,7 @@ public class NewDirectoryProjectAction extends AnAction implements DumbAware { return null; } } - GeneralSettings.getInstance().setLastProjectCreationLocation(location.getParent()); + RecentProjectsManagerBase.getInstance().setLastProjectCreationLocation(location.getParent()); final Object finalSettings = settings; return PlatformProjectOpenProcessor.doOpenProject(baseDir, null, false, -1, new ProjectOpenedCallback() { @Override diff --git a/python/ide/src/com/jetbrains/python/newProject/actions/GenerateProjectCallback.java b/python/ide/src/com/jetbrains/python/newProject/actions/GenerateProjectCallback.java index 10f04181a118..a290e70af45d 100644 --- a/python/ide/src/com/jetbrains/python/newProject/actions/GenerateProjectCallback.java +++ b/python/ide/src/com/jetbrains/python/newProject/actions/GenerateProjectCallback.java @@ -16,6 +16,7 @@ package com.jetbrains.python.newProject.actions; import com.intellij.ide.GeneralSettings; +import com.intellij.ide.RecentProjectsManagerBase; import com.intellij.ide.util.projectWizard.WebProjectTemplate; import com.intellij.internal.statistic.UsageTrigger; import com.intellij.internal.statistic.beans.ConvertUsagesUtil; @@ -133,7 +134,7 @@ public class GenerateProjectCallback implements NullableConsumer