mirror of
https://github.com/bitwarden/desktop.git
synced 2024-11-24 11:55:50 +01:00
hide to tray menu option
This commit is contained in:
parent
f2b87edb83
commit
9772acad40
2
jslib
2
jslib
@ -1 +1 @@
|
|||||||
Subproject commit e614cffffbaf2b7e290aa5fe511d39e387efb4d5
|
Subproject commit 3270d8bd0ed46b62262575f5d59fca2414aaf8c7
|
@ -42,7 +42,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<small class="help-block">{{'enableTrayDesc' | i18n}}</small>
|
<small class="help-block">{{'enableTrayDesc' | i18n}}</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group" *ngIf="showMinToTray">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label for="enableMinToTray">
|
<label for="enableMinToTray">
|
||||||
<input id="enableMinToTray" type="checkbox" name="EnableMinToTray"
|
<input id="enableMinToTray" type="checkbox" name="EnableMinToTray"
|
||||||
|
@ -6,6 +6,8 @@ import {
|
|||||||
import { ToasterService } from 'angular2-toaster';
|
import { ToasterService } from 'angular2-toaster';
|
||||||
import { Angulartics2 } from 'angulartics2';
|
import { Angulartics2 } from 'angulartics2';
|
||||||
|
|
||||||
|
import { DeviceType } from 'jslib/enums/deviceType';
|
||||||
|
|
||||||
import { I18nService } from 'jslib/abstractions/i18n.service';
|
import { I18nService } from 'jslib/abstractions/i18n.service';
|
||||||
import { LockService } from 'jslib/abstractions/lock.service';
|
import { LockService } from 'jslib/abstractions/lock.service';
|
||||||
import { MessagingService } from 'jslib/abstractions/messaging.service';
|
import { MessagingService } from 'jslib/abstractions/messaging.service';
|
||||||
@ -27,6 +29,7 @@ export class SettingsComponent implements OnInit {
|
|||||||
disableFavicons: boolean = false;
|
disableFavicons: boolean = false;
|
||||||
enableMinToTray: boolean = false;
|
enableMinToTray: boolean = false;
|
||||||
enableTray: boolean = false;
|
enableTray: boolean = false;
|
||||||
|
showMinToTray: boolean = false;
|
||||||
locale: string;
|
locale: string;
|
||||||
lockOptions: any[];
|
lockOptions: any[];
|
||||||
localeOptions: any[];
|
localeOptions: any[];
|
||||||
@ -57,6 +60,7 @@ export class SettingsComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async ngOnInit() {
|
async ngOnInit() {
|
||||||
|
this.showMinToTray = this.platformUtilsService.getDevice() === DeviceType.Windows;
|
||||||
this.lockOption = await this.storageService.get<number>(ConstantsService.lockOptionKey);
|
this.lockOption = await this.storageService.get<number>(ConstantsService.lockOptionKey);
|
||||||
this.disableFavicons = await this.storageService.get<boolean>(ConstantsService.disableFaviconKey);
|
this.disableFavicons = await this.storageService.get<boolean>(ConstantsService.disableFaviconKey);
|
||||||
this.enableMinToTray = await this.storageService.get<boolean>(ElectronConstants.enableMinimizeToTrayKey);
|
this.enableMinToTray = await this.storageService.get<boolean>(ElectronConstants.enableMinimizeToTrayKey);
|
||||||
|
@ -1050,5 +1050,8 @@
|
|||||||
"showHide": {
|
"showHide": {
|
||||||
"message": "Show / Hide",
|
"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."
|
"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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ export class MenuMain extends BaseMenu {
|
|||||||
unlockedRequiredMenuItems: MenuItem[] = [];
|
unlockedRequiredMenuItems: MenuItem[] = [];
|
||||||
|
|
||||||
constructor(private main: Main) {
|
constructor(private main: Main) {
|
||||||
super(main.i18nService, main.windowMain, 'Bitwarden', () => this.main.messagingService.send('logout'));
|
super(main.i18nService, main.windowMain);
|
||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
@ -135,7 +135,24 @@ export class MenuMain extends BaseMenu {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ type: 'separator' },
|
{ type: 'separator' },
|
||||||
this.logOutMenuItemOptions,
|
{
|
||||||
|
label: this.i18nService.t('logOut'),
|
||||||
|
id: 'logOut',
|
||||||
|
click: () => {
|
||||||
|
const result = dialog.showMessageBox(this.windowMain.win, {
|
||||||
|
title: this.i18nService.t('logOut'),
|
||||||
|
message: this.i18nService.t('logOut'),
|
||||||
|
detail: this.i18nService.t('logOutConfirmation'),
|
||||||
|
buttons: [this.i18nService.t('logOut'), this.i18nService.t('cancel')],
|
||||||
|
cancelId: 1,
|
||||||
|
defaultId: 0,
|
||||||
|
noLink: true,
|
||||||
|
});
|
||||||
|
if (result === 0) {
|
||||||
|
this.main.messagingService.send('logout');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!isMacAppStore() && !isWindowsStore()) {
|
if (!isMacAppStore() && !isWindowsStore()) {
|
||||||
@ -369,7 +386,7 @@ export class MenuMain extends BaseMenu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template.unshift({
|
template.unshift({
|
||||||
label: this.appName,
|
label: 'Bitwarden',
|
||||||
submenu: firstMenuPart.concat(firstMenuOptions, [
|
submenu: firstMenuPart.concat(firstMenuOptions, [
|
||||||
{ type: 'separator' },
|
{ type: 'separator' },
|
||||||
], this.macAppMenuItemOptions),
|
], this.macAppMenuItemOptions),
|
||||||
@ -391,12 +408,38 @@ export class MenuMain extends BaseMenu {
|
|||||||
aboutMenuAdditions.push(updateMenuItem);
|
aboutMenuAdditions.push(updateMenuItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
aboutMenuAdditions.push(this.aboutMenuItemOptions);
|
aboutMenuAdditions.push({
|
||||||
|
label: this.i18nService.t('aboutBitwarden'),
|
||||||
|
click: () => {
|
||||||
|
const aboutInformation = this.i18nService.t('version', app.getVersion()) +
|
||||||
|
'\nShell ' + process.versions.electron +
|
||||||
|
'\nRenderer ' + process.versions.chrome +
|
||||||
|
'\nNode ' + process.versions.node +
|
||||||
|
'\nArchitecture ' + process.arch;
|
||||||
|
const result = dialog.showMessageBox(this.windowMain.win, {
|
||||||
|
title: 'Bitwarden',
|
||||||
|
message: 'Bitwarden',
|
||||||
|
detail: aboutInformation,
|
||||||
|
type: 'info',
|
||||||
|
noLink: true,
|
||||||
|
buttons: [this.i18nService.t('ok'), this.i18nService.t('copy')],
|
||||||
|
});
|
||||||
|
if (result === 1) {
|
||||||
|
clipboard.writeText(aboutInformation);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
template[template.length - 1].submenu =
|
template[template.length - 1].submenu =
|
||||||
(template[template.length - 1].submenu as MenuItemConstructorOptions[]).concat(aboutMenuAdditions);
|
(template[template.length - 1].submenu as MenuItemConstructorOptions[]).concat(aboutMenuAdditions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(template[template.length - 2].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);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user