提交 13733595 编写于 作者: I isidor

move file to trash as command

上级 eb405494
......@@ -7,9 +7,9 @@
import nls = require('vs/nls');
import { Registry } from 'vs/platform/registry/common/platform';
import { Action, IAction } from 'vs/base/common/actions';
import { ActionItem, BaseActionItem, Separator } from 'vs/base/browser/ui/actionbar/actionbar';
import { ActionItem, BaseActionItem } from 'vs/base/browser/ui/actionbar/actionbar';
import { Scope, IActionBarRegistry, Extensions as ActionBarExtensions, ActionBarContributor } from 'vs/workbench/browser/actions';
import { GlobalNewUntitledFileAction, SaveFileAsAction, ShowOpenedFileInNewWindow, CopyPathAction, GlobalCopyPathAction, RevealInOSAction, GlobalRevealInOSAction, pasteIntoFocusedFilesExplorerViewItem, FocusOpenEditorsView, FocusFilesExplorer, GlobalCompareResourcesAction, GlobalNewFileAction, GlobalNewFolderAction, RevertFileAction, SaveFilesAction, SaveAllAction, SaveFileAction, MoveFileToTrashAction, PasteFileAction, CopyFileAction, ShowActiveFileInExplorer, CollapseExplorerView, RefreshExplorerView, CompareWithSavedAction, CompareWithClipboardAction, NEW_FILE_COMMAND_ID, NEW_FILE_LABEL, NEW_FOLDER_COMMAND_ID, NEW_FOLDER_LABEL, TRIGGER_RENAME_COMMAND_ID, TRIGGER_RENAME_LABEL } from 'vs/workbench/parts/files/electron-browser/fileActions';
import { GlobalNewUntitledFileAction, SaveFileAsAction, ShowOpenedFileInNewWindow, CopyPathAction, GlobalCopyPathAction, RevealInOSAction, GlobalRevealInOSAction, pasteIntoFocusedFilesExplorerViewItem, FocusOpenEditorsView, FocusFilesExplorer, GlobalCompareResourcesAction, GlobalNewFileAction, GlobalNewFolderAction, RevertFileAction, SaveFilesAction, SaveAllAction, SaveFileAction, PasteFileAction, CopyFileAction, ShowActiveFileInExplorer, CollapseExplorerView, RefreshExplorerView, CompareWithSavedAction, CompareWithClipboardAction, NEW_FILE_COMMAND_ID, NEW_FILE_LABEL, NEW_FOLDER_COMMAND_ID, NEW_FOLDER_LABEL, TRIGGER_RENAME_COMMAND_ID, TRIGGER_RENAME_LABEL, MOVE_FILE_TO_TRASH_ID, MOVE_FILE_TO_TRASH_LABEL } from 'vs/workbench/parts/files/electron-browser/fileActions';
import { revertLocalChangesCommand, acceptLocalChangesCommand, CONFLICT_RESOLUTION_CONTEXT } from 'vs/workbench/parts/files/electron-browser/saveErrorHandler';
import { SyncActionDescriptor, MenuId, MenuRegistry } from 'vs/platform/actions/common/actions';
import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/workbench/common/actions';
......@@ -63,25 +63,6 @@ class FilesViewerActionContributor extends ActionBarContributor {
actions.push(this.instantiationService.createInstance(PasteFileAction, tree, <FileStat>stat));
}
// Rename File/Folder
if (!stat.isRoot) {
actions.push(new Separator(null, 150));
// Delete File/Folder
actions.push(this.instantiationService.createInstance(MoveFileToTrashAction, tree, <FileStat>stat));
}
// Set Order
let curOrder = 10;
for (let i = 0; i < actions.length; i++) {
const action = <any>actions[i];
if (!action.order) {
curOrder += 10;
action.order = curOrder;
} else {
curOrder = action.order;
}
}
return actions;
}
......@@ -453,3 +434,13 @@ MenuRegistry.appendMenuItem(MenuId.ExplorerContext, {
},
when: ExplorerRootContext.toNegated()
});
MenuRegistry.appendMenuItem(MenuId.ExplorerContext, {
group: '5_modify',
order: 20,
command: {
id: MOVE_FILE_TO_TRASH_ID,
title: MOVE_FILE_TO_TRASH_LABEL
},
when: ExplorerRootContext.toNegated()
});
......@@ -71,6 +71,9 @@ export const NEW_FOLDER_LABEL = nls.localize('newFolder', "New Folder");
export const TRIGGER_RENAME_COMMAND_ID = 'workbench.command.files.rename';
export const TRIGGER_RENAME_LABEL = nls.localize('rename', "Rename");
export const MOVE_FILE_TO_TRASH_ID = 'workbench.command.files.moveToTrash';
export const MOVE_FILE_TO_TRASH_LABEL = nls.localize('delete', "Delete");
export class BaseErrorReportingAction extends Action {
constructor(
......@@ -803,7 +806,7 @@ export class MoveFileToTrashAction extends BaseDeleteFileAction {
@ITextFileService textFileService: ITextFileService,
@IConfigurationService configurationService: IConfigurationService
) {
super(MoveFileToTrashAction.ID, nls.localize('delete', "Delete"), tree, element, true, fileService, messageService, textFileService, configurationService);
super(MoveFileToTrashAction.ID, MOVE_FILE_TO_TRASH_LABEL, tree, element, true, fileService, messageService, textFileService, configurationService);
}
}
......@@ -1799,3 +1802,14 @@ CommandsRegistry.registerCommand({
return renameAction.run(explorerContext);
}
});
CommandsRegistry.registerCommand({
id: MOVE_FILE_TO_TRASH_ID,
handler: (accessor, resource: URI, explorerContext: IExplorerContext) => {
const instantationService = accessor.get(IInstantiationService);
const listService = accessor.get(IListService);
const moveFileToTrashAction = instantationService.createInstance(MoveFileToTrashAction, listService.lastFocusedList, explorerContext.stat);
return moveFileToTrashAction.run(explorerContext);
}
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册