diff options
Diffstat (limited to 'src/lib/Menu.js')
-rw-r--r-- | src/lib/Menu.js | 61 |
1 files changed, 47 insertions, 14 deletions
diff --git a/src/lib/Menu.js b/src/lib/Menu.js index a6cde4d36..6bbf302ca 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js | |||
@@ -1,9 +1,9 @@ | |||
1 | import { remote, shell } from 'electron'; | 1 | import { remote, shell } from 'electron'; |
2 | import { autorun, computed, observable, toJS } from 'mobx'; | 2 | import { autorun, computed, observable, toJS } from 'mobx'; |
3 | 3 | ||
4 | import { isDevMode, isMac } from '../environment'; | 4 | import { isMac, isLinux } from '../environment'; |
5 | 5 | ||
6 | const { app, Menu } = remote; | 6 | const { app, Menu, dialog } = remote; |
7 | 7 | ||
8 | const template = [ | 8 | const template = [ |
9 | { | 9 | { |
@@ -84,6 +84,28 @@ const template = [ | |||
84 | label: 'Learn More', | 84 | label: 'Learn More', |
85 | click() { shell.openExternal('http://meetfranz.com'); }, | 85 | click() { shell.openExternal('http://meetfranz.com'); }, |
86 | }, | 86 | }, |
87 | { | ||
88 | label: 'Changelog', | ||
89 | click() { shell.openExternal('https://github.com/meetfranz/franz/blob/master/CHANGELOG.md'); }, | ||
90 | }, | ||
91 | { | ||
92 | type: 'separator', | ||
93 | }, | ||
94 | { | ||
95 | label: 'Support', | ||
96 | click() { shell.openExternal('http://meetfranz.com/support'); }, | ||
97 | }, | ||
98 | { | ||
99 | type: 'separator', | ||
100 | }, | ||
101 | { | ||
102 | label: 'Terms of Service', | ||
103 | click() { shell.openExternal('https://meetfranz.com/terms'); }, | ||
104 | }, | ||
105 | { | ||
106 | label: 'Privacy Statement', | ||
107 | click() { shell.openExternal('https://meetfranz.com/privacy'); }, | ||
108 | }, | ||
87 | ], | 109 | ], |
88 | }, | 110 | }, |
89 | ]; | 111 | ]; |
@@ -101,17 +123,15 @@ export default class FranzMenu { | |||
101 | _build() { | 123 | _build() { |
102 | const tpl = toJS(this.tpl); | 124 | const tpl = toJS(this.tpl); |
103 | 125 | ||
104 | if (isDevMode) { | 126 | tpl[1].submenu.push({ |
105 | tpl[1].submenu.push({ | 127 | role: 'toggledevtools', |
106 | role: 'toggledevtools', | 128 | }, { |
107 | }, { | 129 | label: 'Toggle Service Developer Tools', |
108 | label: 'Toggle Service Developer Tools', | 130 | accelerator: 'CmdOrCtrl+Shift+Alt+i', |
109 | accelerator: 'CmdOrCtrl+Shift+Alt+i', | 131 | click: () => { |
110 | click: () => { | 132 | this.actions.service.openDevToolsForActiveService(); |
111 | this.actions.service.openDevToolsForActiveService(); | 133 | }, |
112 | }, | 134 | }); |
113 | }); | ||
114 | } | ||
115 | 135 | ||
116 | tpl[1].submenu.unshift({ | 136 | tpl[1].submenu.unshift({ |
117 | label: 'Reload Service', | 137 | label: 'Reload Service', |
@@ -218,6 +238,18 @@ export default class FranzMenu { | |||
218 | role: 'front', | 238 | role: 'front', |
219 | }, | 239 | }, |
220 | ]; | 240 | ]; |
241 | } else { | ||
242 | tpl[4].submenu.unshift({ | ||
243 | role: 'about', | ||
244 | click: () => { | ||
245 | dialog.showMessageBox({ | ||
246 | type: 'info', | ||
247 | title: 'Franz', | ||
248 | message: 'Franz', | ||
249 | detail: `Version: ${remote.app.getVersion()}\nRelease: ${process.versions.electron} / ${process.platform} / ${process.arch}`, | ||
250 | }); | ||
251 | }, | ||
252 | }); | ||
221 | } | 253 | } |
222 | 254 | ||
223 | const serviceTpl = this.serviceTpl; | 255 | const serviceTpl = this.serviceTpl; |
@@ -244,9 +276,10 @@ export default class FranzMenu { | |||
244 | const services = this.stores.services.enabled; | 276 | const services = this.stores.services.enabled; |
245 | 277 | ||
246 | if (this.stores.user.isLoggedIn) { | 278 | if (this.stores.user.isLoggedIn) { |
279 | const systemAcceleratorKey = isLinux ? 'Alt' : 'CmdOrCtrl'; | ||
247 | return services.map((service, i) => ({ | 280 | return services.map((service, i) => ({ |
248 | label: service.name, | 281 | label: service.name, |
249 | accelerator: i <= 9 ? `CmdOrCtrl+${i + 1}` : null, | 282 | accelerator: i <= 9 ? `${systemAcceleratorKey}+${i + 1}` : null, |
250 | type: 'radio', | 283 | type: 'radio', |
251 | checked: service.isActive, | 284 | checked: service.isActive, |
252 | click: () => { | 285 | click: () => { |