Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Pasero <benjpas@microsoft.com>2020-10-14 13:16:05 +0300
committerBenjamin Pasero <benjpas@microsoft.com>2020-10-14 13:16:05 +0300
commitb77f0bd932218ae1b1e1ff28ea2f384f21fb27ad (patch)
tree200acd0138435129555d2900688a86e0a13e48e4
parent71e0a05d494e04e2b39067ca192c21e0fd41f157 (diff)
add to menu
-rw-r--r--src/vs/platform/menubar/electron-main/menubar.ts6
-rw-r--r--src/vs/workbench/electron-sandbox/desktop.contribution.ts26
2 files changed, 27 insertions, 5 deletions
diff --git a/src/vs/platform/menubar/electron-main/menubar.ts b/src/vs/platform/menubar/electron-main/menubar.ts
index 12c83e1aa2d..16c91a0a30d 100644
--- a/src/vs/platform/menubar/electron-main/menubar.ts
+++ b/src/vs/platform/menubar/electron-main/menubar.ts
@@ -377,8 +377,10 @@ export class Menubar {
const hide = new MenuItem({ label: nls.localize('mHide', "Hide {0}", product.nameLong), role: 'hide', accelerator: 'Command+H' });
const hideOthers = new MenuItem({ label: nls.localize('mHideOthers', "Hide Others"), role: 'hideOthers', accelerator: 'Command+Alt+H' });
const showAll = new MenuItem({ label: nls.localize('mShowAll', "Show All"), role: 'unhide' });
+ const confirmQuit = this.createMenuItem(nls.localize('miWarnBeforeQuit', "Warn Before Quitting"), 'workbench.action.toggleConfirmBeforeQuit', this.windowsMainService.getWindowCount() > 0, this.configurationService.getValue<boolean>('workbench.confirmBeforeQuit'));
const quit = new MenuItem(this.likeAction('workbench.action.quit', {
- label: nls.localize('miQuit', "Quit {0}", product.nameLong), click: () => {
+ label: nls.localize('miQuit', "Quit {0}", product.nameLong),
+ click: () => {
const lastActiveWindow = this.windowsMainService.getLastActiveWindow();
if (
this.windowsMainService.getWindowCount() === 0 || // allow to quit when no more windows are open
@@ -408,6 +410,8 @@ export class Menubar {
hideOthers,
showAll,
__separator__(),
+ confirmQuit,
+ __separator__(),
quit
]);
diff --git a/src/vs/workbench/electron-sandbox/desktop.contribution.ts b/src/vs/workbench/electron-sandbox/desktop.contribution.ts
index 8e34d650acf..d0981c33a8f 100644
--- a/src/vs/workbench/electron-sandbox/desktop.contribution.ts
+++ b/src/vs/workbench/electron-sandbox/desktop.contribution.ts
@@ -21,7 +21,7 @@ import { INativeHostService } from 'vs/platform/native/electron-sandbox/native';
import { IJSONContributionRegistry, Extensions as JSONExtensions } from 'vs/platform/jsonschemas/common/jsonContributionRegistry';
import product from 'vs/platform/product/common/product';
import { IJSONSchema } from 'vs/base/common/jsonSchema';
-import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
+import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
@@ -42,7 +42,7 @@ import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation
registry.registerWorkbenchAction(SyncActionDescriptor.from(SwitchWindow, { primary: 0, mac: { primary: KeyMod.WinCtrl | KeyCode.KEY_W } }), 'Switch Window...');
registry.registerWorkbenchAction(SyncActionDescriptor.from(QuickSwitchWindow), 'Quick Switch Window...');
- async function handleCloseOrQuitPrompt(accessor: ServicesAccessor, settingsKey: string, message: string, primaryButton: string): Promise<boolean> {
+ async function handleCloseOrQuitConfirm(accessor: ServicesAccessor, settingsKey: string, message: string, primaryButton: string): Promise<boolean> {
const configurationService = accessor.get(IConfigurationService);
if (!configurationService.getValue<boolean>(settingsKey)) {
return true; // proceed
@@ -77,7 +77,7 @@ import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation
const message = nls.localize('closeWindowMessage', "Are you sure you want to close the window?");
const button = nls.localize({ key: 'closeWindowButtonLabel', comment: ['&& denotes a mnemonic'] }, "&&Close Window");
- const confirmed = await handleCloseOrQuitPrompt(accessor, 'window.confirmBeforeClose', message, button);
+ const confirmed = await handleCloseOrQuitConfirm(accessor, 'window.confirmBeforeClose', message, button);
if (confirmed) {
nativeHostService.closeWindow();
}
@@ -93,7 +93,7 @@ import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation
const message = nls.localize('quitMessage', "Are you sure you want to quit?");
const button = nls.localize({ key: 'quitButtonLabel', comment: ['&& denotes a mnemonic'] }, "&&Quit");
- const confirmed = await handleCloseOrQuitPrompt(accessor, 'workbench.confirmBeforeQuit', message, button);
+ const confirmed = await handleCloseOrQuitConfirm(accessor, 'workbench.confirmBeforeQuit', message, button);
if (confirmed) {
nativeHostService.quit();
}
@@ -112,6 +112,13 @@ import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation
const nativeHostService = accessor.get(INativeHostService);
nativeHostService.closeWindow();
});
+
+ CommandsRegistry.registerCommand('workbench.action.toggleConfirmBeforeQuit', accessor => {
+ const configurationService = accessor.get(IConfigurationService);
+ const setting = configurationService.inspect<boolean>('workbench.confirmBeforeQuit').userValue;
+
+ return configurationService.updateValue('workbench.confirmBeforeQuit', setting === false ? true : false, ConfigurationTarget.USER);
+ });
})();
// Actions: macOS Native Tabs
@@ -168,6 +175,17 @@ import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation
});
MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
+ group: 'z_ConfirmExit',
+ command: {
+ id: 'workbench.action.toggleConfirmBeforeQuit',
+ title: nls.localize('miConfirmExit', "Confirm Before Exit"),
+ toggled: ContextKeyExpr.equals('config.workbench.confirmBeforeQuit', true)
+ },
+ order: 1,
+ when: IsMacContext.toNegated()
+ });
+
+ MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
group: 'z_Exit',
command: {
id: 'workbench.action.quit',