diff --git a/platform/vcs-log/impl/resources/icons/CollapseMerges.png b/platform/vcs-log/impl/resources/icons/CollapseMerges.png new file mode 100644 index 000000000000..8f7aa5c6fb8c Binary files /dev/null and b/platform/vcs-log/impl/resources/icons/CollapseMerges.png differ diff --git a/platform/vcs-log/impl/resources/icons/CollapseMerges@2x.png b/platform/vcs-log/impl/resources/icons/CollapseMerges@2x.png new file mode 100644 index 000000000000..75be03ec2788 Binary files /dev/null and b/platform/vcs-log/impl/resources/icons/CollapseMerges@2x.png differ diff --git a/platform/vcs-log/impl/resources/icons/CollapseMerges@2x_dark.png b/platform/vcs-log/impl/resources/icons/CollapseMerges@2x_dark.png new file mode 100644 index 000000000000..f678b1b8cf6b Binary files /dev/null and b/platform/vcs-log/impl/resources/icons/CollapseMerges@2x_dark.png differ diff --git a/platform/vcs-log/impl/resources/icons/CollapseMerges_dark.png b/platform/vcs-log/impl/resources/icons/CollapseMerges_dark.png new file mode 100644 index 000000000000..e5af04bfcd72 Binary files /dev/null and b/platform/vcs-log/impl/resources/icons/CollapseMerges_dark.png differ diff --git a/platform/vcs-log/impl/resources/icons/ExpandMerges.png b/platform/vcs-log/impl/resources/icons/ExpandMerges.png new file mode 100644 index 000000000000..c49336a3ffd6 Binary files /dev/null and b/platform/vcs-log/impl/resources/icons/ExpandMerges.png differ diff --git a/platform/vcs-log/impl/resources/icons/ExpandMerges@2x.png b/platform/vcs-log/impl/resources/icons/ExpandMerges@2x.png new file mode 100644 index 000000000000..27c572c6919b Binary files /dev/null and b/platform/vcs-log/impl/resources/icons/ExpandMerges@2x.png differ diff --git a/platform/vcs-log/impl/resources/icons/ExpandMerges@2x_dark.png b/platform/vcs-log/impl/resources/icons/ExpandMerges@2x_dark.png new file mode 100644 index 000000000000..22ff8c99a712 Binary files /dev/null and b/platform/vcs-log/impl/resources/icons/ExpandMerges@2x_dark.png differ diff --git a/platform/vcs-log/impl/resources/icons/ExpandMerges_dark.png b/platform/vcs-log/impl/resources/icons/ExpandMerges_dark.png new file mode 100644 index 000000000000..6d5d8f1c562e Binary files /dev/null and b/platform/vcs-log/impl/resources/icons/ExpandMerges_dark.png differ diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/VcsLogUiImpl.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/VcsLogUiImpl.java index 13a39fbfe08c..8a12d72fdf05 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/VcsLogUiImpl.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/VcsLogUiImpl.java @@ -114,7 +114,12 @@ public class VcsLogUiImpl implements VcsLogUi, Disposable { ApplicationManager.getApplication().invokeLater(new Runnable() { @Override public void run() { - assert updater != null : "Action:" + title + "\nController: " + myVisiblePack.getVisibleGraph().getActionController() + "\nAnswer:" + answer; + assert updater != null : "Action:" + + title + + "\nController: " + + myVisiblePack.getVisibleGraph().getActionController() + + "\nAnswer:" + + answer; updater.run(); getTable().handleAnswer(answer, true, null); } @@ -124,11 +129,13 @@ public class VcsLogUiImpl implements VcsLogUi, Disposable { } public void expandAll() { - performLongAction(new GraphAction.GraphActionImpl(null, GraphAction.Type.BUTTON_EXPAND), "Expanding linear branches..."); + performLongAction(new GraphAction.GraphActionImpl(null, GraphAction.Type.BUTTON_EXPAND), + "Expanding " + (getBekType() == PermanentGraph.SortType.LinearBek ? "merges..." : "linear branches...")); } public void collapseAll() { - performLongAction(new GraphAction.GraphActionImpl(null, GraphAction.Type.BUTTON_COLLAPSE), "Collapsing linear branches..."); + performLongAction(new GraphAction.GraphActionImpl(null, GraphAction.Type.BUTTON_COLLAPSE), + "Collapsing " + (getBekType() == PermanentGraph.SortType.LinearBek ? "merges..." : "linear branches...")); } public void setLongEdgeVisibility(boolean visibility) { 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 b01b494680f2..40fb93f38ea5 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 @@ -25,6 +25,7 @@ import com.intellij.vcs.log.*; import com.intellij.vcs.log.data.VcsLogDataHolder; import com.intellij.vcs.log.data.VcsLogUiProperties; import com.intellij.vcs.log.data.VisiblePack; +import com.intellij.vcs.log.graph.PermanentGraph; import com.intellij.vcs.log.graph.impl.facade.bek.BekSorter; import com.intellij.vcs.log.ui.VcsLogUiImpl; import com.intellij.vcs.log.ui.filter.VcsLogClassicFilterUi; @@ -195,6 +196,16 @@ public class MainFrame extends JPanel implements TypeSafeDataProvider { if (!myFilterUi.getFilters().isEmpty()) { e.getPresentation().setEnabled(false); } + if (myUI.getBekType() == PermanentGraph.SortType.LinearBek) { + e.getPresentation().setIcon(VcsLogIcons.CollapseMerges); + e.getPresentation().setText("Collapse all merges"); + e.getPresentation().setDescription("Collapse all merges"); + } + else { + e.getPresentation().setIcon(VcsLogIcons.CollapseBranches); + e.getPresentation().setText("Collapse all linear branches"); + e.getPresentation().setDescription("Collapse all linear branches"); + } } }; @@ -210,6 +221,16 @@ public class MainFrame extends JPanel implements TypeSafeDataProvider { if (!myFilterUi.getFilters().isEmpty()) { e.getPresentation().setEnabled(false); } + if (myUI.getBekType() == PermanentGraph.SortType.LinearBek) { + e.getPresentation().setIcon(VcsLogIcons.ExpandMerges); + e.getPresentation().setText("Expand all merges"); + e.getPresentation().setDescription("Expand all merges"); + } + else { + e.getPresentation().setIcon(VcsLogIcons.ExpandBranches); + e.getPresentation().setText("Expand all linear branches"); + e.getPresentation().setDescription("Expand all linear branches"); + } } }; diff --git a/platform/vcs-log/impl/src/icons/VcsLogIcons.java b/platform/vcs-log/impl/src/icons/VcsLogIcons.java index 9f0d4f42d0a2..50b0c14614dd 100644 --- a/platform/vcs-log/impl/src/icons/VcsLogIcons.java +++ b/platform/vcs-log/impl/src/icons/VcsLogIcons.java @@ -15,6 +15,8 @@ public class VcsLogIcons { public static final Icon Branch = load("/icons/branch.png"); // 16x16 public static final Icon CollapseBranches = load("/icons/CollapseBranches.png"); // 16x16 + public static final Icon CollapseMerges = load("/icons/CollapseMerges.png"); // 16x16 public static final Icon ExpandBranches = load("/icons/ExpandBranches.png"); // 16x16 + public static final Icon ExpandMerges = load("/icons/ExpandMerges.png"); // 16x16 public static final Icon ShowHideLongEdges = load("/icons/ShowHideLongEdges.png"); // 16x16 }