diff options
author | 0neGal <mail@0negal.com> | 2023-09-13 17:32:16 +0200 |
---|---|---|
committer | 0neGal <mail@0negal.com> | 2023-09-13 17:32:16 +0200 |
commit | 2302d7055a11adefe15bdaa5d8f94324d2fe293f (patch) | |
tree | 2c464faadd1bd3cfedf0a234afbd10f0100c8035 /src | |
parent | 14279b484ee8acbe440e09be25c36f8527592e75 (diff) | |
download | Viper-2302d7055a11adefe15bdaa5d8f94324d2fe293f.tar.gz Viper-2302d7055a11adefe15bdaa5d8f94324d2fe293f.zip |
synchronize changes to settings from main process
If the main process has changes to the settings, said settings will now
also be sent to the renderer, making them synchronized.
Diffstat (limited to 'src')
-rw-r--r-- | src/app/main.js | 9 | ||||
-rw-r--r-- | src/index.js | 8 | ||||
-rw-r--r-- | src/modules/settings.js | 8 |
3 files changed, 22 insertions, 3 deletions
diff --git a/src/app/main.js b/src/app/main.js index 8775004..230bbf9 100644 --- a/src/app/main.js +++ b/src/app/main.js @@ -54,6 +54,15 @@ if (fs.existsSync("viper.json")) { setpath(); } +ipcRenderer.on("changed-settings", (e, new_settings) => { + // attempt to set `settings` to `new_settings` + try { + settings = { + ...settings, + ...new_settings + } + }catch(e) {} +}) // Show a toast message if no Internet connection has been detected. if (! navigator.onLine) { diff --git a/src/index.js b/src/index.js index ed0fb3a..301c622 100644 --- a/src/index.js +++ b/src/index.js @@ -130,7 +130,13 @@ function start() { } }); - ipcMain.on("save-settings", (event, obj) => {settings.save(obj)}); + ipcMain.on("save-settings", (event, obj) => { + settings.save(obj, false) + }); + + ipcMain.on("saved-settings", (event, obj) => { + send("changed-settings", obj); + }); // allows renderer to check for updates ipcMain.on("ns-update-event", (event) => {send("ns-update-event", event)}); diff --git a/src/modules/settings.js b/src/modules/settings.js index 3833e4f..e1f68c6 100644 --- a/src/modules/settings.js +++ b/src/modules/settings.js @@ -1,6 +1,6 @@ const fs = require("fs"); const path = require("path"); -const app = require("electron").app; +const { app, ipcMain } = require("electron"); const json = require("./json"); const lang = require("../lang"); @@ -58,7 +58,7 @@ if (fs.existsSync("viper.json")) { // // you can also pass a settings object to the function and it'll try and // merge it together with the already existing settings -settings.save = (obj = {}) => { +settings.save = (obj = {}, notify_renderer = true) => { // refuse to save if settings aren't valid if (invalid_settings) { return false; @@ -88,6 +88,10 @@ settings.save = (obj = {}) => { settings.gamepath, "ns_startup_args.txt" ), settings.nsargs); } + + if (notify_renderer) { + ipcMain.emit("saved-settings", settings_content); + } } module.exports = settings; |