diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index c3d9765484ca4f32a0c139628fd5a663a7d7c249..e5e5ac6df739e28ee2cee3cbd3a1d2638e229a06 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -1142,9 +1142,9 @@ export class WindowsManager implements IWindowsMainService { this.fileDialog.pickAndOpen({ pickFolders: true, forceNewWindow, window }, 'openFolder', data); } - public pickFolder(): TPromise { + public pickFolder(options?: { buttonLabel: string }): TPromise { return new TPromise((c, e) => { - this.fileDialog.getFileOrFolderPaths({ pickFolders: true }, folders => { + this.fileDialog.getFileOrFolderPaths({ pickFolders: true, buttonLabel: options && options.buttonLabel }, folders => { c(folders || []); }); }); @@ -1174,6 +1174,7 @@ interface INativeOpenDialogOptions { path?: string; forceNewWindow?: boolean; window?: CodeWindow; + buttonLabel?: string; } class FileDialog { @@ -1215,7 +1216,8 @@ class FileDialog { dialog.showOpenDialog(focussedWindow && focussedWindow.win, { defaultPath: workingDir, - properties: pickerProperties + properties: pickerProperties, + buttonLabel: options && options.buttonLabel ? options.buttonLabel : void 0 }, paths => { if (paths && paths.length > 0) { diff --git a/src/vs/platform/windows/common/windows.ts b/src/vs/platform/windows/common/windows.ts index 33545fb62151cff652c783cf51f75b4d0ad38897..1dd59dbed5e4d86ce2d036d7875974815855d503 100644 --- a/src/vs/platform/windows/common/windows.ts +++ b/src/vs/platform/windows/common/windows.ts @@ -24,7 +24,7 @@ export interface IWindowsService { pickFileFolderAndOpen(windowId: number, forceNewWindow?: boolean, data?: ITelemetryData): TPromise; pickFileAndOpen(windowId: number, forceNewWindow?: boolean, path?: string, data?: ITelemetryData): TPromise; pickFolderAndOpen(windowId: number, forceNewWindow?: boolean, data?: ITelemetryData): TPromise; - pickFolder(): TPromise; + pickFolder(options?: { buttonLabel: string }): TPromise; reloadWindow(windowId: number): TPromise; openDevTools(windowId: number): TPromise; toggleDevTools(windowId: number): TPromise; @@ -78,7 +78,7 @@ export interface IWindowService { pickFileFolderAndOpen(forceNewWindow?: boolean, data?: ITelemetryData): TPromise; pickFileAndOpen(forceNewWindow?: boolean, path?: string, data?: ITelemetryData): TPromise; pickFolderAndOpen(forceNewWindow?: boolean, data?: ITelemetryData): TPromise; - pickFolder(): TPromise; + pickFolder(options?: { buttonLabel: string }): TPromise; reloadWindow(): TPromise; openDevTools(): TPromise; toggleDevTools(): TPromise; diff --git a/src/vs/platform/windows/common/windowsIpc.ts b/src/vs/platform/windows/common/windowsIpc.ts index 1f113da4d8a08e124e1c9fc5369dcdfa85200802..686ae28b8ca6df0344417f134be0a42d991273a4 100644 --- a/src/vs/platform/windows/common/windowsIpc.ts +++ b/src/vs/platform/windows/common/windowsIpc.ts @@ -17,7 +17,7 @@ export interface IWindowsChannel extends IChannel { call(command: 'pickFileFolderAndOpen', arg: [number, boolean, ITelemetryData]): TPromise; call(command: 'pickFileAndOpen', arg: [number, boolean, string, ITelemetryData]): TPromise; call(command: 'pickFolderAndOpen', arg: [number, boolean, ITelemetryData]): TPromise; - call(command: 'pickFolder'): TPromise; + call(command: 'pickFolder', arg: { buttonLabel: string }): TPromise; call(command: 'reloadWindow', arg: number): TPromise; call(command: 'toggleDevTools', arg: number): TPromise; call(command: 'closeFolder', arg: number): TPromise; @@ -68,7 +68,7 @@ export class WindowsChannel implements IWindowsChannel { case 'pickFileFolderAndOpen': return this.service.pickFileFolderAndOpen(arg[0], arg[1], arg[2]); case 'pickFileAndOpen': return this.service.pickFileAndOpen(arg[0], arg[1], arg[2], arg[3]); case 'pickFolderAndOpen': return this.service.pickFolderAndOpen(arg[0], arg[1], arg[2]); - case 'pickFolder': return this.service.pickFolder(); + case 'pickFolder': return this.service.pickFolder(arg); case 'reloadWindow': return this.service.reloadWindow(arg); case 'openDevTools': return this.service.openDevTools(arg); case 'toggleDevTools': return this.service.toggleDevTools(arg); @@ -129,8 +129,8 @@ export class WindowsChannelClient implements IWindowsService { return this.channel.call('pickFolderAndOpen', [windowId, forceNewWindow, data]); } - pickFolder(): TPromise { - return this.channel.call('pickFolder'); + pickFolder(options?: { buttonLabel: string }): TPromise { + return this.channel.call('pickFolder', options); } reloadWindow(windowId: number): TPromise { diff --git a/src/vs/platform/windows/electron-browser/windowService.ts b/src/vs/platform/windows/electron-browser/windowService.ts index ca405260adaaa5526645d0eda680107525617cc5..b5bf02889081bcda6536fbb177308857a765a41b 100644 --- a/src/vs/platform/windows/electron-browser/windowService.ts +++ b/src/vs/platform/windows/electron-browser/windowService.ts @@ -34,8 +34,8 @@ export class WindowService implements IWindowService { return this.windowsService.pickFolderAndOpen(this.windowId, forceNewWindow, data); } - pickFolder(): TPromise { - return this.windowsService.pickFolder(); + pickFolder(options?: { buttonLabel: string }): TPromise { + return this.windowsService.pickFolder(options); } reloadWindow(): TPromise { diff --git a/src/vs/platform/windows/electron-main/windows.ts b/src/vs/platform/windows/electron-main/windows.ts index c87bb8d570b5e86b126ff287560266d43a289610..62242697a6f9118ff69733f47653c14de4402d27 100644 --- a/src/vs/platform/windows/electron-main/windows.ts +++ b/src/vs/platform/windows/electron-main/windows.ts @@ -52,7 +52,7 @@ export interface IWindowsMainService { pickFileFolderAndOpen(forceNewWindow?: boolean, data?: ITelemetryData): void; pickFileAndOpen(forceNewWindow?: boolean, path?: string, window?: ICodeWindow, data?: ITelemetryData): void; pickFolderAndOpen(forceNewWindow?: boolean, window?: ICodeWindow, data?: ITelemetryData): void; - pickFolder(): TPromise; + pickFolder(options?: { buttonLabel: string }): TPromise; focusLastActive(cli: ParsedArgs, context: OpenContext): ICodeWindow; getLastActiveWindow(): ICodeWindow; findWindow(workspacePath: string, filePath?: string, extensionDevelopmentPath?: string): ICodeWindow; diff --git a/src/vs/platform/windows/electron-main/windowsService.ts b/src/vs/platform/windows/electron-main/windowsService.ts index 0d8b8d0f088f18faf8751f3416e53c3f8e8f0741..ee19f803266d000fe8eeeddde12b4e29bf627a73 100644 --- a/src/vs/platform/windows/electron-main/windowsService.ts +++ b/src/vs/platform/windows/electron-main/windowsService.ts @@ -67,8 +67,8 @@ export class WindowsService implements IWindowsService, IDisposable { return TPromise.as(null); } - pickFolder(): TPromise { - return this.windowsMainService.pickFolder(); + pickFolder(options?: { buttonLabel: string }): TPromise { + return this.windowsMainService.pickFolder(options); } reloadWindow(windowId: number): TPromise { diff --git a/src/vs/workbench/browser/actions/fileActions.ts b/src/vs/workbench/browser/actions/fileActions.ts index 3506c8275c0f84b274a68bddbf36737ade58f48f..4edaf022d0085922f062b8824ffb4fdf6fdf5ee8 100644 --- a/src/vs/workbench/browser/actions/fileActions.ts +++ b/src/vs/workbench/browser/actions/fileActions.ts @@ -70,7 +70,7 @@ export class AddRootFolderAction extends Action { return this.windowService.pickFolderAndOpen(false /* prefer same window */); } - return this.windowService.pickFolder().then(folders => { + return this.windowService.pickFolder({ buttonLabel: nls.localize('add', "Add") }).then(folders => { return this.workspaceEditingService.addRoots(folders.map(folder => URI.file(folder))); }); } diff --git a/src/vs/workbench/test/workbenchTestServices.ts b/src/vs/workbench/test/workbenchTestServices.ts index 77f7830e75196b855f2332717396df020e4ae705..4cc8686ba6ff4a6f9d53a70bf9802585ccb0ce82 100644 --- a/src/vs/workbench/test/workbenchTestServices.ts +++ b/src/vs/workbench/test/workbenchTestServices.ts @@ -858,7 +858,7 @@ export class TestWindowService implements IWindowService { return TPromise.as(void 0); } - pickFolder(): TPromise { + pickFolder(options?: { buttonLabel: string }): TPromise { return TPromise.as([]); } @@ -981,7 +981,7 @@ export class TestWindowsService implements IWindowsService { return TPromise.as(void 0); } - pickFolder(): TPromise { + pickFolder(options?: { buttonLabel: string }): TPromise { return TPromise.as([]); }