IDEA-227357 LightEdit: Indicate unsaved status on editor tab

GitOrigin-RevId: 0cf43f79b8257de38bb7848fa8bcfa34a1a14e08
This commit is contained in:
Rustam Vishnyakov
2019-11-21 18:05:30 +00:00
committed by intellij-monorepo-bot
parent a9711b468a
commit b7266236d3
@@ -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());
}
}