diff --git a/java/idea-ui/src/com/intellij/openapi/wm/IdeaFrameTitleBuilder.java b/java/idea-ui/src/com/intellij/openapi/wm/IdeaFrameTitleBuilder.java index 9796f9e8db3b..6c705aac25b4 100644 --- a/java/idea-ui/src/com/intellij/openapi/wm/IdeaFrameTitleBuilder.java +++ b/java/idea-ui/src/com/intellij/openapi/wm/IdeaFrameTitleBuilder.java @@ -28,6 +28,6 @@ import org.jetbrains.annotations.NotNull; public class IdeaFrameTitleBuilder extends PlatformFrameTitleBuilder { @Override public String getFileTitle(@NotNull final Project project, @NotNull final VirtualFile file) { - return ProjectUtil.calcRelativeToProjectPath(file, project, !SystemInfo.isMac); + return ProjectUtil.calcRelativeToProjectPath(file, project, !SystemInfo.isMac, true, false); } } diff --git a/platform/lang-api/src/com/intellij/openapi/project/ProjectUtil.java b/platform/lang-api/src/com/intellij/openapi/project/ProjectUtil.java index 8683342f873e..189f0d112d1c 100644 --- a/platform/lang-api/src/com/intellij/openapi/project/ProjectUtil.java +++ b/platform/lang-api/src/com/intellij/openapi/project/ProjectUtil.java @@ -19,6 +19,7 @@ import com.intellij.ide.DataManager; import com.intellij.ide.highlighter.InternalFileType; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.PlatformDataKeys; +import com.intellij.openapi.fileEditor.UniqueVFilePathBuilder; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; @@ -53,18 +54,28 @@ public class ProjectUtil { public static String calcRelativeToProjectPath(@NotNull final VirtualFile file, @Nullable final Project project, final boolean includeFilePath) { - return calcRelativeToProjectPath(file, project, includeFilePath, false); + return calcRelativeToProjectPath(file, project, includeFilePath, false, false); } @NotNull public static String calcRelativeToProjectPath(@NotNull final VirtualFile file, @Nullable final Project project, final boolean includeFilePath, + final boolean includeUniqueFilePath, final boolean keepModuleAlwaysOnTheLeft) { if (file instanceof VirtualFilePathWrapper) { return includeFilePath ? ((VirtualFilePathWrapper)file).getPresentablePath() : file.getName(); } - String url = includeFilePath ? file.getPresentableUrl() : file.getName(); + String url; + if (includeFilePath) { + url = file.getPresentableUrl(); + } + else if (includeUniqueFilePath) { + url = UniqueVFilePathBuilder.getInstance().getUniqueVirtualFilePath(project, file); + } + else { + url = file.getName(); + } if (project == null) { return url; } diff --git a/platform/lang-impl/src/com/intellij/ide/util/DirectoryChooser.java b/platform/lang-impl/src/com/intellij/ide/util/DirectoryChooser.java index c5f652f031f8..08724c9c284c 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/DirectoryChooser.java +++ b/platform/lang-impl/src/com/intellij/ide/util/DirectoryChooser.java @@ -363,7 +363,7 @@ public class DirectoryChooser extends DialogWrapper { final PsiDirectory directory = getDirectory(); final VirtualFile virtualFile = directory != null ? directory.getVirtualFile() : null; myRelativeToProjectPath = virtualFile != null - ? ProjectUtil.calcRelativeToProjectPath(virtualFile, directory.getProject(), true, true) + ? ProjectUtil.calcRelativeToProjectPath(virtualFile, directory.getProject(), true, false, true) : getPresentableUrl(); } return myRelativeToProjectPath; diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/PlatformFrameTitleBuilder.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/PlatformFrameTitleBuilder.java index 7f91b64d9cdf..2495c0c01fac 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/PlatformFrameTitleBuilder.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/PlatformFrameTitleBuilder.java @@ -15,6 +15,7 @@ */ package com.intellij.openapi.wm.impl; +import com.intellij.openapi.fileEditor.UniqueVFilePathBuilder; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; @@ -42,7 +43,10 @@ public class PlatformFrameTitleBuilder extends FrameTitleBuilder { @Override public String getFileTitle(@NotNull final Project project, @NotNull final VirtualFile file) { - if (SystemInfo.isMac) return file.getName(); + if (SystemInfo.isMac) { + return UniqueVFilePathBuilder.getInstance().getUniqueVirtualFilePath(project, file); + } + if (file instanceof VirtualFilePathWrapper) { return ((VirtualFilePathWrapper)file).getPresentablePath(); }