From 5e246c0724e5d29740d8b8fd11da42e047a8f4ed Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Wed, 22 Jul 2015 19:07:24 +0200 Subject: [PATCH] RecentProjectMgr: removePath should remove path from groups as well --- .../ide/RecentProjectsManagerBase.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java index 7373293b59ad..7d15daffbcc5 100644 --- a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java +++ b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java @@ -132,6 +132,15 @@ public abstract class RecentProjectsManagerBase extends RecentProjectsManager im myState = state; } + private static void removePathFrom(List items, String path) { + for (Iterator iterator = items.iterator(); iterator.hasNext();) { + final String next = iterator.next(); + if (SystemInfo.isFileSystemCaseSensitive ? path.equals(next) : path.equalsIgnoreCase(next)) { + iterator.remove(); + } + } + } + @Override public void removePath(@Nullable String path) { if (path == null) { @@ -139,17 +148,10 @@ public abstract class RecentProjectsManagerBase extends RecentProjectsManager im } synchronized (myStateLock) { - if (SystemInfo.isFileSystemCaseSensitive) { - myState.recentPaths.remove(path); - myState.names.remove(path); - } - else { - for (Iterator iterator = myState.recentPaths.iterator(); iterator.hasNext(); ) { - if (path.equalsIgnoreCase(iterator.next())) { - iterator.remove(); - myState.names.remove(path); - } - } + removePathFrom(myState.recentPaths, path); + myState.names.remove(path); + for (ProjectGroup group : myState.groups) { + group.removeProject(path); } } }