From 78ac6c3398e4c000492fbec8387eac8ae05e2db5 Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Sat, 5 Mar 2016 15:59:33 +0300 Subject: [PATCH] log: use faster way to report VCSs selected in the context relates to IDEA-55508 --- .../intellij/vcs/log/ui/frame/MainFrame.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java index 38044fb66905..08a80e76af9f 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java @@ -1,5 +1,6 @@ package com.intellij.vcs.log.ui.frame; +import com.google.common.primitives.Ints; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.progress.EmptyProgressIndicator; @@ -292,20 +293,10 @@ public class MainFrame extends JPanel implements DataProvider, Disposable { }), VcsRevisionNumber.class); } else if (VcsDataKeys.VCS.is(dataId)) { - List commits = myLog.getSelectedCommits(); - Collection logProviders = myLog.getLogProviders(); - if (logProviders.size() == 1) { - if (!commits.isEmpty()) { - return myLogDataManager.getLogProvider(assertNotNull(getFirstItem(commits)).getRoot()).getSupportedVcs(); - } - return null; - } - if (commits.size() > VcsLogUtil.MAX_SELECTED_COMMITS) return null; - - Set roots = ContainerUtil.map2Set(commits, new Function() { + Set roots = ContainerUtil.map2Set(Ints.asList(myGraphTable.getSelectedRows()), new Function() { @Override - public VirtualFile fun(CommitId commitId) { - return commitId.getRoot(); + public VirtualFile fun(@NotNull Integer row) { + return myGraphTable.getModel().getRoot(row); } }); if (roots.size() == 1) {