aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author0neGal <mail@0negal.com>2023-09-13 17:32:16 +0200
committer0neGal <mail@0negal.com>2023-09-13 17:32:16 +0200
commit2302d7055a11adefe15bdaa5d8f94324d2fe293f (patch)
tree2c464faadd1bd3cfedf0a234afbd10f0100c8035
parent14279b484ee8acbe440e09be25c36f8527592e75 (diff)
downloadViper-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.
-rw-r--r--src/app/main.js9
-rw-r--r--src/index.js8
-rw-r--r--src/modules/settings.js8
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;