From 077ef693575e204b4d67482589ff8a9ceea779ef Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Mon, 25 Nov 2019 17:22:20 +0300 Subject: [PATCH] [vcs-log] update editor tab name on filters change GitOrigin-RevId: 34724e523b4b0a70d3866fccc17833adf9892339 --- .../impl/src/com/intellij/vcs/log/impl/VcsLogEditorUtil.kt | 7 +++++++ .../src/com/intellij/vcs/log/impl/VcsLogTabsManager.java | 3 +++ 2 files changed, 10 insertions(+) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogEditorUtil.kt b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogEditorUtil.kt index fdff1a73b247..d78d36efcb82 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogEditorUtil.kt +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogEditorUtil.kt @@ -6,6 +6,7 @@ import com.intellij.openapi.application.ModalityState import com.intellij.openapi.application.invokeLater import com.intellij.openapi.fileEditor.FileEditor import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx import com.intellij.openapi.project.Project import com.intellij.vcs.log.ui.VcsLogPanel import com.intellij.vcs.log.ui.VcsLogUiEx @@ -22,6 +23,12 @@ fun getExistingLogIds(project: Project): Set { return FileEditorManager.getInstance(project).allEditors.mapNotNullTo(mutableSetOf(), ::getLogId) } +fun updateTabName(project: Project, ui: VcsLogUiEx) { + val fileEditorManager = FileEditorManagerEx.getInstanceEx(project) + val file = fileEditorManager.allEditors.first { getLogId(it) == ui.id }?.file + file?.let { fileEditorManager.updateFilePresentation(it) } +} + fun openLogTab(project: Project, logManager: VcsLogManager, name: String, factory: VcsLogManager.VcsLogUiFactory, focus: Boolean): U { val logUi = logManager.createLogUi(factory, VcsLogManager.LogWindowKind.EDITOR) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogTabsManager.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogTabsManager.java index b2dd7ab3cbf4..886c3de9338c 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogTabsManager.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogTabsManager.java @@ -74,6 +74,9 @@ public class VcsLogTabsManager { MainVcsLogUi ui; if (kind == VcsLogManager.LogWindowKind.EDITOR) { ui = VcsLogEditorUtilKt.openLogTab(myProject, manager, getFullName(tabId), factory, focus); + ui.addFilterListener(() -> { + VcsLogEditorUtilKt.updateTabName(myProject, ui); + }); } else if (kind == VcsLogManager.LogWindowKind.TOOL_WINDOW) { ui = VcsLogContentUtil.openLogTab(myProject, manager, VcsLogContentProvider.TAB_NAME, tabId, factory, focus);