Browse Source

option to min to tray icon

pull/7/head v2.0.0
Kyle Spearrin 8 years ago
parent
commit
eef9f151ef
  1. 2
      jslib
  2. BIN
      src/images/icon-highlight.png
  3. BIN
      src/images/icon-highlight@2x.png
  4. BIN
      src/images/icon-template.png
  5. BIN
      src/images/icon-template@2x.png
  6. BIN
      src/images/icon.ico
  7. BIN
      src/images/icon.png
  8. BIN
      src/images/logo.png
  9. BIN
      src/images/logo@2x.png
  10. BIN
      src/images/logo@3x.png
  11. 10
      src/locales/en/messages.json
  12. 6
      src/main.ts
  13. 6
      src/main/menu.main.ts
  14. 6
      src/main/messaging.main.ts

2
jslib

@ -1 +1 @@
Subproject commit 3270d8bd0ed46b62262575f5d59fca2414aaf8c7 Subproject commit 9de9c1655c9a325443fdabfc74630f06e20f8d9a

BIN
src/images/icon-highlight.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

BIN
src/images/icon-highlight@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 B

BIN
src/images/icon-template.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

BIN
src/images/icon-template@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 B

BIN
src/images/icon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

BIN
src/images/icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
src/images/logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

BIN
src/images/logo@2x.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

BIN
src/images/logo@3x.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

10
src/locales/en/messages.json

@ -540,5 +540,15 @@
}, },
"usernamePasswordNotConfigured": { "usernamePasswordNotConfigured": {
"message": "Username/password are not configured." "message": "Username/password are not configured."
},
"exit": {
"message": "Exit"
},
"showHide": {
"message": "Show / Hide",
"description": "Text for a button that toggles the visibility of the window. Shows the window when it is hidden or hides the window if it is currently open."
},
"hideToTray": {
"message": "Hide to Tray"
} }
} }

6
src/main.ts

@ -9,6 +9,7 @@ import { KeytarStorageListener } from 'jslib/electron/keytarStorageListener';
import { ElectronLogService } from 'jslib/electron/services/electronLog.service'; import { ElectronLogService } from 'jslib/electron/services/electronLog.service';
import { ElectronMainMessagingService } from 'jslib/electron/services/electronMainMessaging.service'; import { ElectronMainMessagingService } from 'jslib/electron/services/electronMainMessaging.service';
import { ElectronStorageService } from 'jslib/electron/services/electronStorage.service'; import { ElectronStorageService } from 'jslib/electron/services/electronStorage.service';
import { TrayMain } from 'jslib/electron/tray.main';
import { UpdaterMain } from 'jslib/electron/updater.main'; import { UpdaterMain } from 'jslib/electron/updater.main';
import { WindowMain } from 'jslib/electron/window.main'; import { WindowMain } from 'jslib/electron/window.main';
@ -23,6 +24,7 @@ export class Main {
messagingMain: MessagingMain; messagingMain: MessagingMain;
menuMain: MenuMain; menuMain: MenuMain;
updaterMain: UpdaterMain; updaterMain: UpdaterMain;
trayMain: TrayMain;
constructor() { constructor() {
// Set paths for portable builds // Set paths for portable builds
@ -57,7 +59,8 @@ export class Main {
}, null, () => { }, null, () => {
this.messagingService.send('doneCheckingForUpdate'); this.messagingService.send('doneCheckingForUpdate');
}); });
this.messagingMain = new MessagingMain(this.windowMain, this.menuMain, this.updaterMain); this.trayMain = new TrayMain(this.windowMain, this.i18nService, this.storageService,);
this.messagingMain = new MessagingMain(this.windowMain, this.menuMain, this.updaterMain, this.trayMain);
this.messagingService = new ElectronMainMessagingService(this.windowMain, (message) => { this.messagingService = new ElectronMainMessagingService(this.windowMain, (message) => {
this.messagingMain.onMessage(message); this.messagingMain.onMessage(message);
}); });
@ -72,6 +75,7 @@ export class Main {
this.menuMain.init(); this.menuMain.init();
this.messagingMain.init(); this.messagingMain.init();
await this.updaterMain.init(); await this.updaterMain.init();
await this.trayMain.init(this.i18nService.t('bitwardenDirectoryConnector'));
}, (e: any) => { }, (e: any) => {
// tslint:disable-next-line // tslint:disable-next-line
console.error(e); console.error(e);

6
src/main/menu.main.ts

@ -48,6 +48,12 @@ export class MenuMain extends BaseMenu {
template[template.length - 1].submenu = this.macWindowSubmenuOptions; template[template.length - 1].submenu = this.macWindowSubmenuOptions;
} }
(template[template.length - 1].submenu as MenuItemConstructorOptions[]).splice(1, 0, {
label: this.main.i18nService.t('hideToTray'),
click: () => this.main.messagingService.send('hideToTray'),
accelerator: 'CmdOrCtrl+Shift+M',
});
this.menu = Menu.buildFromTemplate(template); this.menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(this.menu); Menu.setApplicationMenu(this.menu);
} }

6
src/main/messaging.main.ts

@ -3,6 +3,7 @@ import {
ipcMain, ipcMain,
} from 'electron'; } from 'electron';
import { TrayMain } from 'jslib/electron/tray.main';
import { UpdaterMain } from 'jslib/electron/updater.main'; import { UpdaterMain } from 'jslib/electron/updater.main';
import { WindowMain } from 'jslib/electron/window.main'; import { WindowMain } from 'jslib/electron/window.main';
@ -14,7 +15,7 @@ export class MessagingMain {
private syncTimeout: NodeJS.Timer; private syncTimeout: NodeJS.Timer;
constructor(private windowMain: WindowMain, private menuMain: MenuMain, constructor(private windowMain: WindowMain, private menuMain: MenuMain,
private updaterMain: UpdaterMain) { } private updaterMain: UpdaterMain, private trayMain: TrayMain) { }
init() { init() {
ipcMain.on('messagingService', async (event: any, message: any) => this.onMessage(message)); ipcMain.on('messagingService', async (event: any, message: any) => this.onMessage(message));
@ -36,6 +37,9 @@ export class MessagingMain {
global.clearTimeout(this.syncTimeout); global.clearTimeout(this.syncTimeout);
} }
break; break;
case 'hideToTray':
this.trayMain.hideToTray();
break;
default: default:
break; break;
} }

Loading…
Cancel
Save