[file-history] add "Show in Git Log" action to the file history toolbar

GitOrigin-RevId: 918b6671aa6eaa1b00717eba82c0e213b1145f57
This commit is contained in:
Julia Beliaeva
2024-03-17 23:44:36 +00:00
committed by intellij-monorepo-bot
parent f0113d41a6
commit f73818ff1b
3 changed files with 18 additions and 2 deletions
@@ -265,6 +265,9 @@
<reference id="VcsHistoryActionsGroup.Toolbar"/>
<reference id="Vcs.Log.ResumeIndexing"/>
</group>
<group id="Vcs.FileHistory.Toolbar.RightCorner">
<reference id="Vcs.Log.SelectInLog"/>
</group>
<group id="Vcs.Log.Internal" internal="true" popup="true">
<reference id="Vcs.Log.InvalidateCaches"/>
@@ -16,6 +16,7 @@ import com.intellij.openapi.vcs.changes.Change;
import com.intellij.openapi.vcs.changes.EditorTabDiffPreviewManager;
import com.intellij.openapi.vcs.history.VcsFileRevision;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.ui.GuiUtils;
import com.intellij.ui.JBSplitter;
import com.intellij.ui.OnePixelSplitter;
import com.intellij.ui.PopupHandler;
@@ -23,6 +24,7 @@ import com.intellij.ui.components.JBPanel;
import com.intellij.ui.navigation.History;
import com.intellij.ui.switcher.QuickActionProvider;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.components.BorderLayoutPanel;
import com.intellij.util.ui.table.ComponentsListFocusTraversalPolicy;
import com.intellij.util.ui.update.Activatable;
import com.intellij.util.ui.update.UiNotifyConnector;
@@ -202,7 +204,17 @@ public class FileHistoryPanel extends JPanel implements DataProvider, Disposable
ActionToolbar toolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.VCS_HISTORY_TOOLBAR_PLACE,
toolbarGroup, true);
toolbar.setTargetComponent(myGraphTable);
return toolbar.getComponent();
ActionGroup rightToolbarGroup = new DefaultActionGroup(ActionManager.getInstance().getAction(VcsLogActionIds.FILE_HISTORY_TOOLBAR_RIGHT_CORNER_ACTION_GROUP));
ActionToolbar rightCornerToolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.VCS_HISTORY_TOOLBAR_PLACE,
rightToolbarGroup, true);
rightCornerToolbar.setTargetComponent(myGraphTable);
BorderLayoutPanel panel = new BorderLayoutPanel();
GuiUtils.installVisibilityReferent(panel, toolbar.getComponent());
panel.addToCenter(toolbar.getComponent());
panel.addToRight(rightCornerToolbar.getComponent());
return panel;
}
public @NotNull VcsLogGraphTable getGraphTable() {
@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.vcs.log.ui;
import org.jetbrains.annotations.NonNls;
@@ -11,6 +11,7 @@ public final @NonNls class VcsLogActionIds {
public static final String PRESENTATION_SETTINGS_ACTION_GROUP = "Vcs.Log.PresentationSettings";
public static final String TEXT_FILTER_SETTINGS_ACTION_GROUP = "Vcs.Log.TextFilterSettings";
public static final String FILE_HISTORY_TOOLBAR_ACTION_GROUP = "Vcs.FileHistory.Toolbar";
public static final String FILE_HISTORY_TOOLBAR_RIGHT_CORNER_ACTION_GROUP = "Vcs.FileHistory.Toolbar.RightCorner";
public static final String HISTORY_POPUP_ACTION_GROUP = "Vcs.FileHistory.ContextMenu";
public static final String CHANGES_BROWSER_POPUP_ACTION_GROUP = "Vcs.Log.ChangesBrowser.Popup";
public static final String CHANGES_BROWSER_TOOLBAR_ACTION_GROUP = "Vcs.Log.ChangesBrowser.Toolbar";