save auto-launch option, disable shortcuts in settings

This commit is contained in:
Anton Bracke
2022-02-22 14:00:17 +01:00
parent 71c8e32b2f
commit 3f21befdc6
7 changed files with 66 additions and 36 deletions
+8 -4
View File
@@ -3,7 +3,7 @@ import electronIsDev from "electron-is-dev";
import { createAndShowNotification } from "./notification";
import { Server } from "./preload-local-app/types";
import settings, { SettingsData } from "./settings";
import { loadShortcuts, saveShortcut } from "./shortcuts";
import { loadShortcuts, saveShortcut, setShortcutsEnabled } from "./shortcuts";
import { getWindow, hideAppView, showAppView } from "./window";
export function emitMuteToggle() {
@@ -92,10 +92,14 @@ export default () => {
return true;
});
ipcMain.handle("local-app:reloadShortcuts", (event, shortcut, key) => loadShortcuts());
ipcMain.handle("local-app:reloadShortcuts", (event) => loadShortcuts());
ipcMain.handle("local-app:getSettings", (event) => settings.get() || {});
ipcMain.handle("local-app:saveSetting", <T extends keyof SettingsData>(event, key: T, value: SettingsData[T]) =>
settings.set(key, value)
ipcMain.handle(
"local-app:saveSetting",
<T extends keyof SettingsData>(event: Electron.IpcMainInvokeEvent, key: T, value: SettingsData[T]) =>
settings.set(key, value)
);
ipcMain.handle("local-app:setShortcutsEnabled", (event, enabled: boolean) => setShortcutsEnabled(enabled));
};
@@ -12,7 +12,8 @@ const api: WorkAdventureLocalAppApi = {
removeServer: (serverId) => ipcRenderer.invoke("local-app:removeServer", serverId),
reloadShortcuts: () => ipcRenderer.invoke("local-app:reloadShortcuts"),
getSettings: () => ipcRenderer.invoke("local-app:getSettings"),
saveSetting: (key, value) => ipcRenderer.invoke("local-app:setSetting", key, value),
saveSetting: (key, value) => ipcRenderer.invoke("local-app:saveSetting", key, value),
setShortcutsEnabled: (enabled) => ipcRenderer.invoke("local-app:setShortcutsEnabled", enabled),
};
contextBridge.exposeInMainWorld("WorkAdventureDesktopApi", api);
@@ -20,4 +20,5 @@ export type WorkAdventureLocalAppApi = {
reloadShortcuts: () => Promise<void>;
getSettings: () => Promise<SettingsData>;
saveSetting: <T extends keyof SettingsData>(key: T, value: SettingsData[T]) => Promise<void>;
setShortcutsEnabled: (enabled: boolean) => Promise<void>;
};
+11
View File
@@ -1,6 +1,15 @@
import { globalShortcut } from "electron";
import settings, { SettingsData } from "./settings";
import { emitCameraToggle, emitMuteToggle } from "./ipc";
import { createAndShowNotification } from "./notification";
export function setShortcutsEnabled(enabled: boolean) {
if (enabled) {
loadShortcuts();
} else {
globalShortcut.unregisterAll();
}
}
export function loadShortcuts() {
globalShortcut.unregisterAll();
@@ -11,12 +20,14 @@ export function loadShortcuts() {
if (shortcuts?.mute_toggle && shortcuts.mute_toggle.length > 0) {
globalShortcut.register(shortcuts.mute_toggle, () => {
emitMuteToggle();
createAndShowNotification({ body: "Toggled mute" }); // TODO
});
}
if (shortcuts?.camera_toggle && shortcuts.camera_toggle.length > 0) {
globalShortcut.register(shortcuts.camera_toggle, () => {
emitCameraToggle();
createAndShowNotification({ body: "Toggled camera" }); // TODO
});
}
}