Skip to content

Commit c1cff69

Browse files
authored
Consistent layout actions for views/containers/activitybar (microsoft#236686)
consistent layout actions
1 parent 5930e94 commit c1cff69

File tree

6 files changed

+25
-71
lines changed

6 files changed

+25
-71
lines changed

src/vs/workbench/browser/actions/layoutActions.ts

Lines changed: 6 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -181,17 +181,6 @@ MenuRegistry.appendMenuItems([{
181181
when: ContextKeyExpr.and(ContextKeyExpr.notEquals('config.workbench.sideBar.location', 'right'), ContextKeyExpr.equals('viewContainerLocation', ViewContainerLocationToString(ViewContainerLocation.Sidebar))),
182182
order: 1
183183
}
184-
}, {
185-
id: MenuId.ViewTitleContext,
186-
item: {
187-
group: '3_workbench_layout_move',
188-
command: {
189-
id: ToggleSidebarPositionAction.ID,
190-
title: localize('move sidebar right', "Move Primary Side Bar Right")
191-
},
192-
when: ContextKeyExpr.and(ContextKeyExpr.notEquals('config.workbench.sideBar.location', 'right'), ContextKeyExpr.equals('viewLocation', ViewContainerLocationToString(ViewContainerLocation.Sidebar))),
193-
order: 1
194-
}
195184
}, {
196185
id: MenuId.ViewContainerTitleContext,
197186
item: {
@@ -204,36 +193,25 @@ MenuRegistry.appendMenuItems([{
204193
order: 1
205194
}
206195
}, {
207-
id: MenuId.ViewTitleContext,
208-
item: {
209-
group: '3_workbench_layout_move',
210-
command: {
211-
id: ToggleSidebarPositionAction.ID,
212-
title: localize('move sidebar left', "Move Primary Side Bar Left")
213-
},
214-
when: ContextKeyExpr.and(ContextKeyExpr.equals('config.workbench.sideBar.location', 'right'), ContextKeyExpr.equals('viewLocation', ViewContainerLocationToString(ViewContainerLocation.Sidebar))),
215-
order: 1
216-
}
217-
}, {
218-
id: MenuId.ViewTitleContext,
196+
id: MenuId.ViewContainerTitleContext,
219197
item: {
220198
group: '3_workbench_layout_move',
221199
command: {
222200
id: ToggleSidebarPositionAction.ID,
223201
title: localize('move second sidebar left', "Move Secondary Side Bar Left")
224202
},
225-
when: ContextKeyExpr.and(ContextKeyExpr.notEquals('config.workbench.sideBar.location', 'right'), ContextKeyExpr.equals('viewLocation', ViewContainerLocationToString(ViewContainerLocation.AuxiliaryBar))),
203+
when: ContextKeyExpr.and(ContextKeyExpr.notEquals('config.workbench.sideBar.location', 'right'), ContextKeyExpr.equals('viewContainerLocation', ViewContainerLocationToString(ViewContainerLocation.AuxiliaryBar))),
226204
order: 1
227205
}
228206
}, {
229-
id: MenuId.ViewTitleContext,
207+
id: MenuId.ViewContainerTitleContext,
230208
item: {
231209
group: '3_workbench_layout_move',
232210
command: {
233211
id: ToggleSidebarPositionAction.ID,
234212
title: localize('move second sidebar right', "Move Secondary Side Bar Right")
235213
},
236-
when: ContextKeyExpr.and(ContextKeyExpr.equals('config.workbench.sideBar.location', 'right'), ContextKeyExpr.equals('viewLocation', ViewContainerLocationToString(ViewContainerLocation.AuxiliaryBar))),
214+
when: ContextKeyExpr.and(ContextKeyExpr.equals('config.workbench.sideBar.location', 'right'), ContextKeyExpr.equals('viewContainerLocation', ViewContainerLocationToString(ViewContainerLocation.AuxiliaryBar))),
237215
order: 1
238216
}
239217
}]);
@@ -291,9 +269,10 @@ MenuRegistry.appendMenuItem(MenuId.MenubarViewMenu, {
291269

292270
// Toggle Sidebar Visibility
293271

294-
class ToggleSidebarVisibilityAction extends Action2 {
272+
export class ToggleSidebarVisibilityAction extends Action2 {
295273

296274
static readonly ID = 'workbench.action.toggleSidebarVisibility';
275+
static readonly LABEL = localize('compositePart.hideSideBarLabel', "Hide Primary Side Bar");
297276

298277
constructor() {
299278
super({
@@ -349,17 +328,6 @@ MenuRegistry.appendMenuItems([
349328
when: ContextKeyExpr.and(SideBarVisibleContext, ContextKeyExpr.equals('viewContainerLocation', ViewContainerLocationToString(ViewContainerLocation.Sidebar))),
350329
order: 2
351330
}
352-
}, {
353-
id: MenuId.ViewTitleContext,
354-
item: {
355-
group: '3_workbench_layout_move',
356-
command: {
357-
id: ToggleSidebarVisibilityAction.ID,
358-
title: localize('compositePart.hideSideBarLabel', "Hide Primary Side Bar"),
359-
},
360-
when: ContextKeyExpr.and(SideBarVisibleContext, ContextKeyExpr.equals('viewLocation', ViewContainerLocationToString(ViewContainerLocation.Sidebar))),
361-
order: 2
362-
}
363331
}, {
364332
id: MenuId.LayoutControlMenu,
365333
item: {

src/vs/workbench/browser/parts/activitybar/activitybarPart.ts

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { Part } from '../../part.js';
1111
import { ActivityBarPosition, IWorkbenchLayoutService, LayoutSettings, Parts, Position } from '../../../services/layout/browser/layoutService.js';
1212
import { IInstantiationService, ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
1313
import { DisposableStore, MutableDisposable } from '../../../../base/common/lifecycle.js';
14-
import { ToggleSidebarPositionAction } from '../../actions/layoutActions.js';
14+
import { ToggleSidebarPositionAction, ToggleSidebarVisibilityAction } from '../../actions/layoutActions.js';
1515
import { IThemeService, IColorTheme, registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';
1616
import { ACTIVITY_BAR_BACKGROUND, ACTIVITY_BAR_BORDER, ACTIVITY_BAR_FOREGROUND, ACTIVITY_BAR_ACTIVE_BORDER, ACTIVITY_BAR_BADGE_BACKGROUND, ACTIVITY_BAR_BADGE_FOREGROUND, ACTIVITY_BAR_INACTIVE_FOREGROUND, ACTIVITY_BAR_ACTIVE_BACKGROUND, ACTIVITY_BAR_DRAG_AND_DROP_BORDER, ACTIVITY_BAR_ACTIVE_FOCUS_BORDER } from '../../../common/theme.js';
1717
import { activeContrastBorder, contrastBorder, focusBorder } from '../../../../platform/theme/common/colorRegistry.js';
@@ -371,10 +371,16 @@ export class ActivityBarCompositeBar extends PaneCompositeBar {
371371
getActivityBarContextMenuActions(): IAction[] {
372372
const activityBarPositionMenu = this.menuService.getMenuActions(MenuId.ActivityBarPositionMenu, this.contextKeyService, { shouldForwardArgs: true, renderShortTitle: true });
373373
const positionActions = getContextMenuActions(activityBarPositionMenu).secondary;
374-
return [
374+
const actions = [
375375
new SubmenuAction('workbench.action.panel.position', localize('activity bar position', "Activity Bar Position"), positionActions),
376-
toAction({ id: ToggleSidebarPositionAction.ID, label: ToggleSidebarPositionAction.getLabel(this.layoutService), run: () => this.instantiationService.invokeFunction(accessor => new ToggleSidebarPositionAction().run(accessor)) })
376+
toAction({ id: ToggleSidebarPositionAction.ID, label: ToggleSidebarPositionAction.getLabel(this.layoutService), run: () => this.instantiationService.invokeFunction(accessor => new ToggleSidebarPositionAction().run(accessor)) }),
377377
];
378+
379+
if (this.part === Parts.SIDEBAR_PART) {
380+
actions.push(toAction({ id: ToggleSidebarVisibilityAction.ID, label: ToggleSidebarVisibilityAction.LABEL, run: () => this.instantiationService.invokeFunction(accessor => new ToggleSidebarVisibilityAction().run(accessor)) }));
381+
}
382+
383+
return actions;
378384
}
379385

380386
}
@@ -493,15 +499,10 @@ MenuRegistry.appendMenuItem(MenuId.MenubarAppearanceMenu, {
493499
MenuRegistry.appendMenuItem(MenuId.ViewContainerTitleContext, {
494500
submenu: MenuId.ActivityBarPositionMenu,
495501
title: localize('positionActivituBar', "Activity Bar Position"),
496-
when: ContextKeyExpr.equals('viewContainerLocation', ViewContainerLocationToString(ViewContainerLocation.Sidebar)),
497-
group: '3_workbench_layout_move',
498-
order: 1
499-
});
500-
501-
MenuRegistry.appendMenuItem(MenuId.ViewTitleContext, {
502-
submenu: MenuId.ActivityBarPositionMenu,
503-
title: localize('positionActivituBar', "Activity Bar Position"),
504-
when: ContextKeyExpr.equals('viewLocation', ViewContainerLocationToString(ViewContainerLocation.Sidebar)),
502+
when: ContextKeyExpr.or(
503+
ContextKeyExpr.equals('viewContainerLocation', ViewContainerLocationToString(ViewContainerLocation.Sidebar)),
504+
ContextKeyExpr.equals('viewContainerLocation', ViewContainerLocationToString(ViewContainerLocation.AuxiliaryBar))
505+
),
505506
group: '3_workbench_layout_move',
506507
order: 1
507508
});

src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,14 +149,14 @@ MenuRegistry.appendMenuItems([
149149
order: 2
150150
}
151151
}, {
152-
id: MenuId.ViewTitleContext,
152+
id: MenuId.ViewContainerTitleContext,
153153
item: {
154154
group: '3_workbench_layout_move',
155155
command: {
156156
id: ToggleAuxiliaryBarAction.ID,
157157
title: localize2('hideAuxiliaryBar', 'Hide Secondary Side Bar'),
158158
},
159-
when: ContextKeyExpr.and(AuxiliaryBarVisibleContext, ContextKeyExpr.equals('viewLocation', ViewContainerLocationToString(ViewContainerLocation.AuxiliaryBar))),
159+
when: ContextKeyExpr.and(AuxiliaryBarVisibleContext, ContextKeyExpr.equals('viewContainerLocation', ViewContainerLocationToString(ViewContainerLocation.AuxiliaryBar))),
160160
order: 2
161161
}
162162
}

src/vs/workbench/browser/parts/paneCompositeBar.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export class PaneCompositeBar extends Disposable {
9999

100100
constructor(
101101
protected readonly options: IPaneCompositeBarOptions,
102-
private readonly part: Parts,
102+
protected readonly part: Parts,
103103
private readonly paneCompositePart: IPaneCompositePart,
104104
@IInstantiationService protected readonly instantiationService: IInstantiationService,
105105
@IStorageService private readonly storageService: IStorageService,

src/vs/workbench/browser/parts/panel/panelActions.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { ContextKeyExpr, ContextKeyExpression } from '../../../../platform/conte
1414
import { Codicon } from '../../../../base/common/codicons.js';
1515
import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
1616
import { ServicesAccessor } from '../../../../editor/browser/editorExtensions.js';
17-
import { ViewContainerLocationToString, ViewContainerLocation, IViewDescriptorService } from '../../../common/views.js';
17+
import { ViewContainerLocation, IViewDescriptorService } from '../../../common/views.js';
1818
import { IViewsService } from '../../../services/views/common/viewsService.js';
1919
import { IPaneCompositePartService } from '../../../services/panecomposite/browser/panecomposite.js';
2020
import { INotificationService } from '../../../../platform/notification/common/notification.js';
@@ -326,17 +326,6 @@ MenuRegistry.appendMenuItems([
326326
when: ContextKeyExpr.or(ContextKeyExpr.equals('config.workbench.layoutControl.type', 'toggles'), ContextKeyExpr.equals('config.workbench.layoutControl.type', 'both')),
327327
order: 1
328328
}
329-
}, {
330-
id: MenuId.ViewTitleContext,
331-
item: {
332-
group: '3_workbench_layout_move',
333-
command: {
334-
id: TogglePanelAction.ID,
335-
title: localize2('hidePanel', 'Hide Panel'),
336-
},
337-
when: ContextKeyExpr.and(PanelVisibleContext, ContextKeyExpr.equals('viewLocation', ViewContainerLocationToString(ViewContainerLocation.Panel))),
338-
order: 2
339-
}
340329
}
341330
]);
342331

src/vs/workbench/services/views/browser/viewDescriptorService.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -792,16 +792,12 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
792792
order: index,
793793
}, {
794794
id: MenuId.ViewContainerTitleContext,
795-
when: ContextKeyExpr.and(
796-
ContextKeyExpr.equals('viewContainer', viewContainerModel.viewContainer.id),
797-
),
795+
when: ContextKeyExpr.equals('viewContainer', viewContainerModel.viewContainer.id),
798796
order: index,
799797
group: '1_toggleVisibility'
800798
}, {
801799
id: MenuId.ViewTitleContext,
802-
when: ContextKeyExpr.and(
803-
ContextKeyExpr.or(...viewContainerModel.visibleViewDescriptors.map(v => ContextKeyExpr.equals('view', v.id)))
804-
),
800+
when: ContextKeyExpr.or(...viewContainerModel.visibleViewDescriptors.map(v => ContextKeyExpr.equals('view', v.id))),
805801
order: index,
806802
group: '2_toggleVisibility'
807803
}]

0 commit comments

Comments
 (0)