提交 733864d9 编写于 作者: B Benjamin Pasero

simplify Windows.closeWorkspace()

上级 0aee8cee
......@@ -385,7 +385,7 @@ export class CodeMenu {
const revertFile = this.createMenuItem(nls.localize({ key: 'miRevert', comment: ['&& denotes a mnemonic'] }, "Re&&vert File"), 'workbench.action.files.revert', this.windowsService.getWindowCount() > 0);
const closeWindow = new MenuItem(this.likeAction('workbench.action.closeWindow', { label: this.mnemonicLabel(nls.localize({ key: 'miCloseWindow', comment: ['&& denotes a mnemonic'] }, "Clos&&e Window")), click: () => this.windowsService.getLastActiveWindow().win.close(), enabled: this.windowsService.getWindowCount() > 0 }));
const closeFolder = this.createMenuItem(nls.localize({ key: 'miCloseWorkspace', comment: ['&& denotes a mnemonic'] }, "Close &&Workspace"), 'workbench.action.closeFolder');
const closeWorkspace = this.createMenuItem(nls.localize({ key: 'miCloseWorkspace', comment: ['&& denotes a mnemonic'] }, "Close &&Workspace"), 'workbench.action.closeFolder');
const closeEditor = this.createMenuItem(nls.localize({ key: 'miCloseEditor', comment: ['&& denotes a mnemonic'] }, "&&Close Editor"), 'workbench.action.closeActiveEditor');
const exit = new MenuItem(this.likeAction('workbench.action.quit', { label: this.mnemonicLabel(nls.localize({ key: 'miExit', comment: ['&& denotes a mnemonic'] }, "E&&xit")), click: () => this.windowsService.quit() }));
......@@ -411,7 +411,7 @@ export class CodeMenu {
!isMacintosh ? __separator__() : null,
revertFile,
closeEditor,
closeFolder,
closeWorkspace,
closeWindow,
!isMacintosh ? __separator__() : null,
!isMacintosh ? exit : null
......
......@@ -290,6 +290,13 @@ export class WindowsManager implements IWindowsMainService {
};
}
public closeWorkspace(win: CodeWindow): void {
this.openInBrowserWindow({
cli: this.environmentService.args,
windowToUse: win
});
}
public open(openConfig: IOpenConfiguration): CodeWindow[] {
const windowsToOpen = this.getWindowsToOpen(openConfig);
......@@ -539,8 +546,7 @@ export class WindowsManager implements IWindowsMainService {
userEnv: openConfig.userEnv,
cli: openConfig.cli,
initialStartup: openConfig.initialStartup,
forceNewWindow: openFolderInNewWindow,
windowToUse: openFolderInNewWindow ? void 0 : openConfig.windowToUse as CodeWindow
forceNewWindow: openFolderInNewWindow
}));
openFolderInNewWindow = true; // any other folders to open must open in new window then
......@@ -570,8 +576,7 @@ export class WindowsManager implements IWindowsMainService {
filesToOpen,
filesToCreate,
filesToDiff,
forceNewWindow: openInNewWindow,
windowToUse: openInNewWindow ? void 0 : openConfig.windowToUse as CodeWindow
forceNewWindow: openInNewWindow
});
return browserWindow;
......@@ -876,7 +881,6 @@ export class WindowsManager implements IWindowsMainService {
let codeWindow: CodeWindow;
if (!options.forceNewWindow) {
codeWindow = options.windowToUse || this.getLastActiveWindow();
if (codeWindow) {
codeWindow.focus();
}
......
......@@ -30,7 +30,7 @@ export interface IWindowsService {
reloadWindow(windowId: number): TPromise<void>;
openDevTools(windowId: number): TPromise<void>;
toggleDevTools(windowId: number): TPromise<void>;
closeFolder(windowId: number): TPromise<void>;
closeWorkspace(windowId: number): TPromise<void>;
toggleFullScreen(windowId: number): TPromise<void>;
setRepresentedFilename(windowId: number, fileName: string): TPromise<void>;
addToRecentlyOpened(recent: (IWorkspaceIdentifier | IRecentlyOpenedFile)[]): TPromise<void>;
......@@ -85,7 +85,7 @@ export interface IWindowService {
reloadWindow(): TPromise<void>;
openDevTools(): TPromise<void>;
toggleDevTools(): TPromise<void>;
closeFolder(): TPromise<void>;
closeWorkspace(): TPromise<void>;
toggleFullScreen(): TPromise<void>;
setRepresentedFilename(fileName: string): TPromise<void>;
getRecentlyOpened(): TPromise<IRecentlyOpened>;
......
......@@ -22,7 +22,7 @@ export interface IWindowsChannel extends IChannel {
call(command: 'pickFolder', arg: [number, { buttonLabel: string; title: string; }]): TPromise<string[]>;
call(command: 'reloadWindow', arg: number): TPromise<void>;
call(command: 'toggleDevTools', arg: number): TPromise<void>;
call(command: 'closeFolder', arg: number): TPromise<void>;
call(command: 'closeWorkspace', arg: number): TPromise<void>;
call(command: 'toggleFullScreen', arg: number): TPromise<void>;
call(command: 'setRepresentedFilename', arg: [number, string]): TPromise<void>;
call(command: 'addToRecentlyOpened', arg: (IWorkspaceIdentifier | IRecentlyOpenedFile)[]): TPromise<void>;
......@@ -75,7 +75,7 @@ export class WindowsChannel implements IWindowsChannel {
case 'reloadWindow': return this.service.reloadWindow(arg);
case 'openDevTools': return this.service.openDevTools(arg);
case 'toggleDevTools': return this.service.toggleDevTools(arg);
case 'closeFolder': return this.service.closeFolder(arg);
case 'closeWorkspace': return this.service.closeWorkspace(arg);
case 'toggleFullScreen': return this.service.toggleFullScreen(arg);
case 'setRepresentedFilename': return this.service.setRepresentedFilename(arg[0], arg[1]);
case 'addToRecentlyOpened': return this.service.addToRecentlyOpened(arg);
......@@ -149,8 +149,8 @@ export class WindowsChannelClient implements IWindowsService {
return this.channel.call('toggleDevTools', windowId);
}
closeFolder(windowId: number): TPromise<void> {
return this.channel.call('closeFolder', windowId);
closeWorkspace(windowId: number): TPromise<void> {
return this.channel.call('closeWorkspace', windowId);
}
toggleFullScreen(windowId: number): TPromise<void> {
......
......@@ -52,8 +52,8 @@ export class WindowService implements IWindowService {
return this.windowsService.toggleDevTools(this.windowId);
}
closeFolder(): TPromise<void> {
return this.windowsService.closeFolder(this.windowId);
closeWorkspace(): TPromise<void> {
return this.windowsService.closeWorkspace(this.windowId);
}
closeWindow(): TPromise<void> {
......
......@@ -52,6 +52,7 @@ export interface IWindowsMainService {
// methods
ready(initialUserEnv: IProcessEnvironment): void;
reload(win: ICodeWindow, cli?: ParsedArgs): void;
closeWorkspace(win: ICodeWindow): void;
open(openConfig: IOpenConfiguration): ICodeWindow[];
openExtensionDevelopmentHostWindow(openConfig: IOpenConfiguration): void;
pickFileFolderAndOpen(forceNewWindow?: boolean, data?: ITelemetryData): void;
......@@ -80,7 +81,6 @@ export interface IOpenConfiguration {
forceNewWindow?: boolean;
forceReuseWindow?: boolean;
forceEmpty?: boolean;
windowToUse?: ICodeWindow;
diffMode?: boolean;
initialStartup?: boolean;
}
......
......@@ -110,11 +110,11 @@ export class WindowsService implements IWindowsService, IDisposable {
return TPromise.as(null);
}
closeFolder(windowId: number): TPromise<void> {
closeWorkspace(windowId: number): TPromise<void> {
const codeWindow = this.windowsMainService.getWindowById(windowId);
if (codeWindow) {
this.windowsMainService.open({ context: OpenContext.API, cli: this.environmentService.args, forceEmpty: true, windowToUse: codeWindow, forceReuseWindow: true });
this.windowsMainService.closeWorkspace(codeWindow);
}
return TPromise.as(null);
......
......@@ -86,7 +86,7 @@ export class CloseWindowAction extends Action {
export class CloseWorkspaceAction extends Action {
static ID = 'workbench.action.closeFolder';
static LABEL = nls.localize('closeFolder', "Close Workspace");
static LABEL = nls.localize('closeWorkspace', "Close Workspace");
constructor(
id: string,
......@@ -105,7 +105,7 @@ export class CloseWorkspaceAction extends Action {
return TPromise.as(null);
}
return this.windowService.closeFolder();
return this.windowService.closeWorkspace();
}
}
......
......@@ -879,7 +879,7 @@ export class TestWindowService implements IWindowService {
return TPromise.as(void 0);
}
closeFolder(): TPromise<void> {
closeWorkspace(): TPromise<void> {
return TPromise.as(void 0);
}
......@@ -1010,8 +1010,7 @@ export class TestWindowsService implements IWindowsService {
return TPromise.as(void 0);
}
// TODO@joao: rename, shouldn't this be closeWindow?
closeFolder(windowId: number): TPromise<void> {
closeWorkspace(windowId: number): TPromise<void> {
return TPromise.as(void 0);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册