diff options
author | 0neGal <mail@0negal.com> | 2024-06-08 18:02:48 +0200 |
---|---|---|
committer | 0neGal <mail@0negal.com> | 2024-06-08 18:02:48 +0200 |
commit | dbd8c6b152acc1188d2edd288488aa2da8f6310b (patch) | |
tree | ef5a1752e845a274c889ee18207c3a25e8290b23 /src/app/js/gamepath.js | |
parent | 3904a4492f72ef9a9fd531c0b81f3711541c97e0 (diff) | |
download | Viper-dbd8c6b152acc1188d2edd288488aa2da8f6310b.tar.gz Viper-dbd8c6b152acc1188d2edd288488aa2da8f6310b.zip |
initial commit to better modularize frontend
Far from done, but this pretty much splits everything inside
`src/app/main.js` into separate files.
Diffstat (limited to 'src/app/js/gamepath.js')
-rw-r--r-- | src/app/js/gamepath.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/app/js/gamepath.js b/src/app/js/gamepath.js new file mode 100644 index 0000000..80e3158 --- /dev/null +++ b/src/app/js/gamepath.js @@ -0,0 +1,51 @@ +const ipcRenderer = require("electron").ipcRenderer; + +const lang = require("../../lang"); +const process = require("./process"); +const settings = require("./settings"); + +// frontend part of settings a new game path +ipcRenderer.on("newpath", (_, newpath) => { + set_buttons(true); + + settings.set({gamepath: newpath}); + + ipcRenderer.send("gui-getmods"); + ipcRenderer.send("save-settings", settings.data()); +}) + +// a previously valid gamepath no longer exists, and is therefore lost +ipcRenderer.on("gamepath-lost", () => { + page(0); + set_buttons(false, true); + alert(lang("gui.gamepath.lost")); +}) + +// error out when no game path is set +ipcRenderer.on("no-path-selected", () => { + alert(lang("gui.gamepath.must")); + process.exit(); +}) + +// error out when game path is wrong +ipcRenderer.on("wrong-path", () => { + alert(lang("gui.gamepath.wrong")); + gamepath.set(false); +}) + +// reports to the main process about game path status. +module.exports = { + open: () => { + let gamepath = settings.data().gamepath; + + if (gamepath) { + require("electron").shell.openPath(gamepath); + } else { + alert(lang("gui.settings.miscbuttons.open_gamepath_alert")); + } + }, + + set: (value) => { + ipcRenderer.send("setpath", value); + } +} |