From f545472af897353a40d6caaef08e5e5bc90382f9 Mon Sep 17 00:00:00 2001 From: Roman Nikitenko Date: Thu, 6 Feb 2025 15:57:04 +0000 Subject: [PATCH] Revert "SCM - disable actions for resource groups that do not have any resources (#236813)" This reverts commit 151ef3514e76629f4e7bf3951439b1e0dae0a6e5. --- code/extensions/git/package.json | 14 ++++++------- .../vs/workbench/contrib/scm/browser/menus.ts | 20 +++++++++---------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/code/extensions/git/package.json b/code/extensions/git/package.json index d23ef7b949c..600196ef2ce 100644 --- a/code/extensions/git/package.json +++ b/code/extensions/git/package.json @@ -164,14 +164,14 @@ "title": "%command.stageAll%", "category": "Git", "icon": "$(add)", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.stageAllTracked", "title": "%command.stageAllTracked%", "category": "Git", "icon": "$(add)", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.stageAllUntracked", @@ -244,7 +244,7 @@ "title": "%command.unstageAll%", "category": "Git", "icon": "$(remove)", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.unstageSelectedRanges", @@ -271,14 +271,14 @@ "title": "%command.cleanAll%", "category": "Git", "icon": "$(discard)", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.cleanAllTracked", "title": "%command.cleanAllTracked%", "category": "Git", "icon": "$(discard)", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.cleanAllUntracked", @@ -902,14 +902,14 @@ "title": "%command.viewChanges%", "icon": "$(diff-multiple)", "category": "Git", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.viewStagedChanges", "title": "%command.viewStagedChanges%", "icon": "$(diff-multiple)", "category": "Git", - "enablement": "!operationInProgress && scmResourceGroupResourceCount > 0" + "enablement": "!operationInProgress" }, { "command": "git.viewUntrackedChanges", diff --git a/code/src/vs/workbench/contrib/scm/browser/menus.ts b/code/src/vs/workbench/contrib/scm/browser/menus.ts index 352f63b6f3e..f14d8ea79f6 100644 --- a/code/src/vs/workbench/contrib/scm/browser/menus.ts +++ b/code/src/vs/workbench/contrib/scm/browser/menus.ts @@ -6,7 +6,7 @@ import { IAction } from '../../../../base/common/actions.js'; import { equals } from '../../../../base/common/arrays.js'; import { Emitter } from '../../../../base/common/event.js'; -import { DisposableStore, IDisposable, MutableDisposable, dispose } from '../../../../base/common/lifecycle.js'; +import { DisposableStore, IDisposable, dispose } from '../../../../base/common/lifecycle.js'; import './media/scm.css'; import { localize } from '../../../../nls.js'; import { getActionBarActions } from '../../../../platform/actions/browser/menuEntryActionViewItem.js'; @@ -70,14 +70,13 @@ interface IContextualResourceMenuItem { class SCMMenusItem implements IDisposable { - private readonly _resourceGroupMenu = new MutableDisposable(); + private _resourceGroupMenu: IMenu | undefined; get resourceGroupMenu(): IMenu { - const contextKeyService = this.contextKeyService.createOverlay([ - ['scmResourceGroupResourceCount', this.group.resources.length], - ]); + if (!this._resourceGroupMenu) { + this._resourceGroupMenu = this.menuService.createMenu(MenuId.SCMResourceGroupContext, this.contextKeyService); + } - this._resourceGroupMenu.value = this.menuService.createMenu(MenuId.SCMResourceGroupContext, contextKeyService); - return this._resourceGroupMenu.value; + return this._resourceGroupMenu; } private _resourceFolderMenu: IMenu | undefined; @@ -93,9 +92,8 @@ class SCMMenusItem implements IDisposable { private contextualResourceMenus: Map | undefined; constructor( - private readonly group: ISCMResourceGroup, - private readonly contextKeyService: IContextKeyService, - private readonly menuService: IMenuService + private contextKeyService: IContextKeyService, + private menuService: IMenuService ) { } getResourceMenu(resource: ISCMResource): IMenu { @@ -208,7 +206,7 @@ export class SCMRepositoryMenus implements ISCMRepositoryMenus, IDisposable { ['multiDiffEditorEnableViewChanges', group.multiDiffEditorEnableViewChanges], ]); - result = new SCMMenusItem(group, contextKeyService, this.menuService); + result = new SCMMenusItem(contextKeyService, this.menuService); this.resourceGroupMenusItems.set(group, result); }