mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[vcs-log] fix log tab numbers in split mode
This commit is contained in:
@@ -17,6 +17,7 @@ package com.intellij.vcs.log.impl;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.vcs.ProjectLevelVcsManager;
|
||||
import com.intellij.openapi.vcs.VcsListener;
|
||||
import com.intellij.openapi.vcs.changes.ui.ChangesViewContentProvider;
|
||||
@@ -24,9 +25,11 @@ import com.intellij.openapi.wm.ToolWindow;
|
||||
import com.intellij.openapi.wm.ToolWindowId;
|
||||
import com.intellij.openapi.wm.ToolWindowManager;
|
||||
import com.intellij.ui.components.JBPanel;
|
||||
import com.intellij.ui.content.Content;
|
||||
import com.intellij.ui.content.TabbedContent;
|
||||
import com.intellij.util.ContentUtilEx;
|
||||
import com.intellij.util.NotNullFunction;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
import com.intellij.vcs.log.ui.VcsLogUiImpl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -34,6 +37,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Provides the Content tab to the ChangesView log toolwindow.
|
||||
@@ -52,11 +56,11 @@ public class VcsLogContentProvider implements ChangesViewContentProvider {
|
||||
myProject = project;
|
||||
myLogManager = logManager;
|
||||
myLogManager.setRecreateMainLogHandler(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
recreateLog();
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void run() {
|
||||
recreateLog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,12 +87,28 @@ public class VcsLogContentProvider implements ChangesViewContentProvider {
|
||||
VcsLogManager logManager = VcsLogManager.getInstance(project);
|
||||
ToolWindow toolWindow = ToolWindowManager.getInstance(project).getToolWindow(ToolWindowId.VCS);
|
||||
|
||||
TabbedContent tabbedContent = ContentUtilEx.findTabbedContent(toolWindow.getContentManager(), TAB_NAME);
|
||||
String shortName = String.valueOf(tabbedContent == null ? 1 : tabbedContent.getTabs().size() + 1);
|
||||
String shortName = generateShortName(toolWindow);
|
||||
VcsLogUiImpl logUi = logManager.createLog(ContentUtilEx.getFullName(TAB_NAME, shortName));
|
||||
addLogTab(logManager, toolWindow, logUi, shortName);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String generateShortName(ToolWindow toolWindow) {
|
||||
TabbedContent tabbedContent = ContentUtilEx.findTabbedContent(toolWindow.getContentManager(), TAB_NAME);
|
||||
if (tabbedContent != null) {
|
||||
return String.valueOf(tabbedContent.getTabs().size() + 1);
|
||||
}
|
||||
else {
|
||||
List<Content> contents = ContainerUtil.filter(toolWindow.getContentManager().getContents(), new Condition<Content>() {
|
||||
@Override
|
||||
public boolean value(Content content) {
|
||||
return TAB_NAME.equals(content.getUserData(Content.TAB_GROUP_NAME_KEY));
|
||||
}
|
||||
});
|
||||
return String.valueOf(contents.size() + 1);
|
||||
}
|
||||
}
|
||||
|
||||
private static void addLogTab(@NotNull VcsLogManager logManager,
|
||||
@NotNull ToolWindow toolWindow,
|
||||
@NotNull VcsLogUiImpl logUi,
|
||||
|
||||
Reference in New Issue
Block a user