diff options
Diffstat (limited to 'src/lib/Tray.js')
-rw-r--r-- | src/lib/Tray.js | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/lib/Tray.js b/src/lib/Tray.js index f5970f7e7..c897d597a 100644 --- a/src/lib/Tray.js +++ b/src/lib/Tray.js | |||
@@ -1,5 +1,5 @@ | |||
1 | import { | 1 | import { |
2 | app, Menu, nativeImage, nativeTheme, systemPreferences, Tray, ipcMain, | 2 | app, Menu, nativeImage, nativeTheme, systemPreferences, Tray, ipcMain, dialog, |
3 | } from 'electron'; | 3 | } from 'electron'; |
4 | import { join } from 'path'; | 4 | import { join } from 'path'; |
5 | import macosVersion from 'macos-version'; | 5 | import macosVersion from 'macos-version'; |
@@ -43,9 +43,7 @@ export default class TrayIcon { | |||
43 | }, | 43 | }, |
44 | { | 44 | { |
45 | label: 'Quit Ferdi', | 45 | label: 'Quit Ferdi', |
46 | click() { | 46 | click: this.quitApp, |
47 | app.quit(); | ||
48 | }, | ||
49 | }, | 47 | }, |
50 | ]; | 48 | ]; |
51 | 49 | ||
@@ -178,4 +176,22 @@ export default class TrayIcon { | |||
178 | __dirname, '..', 'assets', 'images', type, platform, `${asset}.${FILE_EXTENSION}`, | 176 | __dirname, '..', 'assets', 'images', type, platform, `${asset}.${FILE_EXTENSION}`, |
179 | )); | 177 | )); |
180 | } | 178 | } |
179 | |||
180 | // TODO: Extract this into a reusable component and remove the duplications | ||
181 | quitApp = () => { | ||
182 | const yesButtonIndex = 0; | ||
183 | let selection = yesButtonIndex; | ||
184 | if (window.ferdi.stores.settings.app.confirmOnQuit) { | ||
185 | selection = dialog.showMessageBoxSync(app.mainWindow, { | ||
186 | // TODO: Externalize strings | ||
187 | type: 'question', | ||
188 | message: 'Quit', | ||
189 | detail: 'Do you really want to quit Ferdi?', | ||
190 | buttons: ['Yes', 'No'], | ||
191 | }); | ||
192 | } | ||
193 | if (selection === yesButtonIndex) { | ||
194 | app.quit(); | ||
195 | } | ||
196 | }; | ||
181 | } | 197 | } |