提交 b976bcd7 编写于 作者: B Benjamin Pasero

No keybindings in menu when running with Brazilian Portuguese layout (fixes #22399)

上级 21552d1c
......@@ -11,7 +11,7 @@ import DOM = require('vs/base/browser/dom');
import { TPromise } from 'vs/base/common/winjs.base';
import { Builder, $ } from 'vs/base/browser/builder';
import { DelayedDragHandler } from 'vs/base/browser/dnd';
import { Action, IAction } from 'vs/base/common/actions';
import { Action } from 'vs/base/common/actions';
import { BaseActionItem, Separator } from 'vs/base/browser/ui/actionbar/actionbar';
import { IActivityBarService, ProgressBadge, TextBadge, NumberBadge, IconBadge, IBadge } from 'vs/workbench/services/activity/common/activityBarService';
import Event, { Emitter } from 'vs/base/common/event';
......@@ -21,7 +21,6 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
import { ViewletDescriptor } from 'vs/workbench/browser/viewlet';
import { dispose } from 'vs/base/common/lifecycle';
import { ResolvedKeybinding } from 'vs/base/common/keyCodes';
import { IViewletService, } from 'vs/workbench/services/viewlet/browser/viewlet';
import { IPartService, Parts } from 'vs/workbench/services/part/common/partService';
......@@ -449,15 +448,11 @@ export class ViewletOverflowActivityActionItem extends BaseActionItem {
this.contextMenuService.showContextMenu({
getAnchor: () => this.builder.getHTMLElement(),
getActions: () => TPromise.as(this.actions),
getKeyBinding: (action) => this.getKeybinding(action),
getKeyBinding: (action) => this.keybindingService.lookupKeybinding(action.id),
onHide: () => dispose(this.actions)
});
}
private getKeybinding(action: IAction): ResolvedKeybinding {
return this.keybindingService.lookupKeybinding(action.id);
}
private getActions(): OpenViewletAction[] {
const activeViewlet = this.viewletService.getActiveViewlet();
......
......@@ -342,7 +342,7 @@ export abstract class CompositePart<T extends Composite> extends Part {
compositeTitle = compositeDescriptor.name;
}
let keybinding = this.keybindingService.lookupKeybinding(compositeId);
const keybinding = this.keybindingService.lookupKeybinding(compositeId);
this.titleLabel.updateTitle(compositeId, compositeTitle, keybinding ? keybinding.getLabel() : undefined);
......@@ -423,9 +423,7 @@ export abstract class CompositePart<T extends Composite> extends Part {
this.toolBar = new ToolBar(div.getHTMLElement(), this.contextMenuService, {
actionItemProvider: (action: Action) => this.actionItemProvider(action),
orientation: ActionsOrientation.HORIZONTAL,
getKeyBinding: (action) => {
return this.keybindingService.lookupKeybinding(action.id);
},
getKeyBinding: (action) => this.keybindingService.lookupKeybinding(action.id)
});
});
......
......@@ -46,6 +46,7 @@ export class PanelAction extends Action {
private getKeybindingLabel(id: string): string {
const keys = this.keybindingService.lookupKeybinding(id);
return keys ? keys.getLabel() : '';
}
}
......
......@@ -343,9 +343,7 @@ export abstract class AdaptiveCollapsibleViewletView extends FixedCollapsibleVie
orientation: ActionsOrientation.HORIZONTAL,
actionItemProvider: (action) => { return this.getActionItem(action); },
ariaLabel: nls.localize('viewToolbarAriaLabel', "{0} actions", this.viewName),
getKeyBinding: (action) => {
return this.keybindingService.lookupKeybinding(action.id);
}
getKeyBinding: (action) => this.keybindingService.lookupKeybinding(action.id)
});
this.toolBar.actionRunner = this.actionRunner;
this.toolBar.setActions(prepareActions(this.getActions()), prepareActions(this.getSecondaryActions()))();
......@@ -474,9 +472,7 @@ export abstract class CollapsibleViewletView extends CollapsibleView implements
orientation: ActionsOrientation.HORIZONTAL,
actionItemProvider: (action) => { return this.getActionItem(action); },
ariaLabel: nls.localize('viewToolbarAriaLabel', "{0} actions", this.viewName),
getKeyBinding: (action) => {
return this.keybindingService.lookupKeybinding(action.id);
}
getKeyBinding: (action) => this.keybindingService.lookupKeybinding(action.id)
});
this.toolBar.actionRunner = this.actionRunner;
this.toolBar.setActions(prepareActions(this.getActions()), prepareActions(this.getSecondaryActions()))();
......
......@@ -318,9 +318,7 @@ export class ElectronWindow {
this.contextMenuService.showContextMenu({
getAnchor: () => target,
getActions: () => TPromise.as(TextInputActions),
getKeyBinding: action => {
return this.keybindingService.lookupKeybinding(action.id);
}
getKeyBinding: action => this.keybindingService.lookupKeybinding(action.id)
});
}
}
......@@ -344,6 +342,9 @@ export class ElectronWindow {
return this.partService.joinCreation().then(() => {
return arrays.coalesce(actionIds.map(id => {
const binding = this.keybindingService.lookupKeybinding(id);
if (!binding) {
return null;
}
// first try to resolve a native accelerator
const electronAccelerator = binding.getElectronAccelerator();
......
......@@ -11,7 +11,7 @@ import { isMacintosh } from 'vs/base/common/platform';
import { ActionItem, BaseActionItem, Separator } from 'vs/base/browser/ui/actionbar/actionbar';
import { Scope, IActionBarRegistry, Extensions as ActionBarExtensions, ActionBarContributor } from 'vs/workbench/browser/actionBarRegistry';
import { IEditorInputActionContext, IEditorInputAction, EditorInputActionContributor } from 'vs/workbench/browser/parts/editor/baseEditor';
import { GlobalNewUntitledFileAction, SaveFileAsAction, OpenFileAction, ShowOpenedFileInNewWindow, CopyPathAction, GlobalCopyPathAction, RevealInOSAction, GlobalRevealInOSAction, pasteIntoFocusedFilesExplorerViewItem, FocusOpenEditorsView, FocusFilesExplorer, GlobalCompareResourcesAction, GlobalNewFileAction, GlobalNewFolderAction, RevertFileAction, SaveFilesAction, SaveAllAction, SaveFileAction, keybindingForAction, MoveFileToTrashAction, TriggerRenameFileAction, PasteFileAction, CopyFileAction, SelectResourceForCompareAction, CompareResourcesAction, NewFolderAction, NewFileAction, OpenToSideAction, ShowActiveFileInExplorer, CollapseExplorerView, RefreshExplorerView } from 'vs/workbench/parts/files/browser/fileActions';
import { GlobalNewUntitledFileAction, SaveFileAsAction, OpenFileAction, ShowOpenedFileInNewWindow, CopyPathAction, GlobalCopyPathAction, RevealInOSAction, GlobalRevealInOSAction, pasteIntoFocusedFilesExplorerViewItem, FocusOpenEditorsView, FocusFilesExplorer, GlobalCompareResourcesAction, GlobalNewFileAction, GlobalNewFolderAction, RevertFileAction, SaveFilesAction, SaveAllAction, SaveFileAction, MoveFileToTrashAction, TriggerRenameFileAction, PasteFileAction, CopyFileAction, SelectResourceForCompareAction, CompareResourcesAction, NewFolderAction, NewFileAction, OpenToSideAction, ShowActiveFileInExplorer, CollapseExplorerView, RefreshExplorerView } from 'vs/workbench/parts/files/browser/fileActions';
import { RevertLocalChangesAction, AcceptLocalChangesAction, CONFLICT_RESOLUTION_SCHEME } from 'vs/workbench/parts/files/browser/saveErrorHandler';
import { SyncActionDescriptor, MenuId, MenuRegistry } from 'vs/platform/actions/common/actions';
import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/workbench/common/actionRegistry';
......@@ -133,7 +133,7 @@ class FilesViewerActionContributor extends ActionBarContributor {
if (context && context.element instanceof FileStat) {
// Any other item with keybinding
const keybinding = keybindingForAction(action.id, this.keybindingService);
const keybinding = this.keybindingService.lookupKeybinding(action.id);
if (keybinding) {
return new ActionItem(context, action, { label: true, keybinding: keybinding.getLabel() });
}
......
......@@ -34,7 +34,6 @@ import { IActionProvider } from 'vs/base/parts/tree/browser/actionsRenderer';
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
import { CollapseAction } from 'vs/workbench/browser/viewlet';
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService';
import { IQuickOpenService, IFilePickOpenEntry } from 'vs/platform/quickOpen/common/quickOpen';
import { IHistoryService } from 'vs/workbench/services/history/common/history';
......@@ -43,7 +42,6 @@ import { Position, IResourceInput, IEditorInput } from 'vs/platform/editor/commo
import { IInstantiationService, IConstructorSignature2, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
import { IMessageService, IMessageWithAction, IConfirmation, Severity, CancelAction } from 'vs/platform/message/common/message';
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
import { ResolvedKeybinding } from 'vs/base/common/keyCodes';
import { getCodeEditor } from 'vs/editor/common/services/codeEditorService';
import { IEditorViewState } from 'vs/editor/common/editorCommon';
import { IBackupFileService } from 'vs/workbench/services/backup/common/backup';
......@@ -1959,10 +1957,6 @@ export class GlobalCopyPathAction extends Action {
}
}
export function keybindingForAction(id: string, keybindingService: IKeybindingService): ResolvedKeybinding {
return keybindingService.lookupKeybinding(id);
}
export function validateFileName(parent: IFileStat, name: string, allowOverwriting: boolean = false): string {
// Produce a well formed file name
......
......@@ -28,7 +28,7 @@ import { IFilesConfiguration } from 'vs/workbench/parts/files/common/files';
import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
import { IFileOperationResult, FileOperationResult, IFileService, isEqual, isParent } from 'vs/platform/files/common/files';
import { ResourceMap } from 'vs/base/common/map';
import { DuplicateFileAction, ImportFileAction, keybindingForAction, IEditableData, IFileViewletState } from 'vs/workbench/parts/files/browser/fileActions';
import { DuplicateFileAction, ImportFileAction, IEditableData, IFileViewletState } from 'vs/workbench/parts/files/browser/fileActions';
import { IDataSource, ITree, IElementCallback, IAccessibilityProvider, IRenderer, ContextMenuEvent, ISorter, IFilter, IDragAndDrop, IDragAndDropData, IDragOverReaction, DRAG_OVER_ACCEPT_BUBBLE_DOWN, DRAG_OVER_ACCEPT_BUBBLE_DOWN_COPY, DRAG_OVER_ACCEPT_BUBBLE_UP, DRAG_OVER_ACCEPT_BUBBLE_UP_COPY, DRAG_OVER_REJECT } from 'vs/base/parts/tree/browser/tree';
import { DesktopDragAndDropData, ExternalElementsDragAndDropData } from 'vs/base/parts/tree/browser/treeDnd';
import { ClickBehavior, DefaultController } from 'vs/base/parts/tree/browser/treeDefaults';
......@@ -484,7 +484,7 @@ export class FileController extends DefaultController {
});
},
getActionItem: this.state.actionProvider.getActionItem.bind(this.state.actionProvider, tree, stat),
getKeyBinding: (a): ResolvedKeybinding => keybindingForAction(a.id, this.keybindingService),
getKeyBinding: (a): ResolvedKeybinding => this.keybindingService.lookupKeybinding(a.id),
getActionsContext: (event) => {
return {
viewletState: this.state,
......
......@@ -28,7 +28,7 @@ import { explorerItemToFileResource } from 'vs/workbench/parts/files/common/file
import { ITextFileService, AutoSaveMode } from 'vs/workbench/services/textfile/common/textfiles';
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
import { EditorStacksModel, EditorGroup } from 'vs/workbench/common/editor/editorStacksModel';
import { keybindingForAction, SaveFileAction, RevertFileAction, SaveFileAsAction, OpenToSideAction, SelectResourceForCompareAction, CompareResourcesAction, SaveAllInGroupAction } from 'vs/workbench/parts/files/browser/fileActions';
import { SaveFileAction, RevertFileAction, SaveFileAsAction, OpenToSideAction, SelectResourceForCompareAction, CompareResourcesAction, SaveAllInGroupAction } from 'vs/workbench/parts/files/browser/fileActions';
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
import { CloseOtherEditorsInGroupAction, CloseEditorAction, CloseEditorsInGroupAction } from 'vs/workbench/browser/parts/editor/editorActions';
......@@ -112,7 +112,7 @@ export class Renderer implements IRenderer {
const editorGroupActions = this.actionProvider.getEditorGroupActions();
editorGroupActions.forEach(a => {
const key = keybindingForAction(a.id, this.keybindingService);
const key = this.keybindingService.lookupKeybinding(a.id);
editorGroupTemplate.actionBar.push(a, { icon: true, label: false, keybinding: key ? key.getLabel() : void 0 });
});
......@@ -125,7 +125,7 @@ export class Renderer implements IRenderer {
const openEditorActions = this.actionProvider.getOpenEditorActions();
openEditorActions.forEach(a => {
const key = keybindingForAction(a.id, this.keybindingService);
const key = this.keybindingService.lookupKeybinding(a.id);
editorTemplate.actionBar.push(a, { icon: true, label: false, keybinding: key ? key.getLabel() : void 0 });
});
......@@ -261,7 +261,7 @@ export class Controller extends DefaultController {
this.contextMenuService.showContextMenu({
getAnchor: () => anchor,
getActions: () => this.actionProvider.getSecondaryActions(tree, element),
getKeyBinding: (action) => keybindingForAction(action.id, this.keybindingService),
getKeyBinding: (action) => this.keybindingService.lookupKeybinding(action.id),
onHide: (wasCancelled?: boolean) => {
if (wasCancelled) {
tree.DOMFocus();
......
......@@ -297,9 +297,9 @@ export class CommandsHandler extends QuickOpenHandler {
for (let i = 0; i < actionDescriptors.length; i++) {
const actionDescriptor = actionDescriptors[i];
const keybind = this.keybindingService.lookupKeybinding(actionDescriptor.id);
const keyLabel = keybind ? keybind.getLabel() : '';
const keyAriaLabel = keybind ? keybind.getAriaLabel() : '';
const keybinding = this.keybindingService.lookupKeybinding(actionDescriptor.id);
const keyLabel = keybinding ? keybinding.getLabel() : '';
const keyAriaLabel = keybinding ? keybinding.getAriaLabel() : '';
if (actionDescriptor.label) {
......@@ -329,9 +329,9 @@ export class CommandsHandler extends QuickOpenHandler {
for (let i = 0; i < actions.length; i++) {
const action = actions[i];
const keybind = this.keybindingService.lookupKeybinding(action.id);
const keyLabel = keybind ? keybind.getLabel() : '';
const keyAriaLabel = keybind ? keybind.getAriaLabel() : '';
const keybinding = this.keybindingService.lookupKeybinding(action.id);
const keyLabel = keybinding ? keybinding.getLabel() : '';
const keyAriaLabel = keybinding ? keybinding.getAriaLabel() : '';
const label = action.label;
if (label) {
......@@ -358,9 +358,9 @@ export class CommandsHandler extends QuickOpenHandler {
: action.item.title;
if (label) {
const labelHighlights = wordFilter(searchValue, label);
const keybind = this.keybindingService.lookupKeybinding(action.item.id);
const keyLabel = keybind ? keybind.getLabel() : '';
const keyAriaLabel = keybind ? keybind.getAriaLabel() : '';
const keybinding = this.keybindingService.lookupKeybinding(action.item.id);
const keyLabel = keybinding ? keybinding.getLabel() : '';
const keyAriaLabel = keybinding ? keybinding.getAriaLabel() : '';
const alias = action.item.alias ? action.item.alias : null;
const aliasHighlights = alias ? wordFilter(searchValue, alias) : null;
if (labelHighlights || aliasHighlights) {
......
......@@ -174,13 +174,7 @@ export class TerminalPanel extends Panel {
getAnchor: () => anchor,
getActions: () => TPromise.as(this._getContextMenuActions()),
getActionsContext: () => this._parentDomElement,
getKeyBinding: (action) => {
const kb = this._keybindingService.lookupKeybinding(action.id);
if (kb) {
return kb;
}
return null;
}
getKeyBinding: (action) => this._keybindingService.lookupKeybinding(action.id)
});
}
this._cancelContextMenu = false;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册