From b7266236d300fb5fd28ccac16e650c5cc06dc583 Mon Sep 17 00:00:00 2001 From: Rustam Vishnyakov Date: Thu, 21 Nov 2019 16:16:31 +0300 Subject: [PATCH] IDEA-227357 LightEdit: Indicate unsaved status on editor tab GitOrigin-RevId: 0cf43f79b8257de38bb7848fa8bcfa34a1a14e08 --- .../src/com/intellij/ide/lightEdit/LightEditTabs.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/ide/lightEdit/LightEditTabs.java b/platform/platform-impl/src/com/intellij/ide/lightEdit/LightEditTabs.java index 52db05dd3eec..e0f717f6cae9 100644 --- a/platform/platform-impl/src/com/intellij/ide/lightEdit/LightEditTabs.java +++ b/platform/platform-impl/src/com/intellij/ide/lightEdit/LightEditTabs.java @@ -10,6 +10,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.DefaultActionGroup; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.colors.EditorColorsManager; +import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.project.DumbAwareAction; import com.intellij.ui.tabs.TabInfo; import com.intellij.ui.tabs.TabsListener; @@ -93,12 +94,16 @@ class LightEditTabs extends JBEditorTabs { @Override public void update(@NotNull AnActionEvent e) { - e.getPresentation().setIcon(AllIcons.Actions.Close); + e.getPresentation().setIcon(getIcon()); e.getPresentation().setHoveredIcon(AllIcons.Actions.CloseHovered); e.getPresentation().setVisible(UISettings.getInstance().getShowCloseButton()); e.getPresentation().setText("Close. Alt-Click to Close Others."); } + private Icon getIcon() { + return + isUnsaved(myEditorInfo) ? AllIcons.General.Modified : AllIcons.Actions.Close; + } private void closeCurrentTab() { TabInfo tabInfo = findInfo(myEditorInfo); @@ -118,4 +123,8 @@ class LightEditTabs extends JBEditorTabs { } } + private static boolean isUnsaved(@NotNull LightEditorInfo info) { + return FileDocumentManager.getInstance().isFileModified(info.getFile()); + } + }