提交 1f6006c8 编写于 作者: B Benjamin Pasero

multi root - add buttonLabel option to folder picker and use it

上级 cbe2e67a
......@@ -1142,9 +1142,9 @@ export class WindowsManager implements IWindowsMainService {
this.fileDialog.pickAndOpen({ pickFolders: true, forceNewWindow, window }, 'openFolder', data);
}
public pickFolder(): TPromise<string[]> {
public pickFolder(options?: { buttonLabel: string }): TPromise<string[]> {
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) {
......
......@@ -24,7 +24,7 @@ export interface IWindowsService {
pickFileFolderAndOpen(windowId: number, forceNewWindow?: boolean, data?: ITelemetryData): TPromise<void>;
pickFileAndOpen(windowId: number, forceNewWindow?: boolean, path?: string, data?: ITelemetryData): TPromise<void>;
pickFolderAndOpen(windowId: number, forceNewWindow?: boolean, data?: ITelemetryData): TPromise<void>;
pickFolder(): TPromise<string[]>;
pickFolder(options?: { buttonLabel: string }): TPromise<string[]>;
reloadWindow(windowId: number): TPromise<void>;
openDevTools(windowId: number): TPromise<void>;
toggleDevTools(windowId: number): TPromise<void>;
......@@ -78,7 +78,7 @@ export interface IWindowService {
pickFileFolderAndOpen(forceNewWindow?: boolean, data?: ITelemetryData): TPromise<void>;
pickFileAndOpen(forceNewWindow?: boolean, path?: string, data?: ITelemetryData): TPromise<void>;
pickFolderAndOpen(forceNewWindow?: boolean, data?: ITelemetryData): TPromise<void>;
pickFolder(): TPromise<string[]>;
pickFolder(options?: { buttonLabel: string }): TPromise<string[]>;
reloadWindow(): TPromise<void>;
openDevTools(): TPromise<void>;
toggleDevTools(): TPromise<void>;
......
......@@ -17,7 +17,7 @@ export interface IWindowsChannel extends IChannel {
call(command: 'pickFileFolderAndOpen', arg: [number, boolean, ITelemetryData]): TPromise<void>;
call(command: 'pickFileAndOpen', arg: [number, boolean, string, ITelemetryData]): TPromise<void>;
call(command: 'pickFolderAndOpen', arg: [number, boolean, ITelemetryData]): TPromise<void>;
call(command: 'pickFolder'): TPromise<string[]>;
call(command: 'pickFolder', arg: { buttonLabel: string }): TPromise<string[]>;
call(command: 'reloadWindow', arg: number): TPromise<void>;
call(command: 'toggleDevTools', arg: number): TPromise<void>;
call(command: 'closeFolder', arg: number): TPromise<void>;
......@@ -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<string[]> {
return this.channel.call('pickFolder');
pickFolder(options?: { buttonLabel: string }): TPromise<string[]> {
return this.channel.call('pickFolder', options);
}
reloadWindow(windowId: number): TPromise<void> {
......
......@@ -34,8 +34,8 @@ export class WindowService implements IWindowService {
return this.windowsService.pickFolderAndOpen(this.windowId, forceNewWindow, data);
}
pickFolder(): TPromise<string[]> {
return this.windowsService.pickFolder();
pickFolder(options?: { buttonLabel: string }): TPromise<string[]> {
return this.windowsService.pickFolder(options);
}
reloadWindow(): TPromise<void> {
......
......@@ -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<string[]>;
pickFolder(options?: { buttonLabel: string }): TPromise<string[]>;
focusLastActive(cli: ParsedArgs, context: OpenContext): ICodeWindow;
getLastActiveWindow(): ICodeWindow;
findWindow(workspacePath: string, filePath?: string, extensionDevelopmentPath?: string): ICodeWindow;
......
......@@ -67,8 +67,8 @@ export class WindowsService implements IWindowsService, IDisposable {
return TPromise.as(null);
}
pickFolder(): TPromise<string[]> {
return this.windowsMainService.pickFolder();
pickFolder(options?: { buttonLabel: string }): TPromise<string[]> {
return this.windowsMainService.pickFolder(options);
}
reloadWindow(windowId: number): TPromise<void> {
......
......@@ -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)));
});
}
......
......@@ -858,7 +858,7 @@ export class TestWindowService implements IWindowService {
return TPromise.as(void 0);
}
pickFolder(): TPromise<string[]> {
pickFolder(options?: { buttonLabel: string }): TPromise<string[]> {
return TPromise.as([]);
}
......@@ -981,7 +981,7 @@ export class TestWindowsService implements IWindowsService {
return TPromise.as(void 0);
}
pickFolder(): TPromise<string[]> {
pickFolder(options?: { buttonLabel: string }): TPromise<string[]> {
return TPromise.as([]);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册