Hide linux tray icon setting on environments without tray icon
This commit is contained in:
parent
e3b425069c
commit
e96e648262
|
@ -266,70 +266,72 @@
|
|||
</button>
|
||||
</h2>
|
||||
<ng-container *ngIf="showAppPreferences">
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<label for="enableTray">
|
||||
<input
|
||||
id="enableTray"
|
||||
type="checkbox"
|
||||
aria-describedby="enableTrayHelp"
|
||||
formControlName="enableTray"
|
||||
(change)="saveTray()"
|
||||
/>
|
||||
{{ enableTrayText }}
|
||||
</label>
|
||||
<ng-container *ngIf="isTrayAvailable">
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<label for="enableTray">
|
||||
<input
|
||||
id="enableTray"
|
||||
type="checkbox"
|
||||
aria-describedby="enableTrayHelp"
|
||||
formControlName="enableTray"
|
||||
(change)="saveTray()"
|
||||
/>
|
||||
{{ enableTrayText }}
|
||||
</label>
|
||||
</div>
|
||||
<small id="enableTrayHelp" class="help-block">{{ enableTrayDescText }}</small>
|
||||
</div>
|
||||
<small id="enableTrayHelp" class="help-block">{{ enableTrayDescText }}</small>
|
||||
</div>
|
||||
<div class="form-group" *ngIf="showMinToTray">
|
||||
<div class="checkbox">
|
||||
<label for="enableMinToTray">
|
||||
<input
|
||||
id="enableMinToTray"
|
||||
type="checkbox"
|
||||
aria-describedby="enableMinToTrayHelp"
|
||||
formControlName="enableMinToTray"
|
||||
(change)="saveMinToTray()"
|
||||
/>
|
||||
{{ enableMinToTrayText }}
|
||||
</label>
|
||||
<div class="form-group" *ngIf="showMinToTray">
|
||||
<div class="checkbox">
|
||||
<label for="enableMinToTray">
|
||||
<input
|
||||
id="enableMinToTray"
|
||||
type="checkbox"
|
||||
aria-describedby="enableMinToTrayHelp"
|
||||
formControlName="enableMinToTray"
|
||||
(change)="saveMinToTray()"
|
||||
/>
|
||||
{{ enableMinToTrayText }}
|
||||
</label>
|
||||
</div>
|
||||
<small id="enableMinToTrayHelp" class="help-block">{{
|
||||
enableMinToTrayDescText
|
||||
}}</small>
|
||||
</div>
|
||||
<small id="enableMinToTrayHelp" class="help-block">{{
|
||||
enableMinToTrayDescText
|
||||
}}</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<label for="enableCloseToTray">
|
||||
<input
|
||||
id="enableCloseToTray"
|
||||
type="checkbox"
|
||||
aria-describedby="enableCloseToTrayHelp"
|
||||
formControlName="enableCloseToTray"
|
||||
(change)="saveCloseToTray()"
|
||||
/>
|
||||
{{ enableCloseToTrayText }}
|
||||
</label>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<label for="enableCloseToTray">
|
||||
<input
|
||||
id="enableCloseToTray"
|
||||
type="checkbox"
|
||||
aria-describedby="enableCloseToTrayHelp"
|
||||
formControlName="enableCloseToTray"
|
||||
(change)="saveCloseToTray()"
|
||||
/>
|
||||
{{ enableCloseToTrayText }}
|
||||
</label>
|
||||
</div>
|
||||
<small id="enableCloseToTrayHelp" class="help-block">{{
|
||||
enableCloseToTrayDescText
|
||||
}}</small>
|
||||
</div>
|
||||
<small id="enableCloseToTrayHelp" class="help-block">{{
|
||||
enableCloseToTrayDescText
|
||||
}}</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<label for="startToTray">
|
||||
<input
|
||||
id="startToTray"
|
||||
type="checkbox"
|
||||
aria-describedby="startToTrayHelp"
|
||||
formControlName="startToTray"
|
||||
(change)="saveStartToTray()"
|
||||
/>
|
||||
{{ startToTrayText }}
|
||||
</label>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<label for="startToTray">
|
||||
<input
|
||||
id="startToTray"
|
||||
type="checkbox"
|
||||
aria-describedby="startToTrayHelp"
|
||||
formControlName="startToTray"
|
||||
(change)="saveStartToTray()"
|
||||
/>
|
||||
{{ startToTrayText }}
|
||||
</label>
|
||||
</div>
|
||||
<small id="startToTrayHelp" class="help-block">{{ startToTrayDescText }}</small>
|
||||
</div>
|
||||
<small id="startToTrayHelp" class="help-block">{{ startToTrayDescText }}</small>
|
||||
</div>
|
||||
</ng-container>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<label for="openAtLogin">
|
||||
|
|
|
@ -45,6 +45,7 @@ export class SettingsComponent implements OnInit {
|
|||
// For use in template
|
||||
protected readonly VaultTimeoutAction = VaultTimeoutAction;
|
||||
|
||||
isTrayAvailable = true;
|
||||
showMinToTray = false;
|
||||
vaultTimeoutOptions: VaultTimeoutOption[];
|
||||
localeOptions: any[];
|
||||
|
@ -215,6 +216,7 @@ export class SettingsComponent implements OnInit {
|
|||
}
|
||||
|
||||
async ngOnInit() {
|
||||
this.isTrayAvailable = await ipc.platform.tray.isTrayAvailable();
|
||||
this.userHasMasterPassword = await this.userVerificationService.hasMasterPassword();
|
||||
|
||||
this.isWindows = (await this.platformUtilsService.getDevice()) === DeviceType.WindowsDesktop;
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
import * as path from "path";
|
||||
|
||||
import { app, BrowserWindow, Menu, MenuItemConstructorOptions, nativeImage, Tray } from "electron";
|
||||
import {
|
||||
app,
|
||||
BrowserWindow,
|
||||
ipcMain,
|
||||
Menu,
|
||||
MenuItemConstructorOptions,
|
||||
nativeImage,
|
||||
Tray,
|
||||
} from "electron";
|
||||
import { firstValueFrom } from "rxjs";
|
||||
|
||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||
|
@ -59,6 +67,10 @@ export class TrayMain {
|
|||
if (await firstValueFrom(this.desktopSettingsService.trayEnabled$)) {
|
||||
this.showTray();
|
||||
}
|
||||
|
||||
ipcMain.handle("tray.isTrayAvailable", async (event) => {
|
||||
return this.isTrayAvailable();
|
||||
});
|
||||
}
|
||||
|
||||
setupWindowListeners(win: BrowserWindow) {
|
||||
|
@ -195,4 +207,8 @@ export class TrayMain {
|
|||
this.windowMain.win.close();
|
||||
}
|
||||
}
|
||||
|
||||
private isTrayAvailable() {
|
||||
return this.tray != null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,6 +59,10 @@ const clipboard = {
|
|||
write: (message: ClipboardWriteMessage) => ipcRenderer.invoke("clipboard.write", message),
|
||||
};
|
||||
|
||||
const tray = {
|
||||
isTrayAvailable: (): Promise<boolean> => ipcRenderer.invoke("tray.isTrayAvailable"),
|
||||
};
|
||||
|
||||
const nativeMessaging = {
|
||||
sendReply: (message: EncryptedMessageResponse | UnencryptedMessageResponse) => {
|
||||
ipcRenderer.send("nativeMessagingReply", message);
|
||||
|
@ -148,6 +152,7 @@ export default {
|
|||
passwords,
|
||||
biometric,
|
||||
clipboard,
|
||||
tray,
|
||||
nativeMessaging,
|
||||
crypto,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue