From f3144c51dd27714cf007f048fb99b32e7b25d5fe Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Mon, 12 Dec 2016 17:01:26 +0100 Subject: [PATCH] CPP-8004 Set CLion's project name from CMake's ${PROJECT_NAME}: also update cached names in RecentProjectsManagerBase.state (used in File | Open Recent...) --- .../com/intellij/ide/RecentProjectsManagerBase.java | 11 ++++++++--- .../intellij/openapi/project/impl/ProjectImpl.java | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java index 31db6e09f9fa..939033657e42 100644 --- a/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java +++ b/platform/platform-impl/src/com/intellij/ide/RecentProjectsManagerBase.java @@ -520,9 +520,7 @@ public abstract class RecentProjectsManagerBase extends RecentProjectsManager im @Override public void projectClosing(Project project) { - synchronized (myStateLock) { - myState.names.put(getProjectPath(project), getProjectDisplayName(project)); - } + updateProjectName(project); } @Override @@ -538,6 +536,13 @@ public abstract class RecentProjectsManagerBase extends RecentProjectsManager im } } + public void updateProjectName(Project project) { + synchronized (myStateLock) { + myState.names.put(getProjectPath(project), getProjectDisplayName(project)); + } + clearNameCache(); + } + @NotNull public String getProjectName(@NotNull String path) { String cached = myNameCache.get(path); diff --git a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectImpl.java b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectImpl.java index c3d234753c43..418a14d39b44 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectImpl.java @@ -16,6 +16,7 @@ package com.intellij.openapi.project.impl; import com.intellij.ide.RecentProjectsManager; +import com.intellij.ide.RecentProjectsManagerBase; import com.intellij.ide.plugins.IdeaPluginDescriptor; import com.intellij.ide.startup.StartupManagerEx; import com.intellij.openapi.application.ApplicationManager; @@ -134,7 +135,7 @@ public class ProjectImpl extends PlatformComponentManagerImpl implements Project public void setProjectName(@NotNull String projectName) { if (!projectName.equals(myName)) { myName = projectName; - RecentProjectsManager.getInstance().clearNameCache(); + ((RecentProjectsManagerBase)RecentProjectsManager.getInstance()).updateProjectName(this); StartupManager.getInstance(this).runWhenProjectIsInitialized((DumbAwareRunnable)() -> { if (isDisposed()) return;