diff --git a/src/vs/workbench/contrib/scm/browser/scmHistoryViewPane.ts b/src/vs/workbench/contrib/scm/browser/scmHistoryViewPane.ts index 88c5c132598c2..2e636ab6ca1ea 100644 --- a/src/vs/workbench/contrib/scm/browser/scmHistoryViewPane.ts +++ b/src/vs/workbench/contrib/scm/browser/scmHistoryViewPane.ts @@ -285,6 +285,28 @@ registerAction2(class extends ViewAction { } }); +registerAction2(class extends ViewAction { + constructor() { + super({ + id: 'workbench.scm.action.graph.collapseAll', + title: localize('collapseAll', "Collapse All"), + icon: Codicon.collapseAll, + viewId: HISTORY_VIEW_PANE_ID, + precondition: ContextKeys.SCMHistoryItemCount.notEqualsTo(0), + f1: false, + menu: { + id: MenuId.SCMHistoryTitle, + group: '9_viewmode', + order: 3 + } + }); + } + + async runInView(_: ServicesAccessor, view: SCMHistoryViewPane): Promise { + view.collapseAll(); + } +}); + registerAction2(class extends Action2 { constructor() { super({ @@ -1983,6 +2005,10 @@ export class SCMHistoryViewPane extends ViewPane { this._treeViewModel.setViewMode(viewMode); } + collapseAll(): void { + this._tree.collapseAll(); + } + private _createTree(container: HTMLElement): void { this._treeIdentityProvider = new SCMHistoryTreeIdentityProvider();