Skip to content

Commit 587eb87

Browse files
author
Akos Kitta
committed
added quit app.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
1 parent 2f8ac44 commit 587eb87

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed

arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts

+2
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ import { EditContributions } from './contributions/edit-contributions';
100100
import { OpenSketchExternal } from './contributions/open-sketch-external';
101101
import { PreferencesContribution as TheiaPreferencesContribution } from '@theia/preferences/lib/browser/preference-contribution';
102102
import { PreferencesContribution } from './theia/preferences/preference-contribution';
103+
import { QuitApp } from './contributions/quit-app';
103104

104105
const ElementQueries = require('css-element-queries/src/ElementQueries');
105106

@@ -327,4 +328,5 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un
327328
Contribution.configure(bind, UploadSketch);
328329
Contribution.configure(bind, OpenSketchExternal);
329330
Contribution.configure(bind, EditContributions);
331+
Contribution.configure(bind, QuitApp);
330332
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { injectable } from 'inversify';
2+
import { remote } from 'electron';
3+
import { isOSX, isWindows } from '@theia/core/lib/common/os';
4+
import { Contribution, Command, MenuModelRegistry, KeybindingRegistry, CommandRegistry } from './contribution';
5+
import { ArduinoMenus } from '../menu/arduino-menus';
6+
7+
@injectable()
8+
export class QuitApp extends Contribution {
9+
10+
registerCommands(registry: CommandRegistry): void {
11+
registry.registerCommand(QuitApp.Commands.QUIT_APP, {
12+
execute: () => remote.app.quit()
13+
});
14+
}
15+
16+
registerMenus(registry: MenuModelRegistry): void {
17+
registry.registerMenuAction(ArduinoMenus.FILE__QUIT_GROUP, {
18+
commandId: QuitApp.Commands.QUIT_APP.id,
19+
label: 'Quit',
20+
order: '0'
21+
});
22+
}
23+
24+
registerKeybindings(registry: KeybindingRegistry): void {
25+
registry.registerKeybinding({
26+
command: QuitApp.Commands.QUIT_APP.id,
27+
keybinding: isOSX ? 'CtrlCmd+Q' : isWindows ? 'Alt+F4' : 'Ctrl+Q'
28+
});
29+
}
30+
31+
}
32+
33+
export namespace QuitApp {
34+
export namespace Commands {
35+
export const QUIT_APP: Command = {
36+
id: 'arduino-quit-app'
37+
};
38+
}
39+
}

arduino-ide-extension/src/browser/menu/arduino-menus.ts

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ export namespace ArduinoMenus {
77
// File
88
export const FILE__SKETCH_GROUP = [...CommonMenus.FILE, '0_sketch'];
99
export const FILE__PRINT_GROUP = [...CommonMenus.FILE, '1_print'];
10+
export const FILE__SETTINGS_GROUP = [...CommonMenus.FILE, '2_settings'];
11+
export const FILE__QUIT_GROUP = [...CommonMenus.FILE, '3_quit'];
1012

1113
// Edit
1214
export const EDIT__TEXT_CONTROL_GROUP = [...CommonMenus.EDIT, '2_text_control']; // `Copy`, `Copy to Forum`, `Paste`, etc. Note: `1_undo` is the first group from Theia

0 commit comments

Comments
 (0)